From: Eshel Yaron Date: Mon, 29 Jul 2024 14:57:13 +0000 (+0200) Subject: New command 'kubed-cronjobs-toggle-suspension' X-Git-Tag: v0.2.0~29 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=e2699427a910b53e4428651a6646d83d5d140fb2;p=kubed.git New command 'kubed-cronjobs-toggle-suspension' * kubed.el (kubed-cronjob-suspended-p): New function. (kubed-cronjobs-toggle-suspension): New command. --- 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)