summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLibravatar Terin Stock <terinjokes@gmail.com>2026-10-14 14:12:23 +0200
committerLibravatar Terin Stock <terinjokes@gmail.com>2026-10-14 14:12:23 +0200
commitde600fb64e746be808b03178a90f7a2df615aa2e (patch)
treefbb4c5418ebf96a9e84320f1d6155f74893b809a
parentfeat(kubed): prompt if context is not set (diff)
downloaddoom-emacs-de600fb64e746be808b03178a90f7a2df615aa2e.tar.xz
feat(kubed): disable kubeconfig modificationsHEADtrunk
Replace kubed-use-context and kubed-set-namespace with variations that only modify the local state, and not the kubeconfig file.
-rw-r--r--config.el27
1 files changed, 26 insertions, 1 deletions
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)
+ (set-evil-initial-state! 'kubed-list-mode 'emacs)
- (defadvice! +kured-prompt-when-no-current-context (fn)
+ ;; 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)