(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