]> git.eshelyaron.com Git - emacs.git/commitdiff
New commands 'kubed-rename-context' and 'kubed-display-config'
authorEshel Yaron <me@eshelyaron.com>
Sat, 27 Jul 2024 18:47:10 +0000 (20:47 +0200)
committerEshel Yaron <me@eshelyaron.com>
Sat, 27 Jul 2024 18:47:10 +0000 (20:47 +0200)
lisp/net/kubed.el

index d18da0bdcf1b3441d5790b49fe074dbe01cff154..6e8f0cf2088a47f5604f571bce6771ced2ad027c 100644 (file)
@@ -1258,6 +1258,46 @@ Optional argument DEFAULT is the minibuffer default argument."
   (message "Now using Kubernetes context `%s'." context)
   (kubed-update-all))
 
+;;;###autoload
+(defun kubed-rename-context (old new)
+  "Rename Kubernetes context OLD to NEW."
+  (interactive
+   (let ((old (kubed-read-context "Rename context" (kubed-current-context))))
+     (list old (read-string (format-prompt "Rename context to" old)
+                            nil 'kubed-context-history old))))
+  (unless (zerop
+           (call-process
+            kubed-kubectl-program nil nil nil
+            "config" "rename-context" old new))
+    (user-error "Failed to rename Kubernetes context `%s' to `%s'" old new))
+  (message "Renamed Kubernetes context `%s' to `%s'." old new))
+
+;;;###autoload
+(defun kubed-display-config ()
+  "Display current Kubernetes client settings in a YAML buffer."
+  (interactive)
+  (let* ((buf (get-buffer-create "*kubed-config*"))
+         (fun (lambda (&optional _ _)
+                (let ((inhibit-read-only t)
+                      (target (current-buffer)))
+                  (buffer-disable-undo)
+                  (with-temp-buffer
+                    (unless (zerop
+                             (call-process
+                              kubed-kubectl-program nil t nil "config" "view"))
+                      (error "`kubectl config view'"))
+                    (let ((source (current-buffer)))
+                      (with-current-buffer target
+                        (replace-buffer-contents source)
+                        (set-buffer-modified-p nil)
+                        (buffer-enable-undo))))))))
+    (with-current-buffer buf
+      (funcall fun)
+      (goto-char (point-min))
+      (run-hooks 'kubed-yaml-setup-hook)
+      (setq-local revert-buffer-function fun))
+    (display-buffer buf)))
+
 (defun kubed-current-namespace (&optional context)
   "Return current Kubernetes namespace for context CONTEXT."
   (car (process-lines