Skip to content

Commit 0ac4d60

Browse files
committed
Add pause functionality
1 parent d16679d commit 0ac4d60

1 file changed

Lines changed: 17 additions & 10 deletions

File tree

internal/pkg/handler/upgrade.go

Lines changed: 17 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -281,44 +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-
logrus.Infof("Resource '%s' is of type 'Deployment'", config.ResourceName)
284+
accessor, err := meta.Accessor(i)
285+
if err != nil {
286+
logrus.Errorf("Failed to get accessor for resource '%s': %v", i, err)
287+
return err
288+
}
289+
deploymentName := accessor.GetName()
290+
deploymentNamespace := accessor.GetNamespace()
291+
logrus.Infof("Resource name: %s, namespace: %s is of type Deployment", deploymentName, deploymentNamespace)
285292
annotations := upgradeFuncs.AnnotationsFunc(i)
286293
pauseValue := annotations["pause"]
287294
if pauseValue != "" {
288295
logrus.Infof("Pause value is %s", pauseValue)
289296
pauseDuration, err := time.ParseDuration(pauseValue)
290297
if err != nil {
291-
logrus.Errorf("Failed to parse pause value '%s' for resource '%s': %v", pauseValue, config.ResourceName, err)
298+
logrus.Errorf("Failed to parse pause value '%s' for resource '%s': %v", pauseValue, deploymentName, err)
292299
} else {
293-
logrus.Infof("Parsed pause value for resource '%s' is %d seconds", config.ResourceName, int(pauseDuration.Seconds()))
300+
logrus.Infof("Parsed pause value for resource '%s' is %d seconds", deploymentName, int(pauseDuration.Seconds()))
294301
deployment, ok := i.(*app.Deployment)
295302
if !ok {
296-
logrus.Errorf("Failed to cast resource '%s' to Deployment", config.ResourceName)
303+
logrus.Errorf("Failed to cast resource '%s' to Deployment", deploymentName)
297304
return errors.New("failed to cast resource to Deployment")
298305
}
299306

300307
if !deployment.Spec.Paused {
301308
deployment.Spec.Paused = true
302-
logrus.Infof("Pausing Deployment '%s' in namespace '%s'", config.ResourceName, config.Namespace)
309+
logrus.Infof("Pausing Deployment '%s' in namespace '%s'", deploymentName, deploymentNamespace)
303310
deployment.Annotations["paused-by-reloader-at"] = time.Now().Format(time.RFC3339)
304311

305312
time.AfterFunc(pauseDuration, func() {
306-
deployment, err := clients.KubernetesClient.AppsV1().Deployments(config.Namespace).Get(context.TODO(), config.ResourceName, metav1.GetOptions{})
313+
deployment, err := clients.KubernetesClient.AppsV1().Deployments(deploymentNamespace).Get(context.TODO(), deploymentName, metav1.GetOptions{})
307314
if err != nil {
308-
logrus.Errorf("Failed to get Deployment '%s' in namespace '%s': %v", config.ResourceName, config.Namespace, err)
315+
logrus.Errorf("Failed to get Deployment '%s' in namespace '%s': %v", deploymentName, deploymentNamespace, err)
309316
return
310317
}
311318

312319
deployment.Spec.Paused = false
313320
deployment.Annotations["paused-by-reloader-at"] = ""
314321

315-
_, err = clients.KubernetesClient.AppsV1().Deployments(config.Namespace).Update(context.TODO(), deployment, metav1.UpdateOptions{})
322+
_, err = clients.KubernetesClient.AppsV1().Deployments(deploymentNamespace).Update(context.TODO(), deployment, metav1.UpdateOptions{})
316323
if err != nil {
317-
logrus.Errorf("Failed to update Deployment '%s' in namespace '%s': %v", config.ResourceName, config.Namespace, err)
324+
logrus.Errorf("Failed to update Deployment '%s' in namespace '%s': %v", deploymentName, deploymentNamespace, err)
318325
}
319326
})
320327
} else {
321-
logrus.Infof("Deployment '%s' in namespace '%s' is already paused", config.ResourceName, config.Namespace)
328+
logrus.Infof("Deployment '%s' in namespace '%s' is already paused", deploymentName, deploymentNamespace)
322329
}
323330
}
324331
}

0 commit comments

Comments
 (0)