Round 340: Helm ext, Kubectl ext, Minikube ext, Kind ext, K3s ext (20 commands)

ober

ec80b84fd3921b9560bd8f0fea0fd7c4757c976a

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 4c1b49b..b3d9425 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 340 — Helm ext, Kubectl ext, Minikube ext, Kind ext, K3s ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| helm-install | :orange_circle: | Helm: install a release |
+| helm-upgrade | :orange_circle: | Helm: upgrade a release |
+| helm-list | :orange_circle: | Helm: list releases |
+| helm-repo-add | :orange_circle: | Helm: add a repo |
+| kubectl-get | :orange_circle: | Kubectl: get resources |
+| kubectl-describe | :orange_circle: | Kubectl: describe a resource |
+| kubectl-logs | :orange_circle: | Kubectl: show pod logs |
+| kubectl-exec | :orange_circle: | Kubectl: exec into pod |
+| minikube-start | :orange_circle: | Minikube: start cluster |
+| minikube-stop | :orange_circle: | Minikube: stop cluster |
+| minikube-status | :orange_circle: | Minikube: show status |
+| minikube-dashboard | :orange_circle: | Minikube: open dashboard |
+| kind-create | :orange_circle: | Kind: create cluster |
+| kind-delete | :orange_circle: | Kind: delete cluster |
+| kind-load | :orange_circle: | Kind: load image |
+| kind-export | :orange_circle: | Kind: export logs |
+| k3s-start | :orange_circle: | K3s: start server |
+| k3s-stop | :orange_circle: | K3s: stop server |
+| k3s-status | :orange_circle: | K3s: show status |
+| k3s-kubectl | :orange_circle: | K3s: run kubectl command |
+
 ### Round 339 — Podman ext, Buildah ext, Skopeo ext, Crictl ext, Crun ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 585fd90..87d3ea2 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25043,3 +25043,55 @@
     (echo-read-string echo "Crun state container ID: "
       (lambda (id)
         (echo-message! echo (str "Crun: showing state of " id))))))
+
+;;; Round 340 — Minikube ext, Kind ext, K3s ext (batch 2)
+
+(def (cmd-minikube-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Minikube: showing cluster status")))
+
+(def (cmd-minikube-dashboard app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Minikube: opening dashboard")))
+
+(def (cmd-kind-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kind cluster name: "
+      (lambda (name)
+        (echo-message! echo (str "Kind: creating cluster " name))))))
+
+(def (cmd-kind-delete app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kind delete cluster: "
+      (lambda (name)
+        (echo-message! echo (str "Kind: deleting cluster " name))))))
+
+(def (cmd-kind-load app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kind load image: "
+      (lambda (img)
+        (echo-message! echo (str "Kind: loading image " img))))))
+
+(def (cmd-kind-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kind export logs to: "
+      (lambda (dir)
+        (echo-message! echo (str "Kind: exporting logs to " dir))))))
+
+(def (cmd-k3s-start app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "K3s: starting server")))
+
+(def (cmd-k3s-stop app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "K3s: stopping server")))
+
+(def (cmd-k3s-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "K3s: showing server status")))
+
+(def (cmd-k3s-kubectl app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "K3s kubectl command: "
+      (lambda (cmd)
+        (echo-message! echo (str "K3s: kubectl " cmd))))))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index e8e125f..85500e9 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -25744,3 +25744,59 @@
     (echo-read-string echo "Skopeo inspect image: "
       (lambda (img)
         (echo-message! echo (str "Skopeo: inspecting " img))))))
+
+;;; Round 340 — Helm ext, Kubectl ext, Minikube ext, Kind ext, K3s ext (batch 1)
+
+(def (cmd-helm-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Helm install release name: "
+      (lambda (name)
+        (echo-message! echo (str "Helm: installing release " name))))))
+
+(def (cmd-helm-upgrade app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Helm upgrade release: "
+      (lambda (name)
+        (echo-message! echo (str "Helm: upgrading release " name))))))
+
+(def (cmd-helm-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Helm: listing releases")))
+
+(def (cmd-helm-repo-add app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Helm repo name: "
+      (lambda (name)
+        (echo-message! echo (str "Helm: adding repo " name))))))
+
+(def (cmd-kubectl-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kubectl get resource: "
+      (lambda (res)
+        (echo-message! echo (str "Kubectl: getting " res))))))
+
+(def (cmd-kubectl-describe app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kubectl describe resource: "
+      (lambda (res)
+        (echo-message! echo (str "Kubectl: describing " res))))))
+
+(def (cmd-kubectl-logs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kubectl logs pod: "
+      (lambda (pod)
+        (echo-message! echo (str "Kubectl: showing logs for " pod))))))
+
+(def (cmd-kubectl-exec app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Kubectl exec pod: "
+      (lambda (pod)
+        (echo-message! echo (str "Kubectl: exec into " pod))))))
+
+(def (cmd-minikube-start app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Minikube: starting cluster")))
+
+(def (cmd-minikube-stop app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Minikube: stopping cluster")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index f4cc556..ec97afe 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8562,4 +8562,26 @@
   (register-command! 'crun-run cmd-crun-run)
   (register-command! 'crun-list cmd-crun-list)
   (register-command! 'crun-state cmd-crun-state)
+
+  ;; Round 340 — Helm ext, Kubectl ext, Minikube ext, Kind ext, K3s ext
+  (register-command! 'helm-install cmd-helm-install)
+  (register-command! 'helm-upgrade cmd-helm-upgrade)
+  (register-command! 'helm-list cmd-helm-list)
+  (register-command! 'helm-repo-add cmd-helm-repo-add)
+  (register-command! 'kubectl-get cmd-kubectl-get)
+  (register-command! 'kubectl-describe cmd-kubectl-describe)
+  (register-command! 'kubectl-logs cmd-kubectl-logs)
+  (register-command! 'kubectl-exec cmd-kubectl-exec)
+  (register-command! 'minikube-start cmd-minikube-start)
+  (register-command! 'minikube-stop cmd-minikube-stop)
+  (register-command! 'minikube-status cmd-minikube-status)
+  (register-command! 'minikube-dashboard cmd-minikube-dashboard)
+  (register-command! 'kind-create cmd-kind-create)
+  (register-command! 'kind-delete cmd-kind-delete)
+  (register-command! 'kind-load cmd-kind-load)
+  (register-command! 'kind-export cmd-kind-export)
+  (register-command! 'k3s-start cmd-k3s-start)
+  (register-command! 'k3s-stop cmd-k3s-stop)
+  (register-command! 'k3s-status cmd-k3s-status)
+  (register-command! 'k3s-kubectl cmd-k3s-kubectl)
 )