From e2699427a910b53e4428651a6646d83d5d140fb2 Mon Sep 17 00:00:00 2001 From: Eshel Yaron Date: Mon, 29 Jul 2024 16:57:13 +0200 Subject: [PATCH] New command 'kubed-cronjobs-toggle-suspension' * kubed.el (kubed-cronjob-suspended-p): New function. (kubed-cronjobs-toggle-suspension): New command. --- kubed.el | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/kubed.el b/kubed.el index 2009e8b..0850d26 100644 --- a/kubed.el +++ b/kubed.el @@ -1178,6 +1178,15 @@ optional command to run in the images." (ownername ".metadata.ownerReferences[0].name" 16) (creationtimestamp ".metadata.creationTimestamp" 20))) +(defun kubed-cronjob-suspended-p (cj &optional ns) + "Return non-nil if cronjob CJ in namespace NS is currently suspended." + (equal (car (apply #'process-lines + kubed-kubectl-program + "get" "cronjobs" cj + "-o" "custom-columns=SUSPENDED:.spec.suspend" "--no-headers" + (when ns (list "-n" ns)))) + "true")) + ;;;###autoload (autoload 'kubed-display-cronjob "kubed" nil t) ;;;###autoload (autoload 'kubed-edit-cronjob "kubed" nil t) ;;;###autoload (autoload 'kubed-delete-cronjobs "kubed" nil t) @@ -1229,6 +1238,14 @@ overrides the default command IMAGE runs." (when command (cons "--" command))))) (user-error "Failed to create Kubernetes cronjob `%s'" name)) (message "Created Kubernetes cronjob `%s'." name) + (kubed-update-cronjobs t)) + (toggle-suspension + "T" "Toggle suspension of" + (kubed-patch "cronjobs" cronjob + (format + "{\"spec\": {\"suspend\": %s}}" + (if (kubed-cronjob-suspended-p cronjob k8sns) "false" "true")) + k8sns) (kubed-update-cronjobs t))) ;;;###autoload (autoload 'kubed-display-ingressclass "kubed" nil t) -- 2.39.5