diff options
Diffstat (limited to 'config.el')
| -rw-r--r-- | config.el | 27 |
1 files changed, 26 insertions, 1 deletions
@@ -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) |
