Skip to content

Commit 1f773ea

Browse files
committed
Fix annotations
1 parent 0ac4d60 commit 1f773ea

1 file changed

Lines changed: 38 additions & 38 deletions

File tree

internal/pkg/handler/upgrade.go

Lines changed: 38 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -281,51 +281,51 @@ func PerformAction(clients kube.Clients, config util.Config, upgradeFuncs callba
281281
if result == constants.Updated {
282282

283283
if _, ok := i.(*app.Deployment); ok {
284+
284285
accessor, err := meta.Accessor(i)
285286
if err != nil {
286-
logrus.Errorf("Failed to get accessor for resource '%s': %v", i, err)
287287
return err
288288
}
289-
deploymentName := accessor.GetName()
290-
deploymentNamespace := accessor.GetNamespace()
291-
logrus.Infof("Resource name: %s, namespace: %s is of type Deployment", deploymentName, deploymentNamespace)
292-
annotations := upgradeFuncs.AnnotationsFunc(i)
293-
pauseValue := annotations["pause"]
294-
if pauseValue != "" {
295-
logrus.Infof("Pause value is %s", pauseValue)
296-
pauseDuration, err := time.ParseDuration(pauseValue)
297-
if err != nil {
298-
logrus.Errorf("Failed to parse pause value '%s' for resource '%s': %v", pauseValue, deploymentName, err)
289+
290+
itemName := accessor.GetName()
291+
itemNamespace := accessor.GetNamespace()
292+
293+
pauseIntervalValue := annotations["deployment.reloader.stakater.com/pause-interval"]
294+
if pauseIntervalValue != "" {
295+
296+
deployment, ok := i.(*app.Deployment)
297+
if !ok {
298+
logrus.Warnf("Annotation 'deployment.reloader.stakater.com/pause-interval' only applicable for Deployments")
299299
} else {
300-
logrus.Infof("Parsed pause value for resource '%s' is %d seconds", deploymentName, int(pauseDuration.Seconds()))
301-
deployment, ok := i.(*app.Deployment)
302-
if !ok {
303-
logrus.Errorf("Failed to cast resource '%s' to Deployment", deploymentName)
304-
return errors.New("failed to cast resource to Deployment")
305-
}
306300

307-
if !deployment.Spec.Paused {
308-
deployment.Spec.Paused = true
309-
logrus.Infof("Pausing Deployment '%s' in namespace '%s'", deploymentName, deploymentNamespace)
310-
deployment.Annotations["paused-by-reloader-at"] = time.Now().Format(time.RFC3339)
311-
312-
time.AfterFunc(pauseDuration, func() {
313-
deployment, err := clients.KubernetesClient.AppsV1().Deployments(deploymentNamespace).Get(context.TODO(), deploymentName, metav1.GetOptions{})
314-
if err != nil {
315-
logrus.Errorf("Failed to get Deployment '%s' in namespace '%s': %v", deploymentName, deploymentNamespace, err)
316-
return
317-
}
318-
319-
deployment.Spec.Paused = false
320-
deployment.Annotations["paused-by-reloader-at"] = ""
321-
322-
_, err = clients.KubernetesClient.AppsV1().Deployments(deploymentNamespace).Update(context.TODO(), deployment, metav1.UpdateOptions{})
323-
if err != nil {
324-
logrus.Errorf("Failed to update Deployment '%s' in namespace '%s': %v", deploymentName, deploymentNamespace, err)
325-
}
326-
})
301+
pauseDuration, err := time.ParseDuration(pauseIntervalValue)
302+
if err != nil {
303+
logrus.Errorf("Failed to parse pause interval value '%s' for deployment '%s': %v", pauseIntervalValue, itemName, err)
327304
} else {
328-
logrus.Infof("Deployment '%s' in namespace '%s' is already paused", deploymentName, deploymentNamespace)
305+
if !deployment.Spec.Paused {
306+
deployment.Spec.Paused = true
307+
logrus.Infof("Pausing Deployment '%s' in namespace '%s' for %s seconds", itemName, itemNamespace, pauseDuration)
308+
deployment.Annotations["deployment.reloader.stakater.com/paused-at"] = time.Now().Format(time.RFC3339)
309+
310+
time.AfterFunc(pauseDuration, func() {
311+
deployment, err := clients.KubernetesClient.AppsV1().Deployments(itemNamespace).Get(context.TODO(), itemName, metav1.GetOptions{})
312+
if err != nil {
313+
logrus.Errorf("Failed to get Deployment '%s' in namespace '%s': %v", itemName, itemNamespace, err)
314+
return
315+
}
316+
317+
// TODO: Add check whether deployment has been paused by reloader and only unpause if so
318+
deployment.Spec.Paused = false
319+
delete(deployment.Annotations, "deployment.reloader.stakater.com/paused-at")
320+
321+
_, err = clients.KubernetesClient.AppsV1().Deployments(itemNamespace).Update(context.TODO(), deployment, metav1.UpdateOptions{})
322+
if err != nil {
323+
logrus.Errorf("Failed to update Deployment '%s' in namespace '%s': %v", itemName, itemNamespace, err)
324+
}
325+
})
326+
} else {
327+
logrus.Infof("Deployment '%s' in namespace '%s' is already paused", itemName, itemNamespace)
328+
}
329329
}
330330
}
331331
}

0 commit comments

Comments
 (0)