From de600fb64e746be808b03178a90f7a2df615aa2e Mon Sep 17 00:00:00 2001 From: Terin Stock Date: Wed, 14 Oct 2026 14:12:23 +0200 Subject: feat(kubed): disable kubeconfig modifications Replace kubed-use-context and kubed-set-namespace with variations that only modify the local state, and not the kubeconfig file. --- config.el | 29 +++++++++++++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) (limited to 'config.el') diff --git a/config.el b/config.el index a06dc10..351f7a6 100644 --- a/config.el +++ b/config.el @@ -94,8 +94,33 @@ (map! :leader :desc "kubed" "k" kubed-prefix-map) - - (defadvice! +kured-prompt-when-no-current-context (fn) + (set-evil-initial-state! 'kubed-list-mode 'emacs) + + ;; make it difficult to edit KUBECONFIG by mistake + (put 'kubed-rename-context 'disabled t) + (defadvice! +kubed-use-context/nowrite (context) + :override #'kubed-use-context + (interactive (list (kubed-read-context "Use context" (kubed-local-context)))) + (let ((namespace (or (kubed-current-namespace context) + (kubed-read-namespace (format "Default namespace to use in context `%s'" context) nil nil context)))) + (setf (alist-get (kubed-execution-environment-key) kubed--context-and-namespace-alist nil nil #'equal) + (cons context namespace)) + (message "Default context is now `%s', namespace `%s'." context namespace))) + (defadvice! +kubed-set-namespace/nowrite (namespace &optional context) + :override #'kubed-set-namespace + (interactive (let* ((context (kubed-local-context)) + (context (if current-prefix-arg (kubed-read-context "Context" context) + context))) + (list (kubed-read-namespace "Set namespace" (kubed--namespace context) nil context) + context))) + (let ((context (or context (kubed-local-context)))) + (let ((eenv (kubed-execution-environment-key))) + (when (equal context (car (alist-get eenv kubed--context-and-namespace-alist nil nil #'equal))) + (setf (alist-get eenv kubed--context-and-namespace-alist nil nil #'equal) + (cons context namespace)))) + (message "Default Kubernetes namespace for context `%s' is now `%s'." context namespace))) + + (defadvice! +kubed-prompt-when-no-current-context (fn) "Prompt for context and namespace if not set in the local context or in KUBECONFIG" :around #'kubed--configured-context-and-namespace (or (funcall fn) -- cgit v1.3