@@ -142,35 +142,35 @@ func sendWebhook(url string) (string, []error) {
142
142
return buffer .String (), nil
143
143
}
144
144
145
- func doRollingUpgrade (config util.Config , collectors metrics.Collectors , recorder record.EventRecorder ) error {
145
+ func doRollingUpgrade (config util.Config , collectors metrics.Collectors , recorder record.EventRecorder , invoke invokeStrategy ) error {
146
146
clients := kube .GetClients ()
147
147
148
- err := rollingUpgrade (clients , config , GetDeploymentRollingUpgradeFuncs (), collectors , recorder )
148
+ err := rollingUpgrade (clients , config , GetDeploymentRollingUpgradeFuncs (), collectors , recorder , invoke )
149
149
if err != nil {
150
150
return err
151
151
}
152
- err = rollingUpgrade (clients , config , GetCronJobCreateJobFuncs (), collectors , recorder )
152
+ err = rollingUpgrade (clients , config , GetCronJobCreateJobFuncs (), collectors , recorder , invoke )
153
153
if err != nil {
154
154
return err
155
155
}
156
- err = rollingUpgrade (clients , config , GetDaemonSetRollingUpgradeFuncs (), collectors , recorder )
156
+ err = rollingUpgrade (clients , config , GetDaemonSetRollingUpgradeFuncs (), collectors , recorder , invoke )
157
157
if err != nil {
158
158
return err
159
159
}
160
- err = rollingUpgrade (clients , config , GetStatefulSetRollingUpgradeFuncs (), collectors , recorder )
160
+ err = rollingUpgrade (clients , config , GetStatefulSetRollingUpgradeFuncs (), collectors , recorder , invoke )
161
161
if err != nil {
162
162
return err
163
163
}
164
164
165
165
if kube .IsOpenshift {
166
- err = rollingUpgrade (clients , config , GetDeploymentConfigRollingUpgradeFuncs (), collectors , recorder )
166
+ err = rollingUpgrade (clients , config , GetDeploymentConfigRollingUpgradeFuncs (), collectors , recorder , invoke )
167
167
if err != nil {
168
168
return err
169
169
}
170
170
}
171
171
172
172
if options .IsArgoRollouts == "true" {
173
- err = rollingUpgrade (clients , config , GetArgoRolloutRollingUpgradeFuncs (), collectors , recorder )
173
+ err = rollingUpgrade (clients , config , GetArgoRolloutRollingUpgradeFuncs (), collectors , recorder , invoke )
174
174
if err != nil {
175
175
return err
176
176
}
@@ -179,17 +179,17 @@ func doRollingUpgrade(config util.Config, collectors metrics.Collectors, recorde
179
179
return nil
180
180
}
181
181
182
- func rollingUpgrade (clients kube.Clients , config util.Config , upgradeFuncs callbacks.RollingUpgradeFuncs , collectors metrics.Collectors , recorder record.EventRecorder ) error {
182
+ func rollingUpgrade (clients kube.Clients , config util.Config , upgradeFuncs callbacks.RollingUpgradeFuncs , collectors metrics.Collectors , recorder record.EventRecorder , strategy invokeStrategy ) error {
183
183
184
- err := PerformRollingUpgrade (clients , config , upgradeFuncs , collectors , recorder )
184
+ err := PerformAction (clients , config , upgradeFuncs , collectors , recorder , strategy )
185
185
if err != nil {
186
186
logrus .Errorf ("Rolling upgrade for '%s' failed with error = %v" , config .ResourceName , err )
187
187
}
188
188
return err
189
189
}
190
190
191
- // PerformRollingUpgrade upgrades the deployment if there is any change in configmap or secret data
192
- func PerformRollingUpgrade (clients kube.Clients , config util.Config , upgradeFuncs callbacks.RollingUpgradeFuncs , collectors metrics.Collectors , recorder record.EventRecorder ) error {
191
+ // PerformAction invokes the deployment if there is any change in configmap or secret data
192
+ func PerformAction (clients kube.Clients , config util.Config , upgradeFuncs callbacks.RollingUpgradeFuncs , collectors metrics.Collectors , recorder record.EventRecorder , strategy invokeStrategy ) error {
193
193
items := upgradeFuncs .ItemsFunc (clients , config .Namespace )
194
194
195
195
for _ , i := range items {
@@ -210,7 +210,7 @@ func PerformRollingUpgrade(clients kube.Clients, config util.Config, upgradeFunc
210
210
reloaderEnabled , _ := strconv .ParseBool (reloaderEnabledValue )
211
211
typedAutoAnnotationEnabled , _ := strconv .ParseBool (typedAutoAnnotationEnabledValue )
212
212
if reloaderEnabled || typedAutoAnnotationEnabled || reloaderEnabledValue == "" && typedAutoAnnotationEnabledValue == "" && options .AutoReloadAll {
213
- result = invokeReloadStrategy (upgradeFuncs , i , config , true )
213
+ result = strategy (upgradeFuncs , i , config , true )
214
214
}
215
215
216
216
if result != constants .Updated && annotationValue != "" {
@@ -219,7 +219,7 @@ func PerformRollingUpgrade(clients kube.Clients, config util.Config, upgradeFunc
219
219
value = strings .TrimSpace (value )
220
220
re := regexp .MustCompile ("^" + value + "$" )
221
221
if re .Match ([]byte (config .ResourceName )) {
222
- result = invokeReloadStrategy (upgradeFuncs , i , config , false )
222
+ result = strategy (upgradeFuncs , i , config , false )
223
223
if result == constants .Updated {
224
224
break
225
225
}
@@ -230,7 +230,7 @@ func PerformRollingUpgrade(clients kube.Clients, config util.Config, upgradeFunc
230
230
if result != constants .Updated && searchAnnotationValue == "true" {
231
231
matchAnnotationValue := config .ResourceAnnotations [options .SearchMatchAnnotation ]
232
232
if matchAnnotationValue == "true" {
233
- result = invokeReloadStrategy (upgradeFuncs , i , config , true )
233
+ result = strategy (upgradeFuncs , i , config , true )
234
234
}
235
235
}
236
236
@@ -382,6 +382,8 @@ func getContainerUsingResource(upgradeFuncs callbacks.RollingUpgradeFuncs, item
382
382
return container
383
383
}
384
384
385
+ type invokeStrategy func (upgradeFuncs callbacks.RollingUpgradeFuncs , item runtime.Object , config util.Config , autoReload bool ) constants.Result
386
+
385
387
func invokeReloadStrategy (upgradeFuncs callbacks.RollingUpgradeFuncs , item runtime.Object , config util.Config , autoReload bool ) constants.Result {
386
388
if options .ReloadStrategy == constants .AnnotationsReloadStrategy {
387
389
return updatePodAnnotations (upgradeFuncs , item , config , autoReload )
@@ -418,6 +420,13 @@ func updatePodAnnotations(upgradeFuncs callbacks.RollingUpgradeFuncs, item runti
418
420
return constants .Updated
419
421
}
420
422
423
+ func getReloaderAnnotationKey () string {
424
+ return fmt .Sprintf ("%s/%s" ,
425
+ constants .ReloaderAnnotationPrefix ,
426
+ constants .LastReloadedFromAnnotation ,
427
+ )
428
+ }
429
+
421
430
func createReloadedAnnotations (target * util.ReloadSource ) (map [string ]string , error ) {
422
431
if target == nil {
423
432
return nil , errors .New ("target is required" )
@@ -428,10 +437,7 @@ func createReloadedAnnotations(target *util.ReloadSource) (map[string]string, er
428
437
// Intentionally only storing the last item in order to keep
429
438
// the generated annotations as small as possible.
430
439
annotations := make (map [string ]string )
431
- lastReloadedResourceName := fmt .Sprintf ("%s/%s" ,
432
- constants .ReloaderAnnotationPrefix ,
433
- constants .LastReloadedFromAnnotation ,
434
- )
440
+ lastReloadedResourceName := getReloaderAnnotationKey ()
435
441
436
442
lastReloadedResource , err := json .Marshal (target )
437
443
if err != nil {
@@ -442,9 +448,13 @@ func createReloadedAnnotations(target *util.ReloadSource) (map[string]string, er
442
448
return annotations , nil
443
449
}
444
450
451
+ func getEnvVarName (resourceName string , typeName string ) string {
452
+ return constants .EnvVarPrefix + util .ConvertToEnvVarName (resourceName ) + "_" + typeName
453
+ }
454
+
445
455
func updateContainerEnvVars (upgradeFuncs callbacks.RollingUpgradeFuncs , item runtime.Object , config util.Config , autoReload bool ) constants.Result {
446
456
var result constants.Result
447
- envVar := constants . EnvVarPrefix + util . ConvertToEnvVarName (config .ResourceName ) + "_" + config .Type
457
+ envVar := getEnvVarName (config .ResourceName , config .Type )
448
458
container := getContainerUsingResource (upgradeFuncs , item , config , autoReload )
449
459
450
460
if container == nil {
0 commit comments