Watch rollout progress
+# (with confirmation) Promote rollout
+# (with confirmation) Restart rollout
+plugins:
+ argo-rollouts-get:
+ shortCut: g
+ confirm: false
+ description: Get details
+ scopes:
+ - rollouts
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl argo rollouts get rollout $NAME --context $CONTEXT -n $NAMESPACE |& less
+ argo-rollouts-watch:
+ shortCut: w
+ confirm: false
+ description: Watch progress
+ scopes:
+ - rollouts
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl argo rollouts get rollout $NAME --context $CONTEXT -n $NAMESPACE -w |& less
+ argo-rollouts-promote:
+ shortCut: p
+ confirm: true
+ description: Promote
+ scopes:
+ - rollouts
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl argo rollouts promote $NAME --context $CONTEXT -n $NAMESPACE |& less
+ argo-rollouts-restart:
+ shortCut: r
+ confirm: true
+ description: Restart
+ scopes:
+ - rollouts
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl argo rollouts restart $NAME --context $CONTEXT -n $NAMESPACE |& less
diff --git a/plugins/blame.yaml b/plugins/blame.yaml
new file mode 100644
index 0000000000..97220d2935
--- /dev/null
+++ b/plugins/blame.yaml
@@ -0,0 +1,18 @@
+plugins:
+ # kubectl-blame by knight42
+ # Annotate each line in the given resource's YAML with information from the managedFields to show who last modified the field.
+ # Source: https://github.com/knight42/kubectl-blame
+ # Install via:
+ # krew: `kubectl krew install blame`
+ # go: `go install github.com/knight42/kubectl-blame@latest`
+ blame:
+ shortCut: b
+ confirm: false
+ description: "Blame"
+ scopes:
+ - all
+ command: sh
+ background: false
+ args:
+ - -c
+ - "kubectl-blame $RESOURCE_NAME $NAME -n $NAMESPACE --context $CONTEXT | less"
diff --git a/plugins/carvel.yml b/plugins/carvel.yaml
similarity index 84%
rename from plugins/carvel.yml
rename to plugins/carvel.yaml
index 02c6478ee9..dd8a4d9e90 100644
--- a/plugins/carvel.yml
+++ b/plugins/carvel.yaml
@@ -1,5 +1,5 @@
# $HOME/.k9s/plugin.yml
-plugin:
+plugins:
kapp-inspect:
shortCut: Shift-Z
confirm: false
@@ -10,7 +10,7 @@ plugin:
background: false
args:
- -c
- - "export FORCE_COLOR=1;kapp inspect -a $NAME.app --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty |& less -R"
+ - "export FORCE_COLOR=1;kapp inspect -a $NAME.app --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty | less -RK"
kctrl-app-status:
shortCut: Shift-Q
confirm: false
@@ -21,7 +21,7 @@ plugin:
background: false
args:
- -c
- - "export FORCE_COLOR=1;kctrl app status -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty |& less -R"
+ - "export FORCE_COLOR=1;kctrl app status -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --color --tty | less -RK"
kctrl-app-pause:
shortCut: Shift-T
confirm: false
@@ -32,9 +32,9 @@ plugin:
background: false
args:
- -c
- - "export FORCE_COLOR=1;kctrl app pause -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty |& less -R"
+ - "export FORCE_COLOR=1;kctrl app pause -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty | less -RK"
kctrl-app-kick:
- shortCut: Shift-Z
+ shortCut: Shift-K
confirm: false
description: kctrl app kick
scopes:
@@ -43,5 +43,4 @@ plugin:
background: false
args:
- -c
- - "export FORCE_COLOR=1;kctrl app kick -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty |& less -R"
-
+ - "export FORCE_COLOR=1;kctrl app kick -a $NAME --namespace $NAMESPACE --kubeconfig-context $CONTEXT --yes --color --tty | less -RK"
diff --git a/plugins/cert-manager.yaml b/plugins/cert-manager.yaml
new file mode 100644
index 0000000000..9c3f1aff41
--- /dev/null
+++ b/plugins/cert-manager.yaml
@@ -0,0 +1,36 @@
+# Manage cert-manager Certificate resouces via cmctl.
+# See: https://github.com/cert-manager/cmctl
+plugins:
+ cert-status:
+ shortCut: Shift-S
+ confirm: false
+ description: Certificate status
+ scopes:
+ - certificates
+ command: bash
+ background: false
+ args:
+ - -c
+ - "cmctl status certificate --context $CONTEXT -n $NAMESPACE $NAME |& less"
+ cert-renew:
+ shortCut: Shift-R
+ confirm: false
+ description: Certificate renew
+ scopes:
+ - certificates
+ command: bash
+ background: false
+ args:
+ - -c
+ - "cmctl renew --context $CONTEXT -n $NAMESPACE $NAME |& less"
+ secret-inspect:
+ shortCut: Shift-I
+ confirm: false
+ description: Inspect secret
+ scopes:
+ - secrets
+ command: bash
+ background: false
+ args:
+ - -c
+ - "cmctl inspect secret --context $CONTEXT -n $NAMESPACE $NAME |& less"
\ No newline at end of file
diff --git a/plugins/crossplane.yaml b/plugins/crossplane.yaml
new file mode 100644
index 0000000000..14d7915e3f
--- /dev/null
+++ b/plugins/crossplane.yaml
@@ -0,0 +1,21 @@
+plugins:
+ # List all the resources managed by a Composite Resource
+ kube-lineage:
+ shortCut: Ctrl-X
+ confirm: false
+ description: "Kube Lineage"
+ scopes:
+ - all
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ kubectl lineage
+ -d 6
+ --exclude-types Event,ProviderConfigUsage.aws.upbound.io,ProviderConfigUsage.kubernetes.crossplane.io
+ --show-group
+ --context $CONTEXT
+ $RESOURCE_NAME
+ $NAME
+ | less -K
diff --git a/plugins/crossplane.yml b/plugins/crossplane.yml
deleted file mode 100644
index 8b16340dce..0000000000
--- a/plugins/crossplane.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-plugin:
- # List all the resources managed by a Composite Resource
- kube-lineage:
- shortCut: Ctrl-X
- confirm: false
- description: "Kube Lineage"
- scopes:
- - all
- command: sh
- background: false
- args:
- - -c
- - "kubectl lineage -d 6 --exclude-types Event,ProviderConfigUsage.aws.upbound.io,ProviderConfigUsage.kubernetes.crossplane.io --show-group --context $CONTEXT $RESOURCE_NAME $NAME | less"
\ No newline at end of file
diff --git a/plugins/debug-container.yml b/plugins/debug-container.yaml
similarity index 67%
rename from plugins/debug-container.yml
rename to plugins/debug-container.yaml
index 2040cefcf3..aefba8801c 100644
--- a/plugins/debug-container.yml
+++ b/plugins/debug-container.yaml
@@ -1,9 +1,10 @@
-plugin:
+plugins:
#--- Create debug container for selected pod in current namespace
# See https://kubernetes.io/docs/tasks/debug/debug-application/debug-running-pod/#ephemeral-container
debug:
shortCut: Shift-D
description: Add debug container
+ dangerous: true
scopes:
- containers
command: bash
@@ -11,4 +12,4 @@ plugin:
confirm: true
args:
- -c
- - "kubectl debug -it -n=$NAMESPACE $POD --target=$NAME --image=nicolaka/netshoot:v0.11 --share-processes -- bash"
\ No newline at end of file
+ - "kubectl debug -it --context $CONTEXT -n=$NAMESPACE $POD --target=$NAME --image=nicolaka/netshoot:v0.12 --share-processes -- bash"
\ No newline at end of file
diff --git a/plugins/dive.yml b/plugins/dive.yaml
similarity index 95%
rename from plugins/dive.yml
rename to plugins/dive.yaml
index c92205ac32..090bc2c680 100644
--- a/plugins/dive.yml
+++ b/plugins/dive.yaml
@@ -1,4 +1,4 @@
-plugin:
+plugins:
dive:
shortCut: d
confirm: false
diff --git a/plugins/flux.yaml b/plugins/flux.yaml
new file mode 100644
index 0000000000..72a9655542
--- /dev/null
+++ b/plugins/flux.yaml
@@ -0,0 +1,207 @@
+# $HOME/.k9s/plugin.yml
+# move selected line to chosen resource in K9s, then:
+# Shift-T (with confirmation) to toggle helm releases or kustomizations suspend and resume
+# Shift-R (no confirmation) to reconcile a git source or a helm release or a kustomization
+plugins:
+ toggle-helmrelease:
+ shortCut: Shift-T
+ confirm: true
+ scopes:
+ - helmreleases
+ description: Toggle to suspend or resume a HelmRelease
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ suspended=$(kubectl --context $CONTEXT get helmreleases -n $NAMESPACE $NAME -o=custom-columns=TYPE:.spec.suspend | tail -1);
+ verb=$([ $suspended = "true" ] && echo "resume" || echo "suspend");
+ flux
+ $verb helmrelease
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ toggle-kustomization:
+ shortCut: Shift-T
+ confirm: true
+ scopes:
+ - kustomizations
+ description: Toggle to suspend or resume a Kustomization
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ suspended=$(kubectl --context $CONTEXT get kustomizations -n $NAMESPACE $NAME -o=custom-columns=TYPE:.spec.suspend | tail -1);
+ verb=$([ $suspended = "true" ] && echo "resume" || echo "suspend");
+ flux
+ $verb kustomization
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-git:
+ shortCut: Shift-R
+ confirm: false
+ description: Flux reconcile
+ scopes:
+ - gitrepositories
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile source git
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-hr:
+ shortCut: Shift-R
+ confirm: false
+ description: Flux reconcile
+ scopes:
+ - helmreleases
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile helmrelease
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-helm-repo:
+ shortCut: Shift-Z
+ description: Flux reconcile
+ scopes:
+ - helmrepositories
+ command: bash
+ background: false
+ confirm: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile source helm
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-oci-repo:
+ shortCut: Shift-Z
+ description: Flux reconcile
+ scopes:
+ - ocirepositories
+ command: bash
+ background: false
+ confirm: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile source oci
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-ks:
+ shortCut: Shift-R
+ confirm: false
+ description: Flux reconcile
+ scopes:
+ - kustomizations
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile kustomization
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-ir:
+ shortCut: Shift-R
+ confirm: false
+ description: Flux reconcile
+ scopes:
+ - imagerepositories
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile image repository
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ reconcile-iua:
+ shortCut: Shift-R
+ confirm: false
+ description: Flux reconcile
+ scopes:
+ - imageupdateautomations
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ flux
+ reconcile image update
+ --context $CONTEXT
+ -n $NAMESPACE $NAME
+ | less -K
+ trace:
+ shortCut: Shift-A
+ confirm: false
+ description: Flux trace
+ scopes:
+ - all
+ command: bash
+ background: false
+ args:
+ - -c
+ - >-
+ resource=$(echo $RESOURCE_NAME | sed -E 's/ies$/y/' | sed -E 's/ses$/se/' | sed -E 's/(s|es)$//g')
+ flux
+ trace
+ --context $CONTEXT
+ --kind $resource
+ --api-version $RESOURCE_GROUP/$RESOURCE_VERSION
+ --namespace $NAMESPACE $NAME
+ | less -K
+ # credits: https://github.com/fluxcd/flux2/discussions/2494
+ get-suspended-helmreleases:
+ shortCut: Shift-S
+ confirm: false
+ description: Suspended Helm Releases
+ scopes:
+ - helmrelease
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ kubectl get
+ --context $CONTEXT
+ --all-namespaces
+ helmreleases.helm.toolkit.fluxcd.io -o json
+ | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.namespace,.metadata.name,.spec.suspend] | @tsv'
+ | less -K
+ get-suspended-kustomizations:
+ shortCut: Shift-S
+ confirm: false
+ description: Suspended Kustomizations
+ scopes:
+ - kustomizations
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ kubectl get
+ --context $CONTEXT
+ --all-namespaces
+ kustomizations.kustomize.toolkit.fluxcd.io -o json
+ | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.name,.spec.suspend] | @tsv'
+ | less -K
diff --git a/plugins/flux.yml b/plugins/flux.yml
deleted file mode 100644
index d997e387f6..0000000000
--- a/plugins/flux.yml
+++ /dev/null
@@ -1,93 +0,0 @@
-# $HOME/.k9s/plugin.yml
-# move selected line to chosen resource in K9s, then:
-# Shift-T (with confirmation) to toggle helm releases or kustomizations suspend and resume
-# Shift-R (no confirmation) to reconcile a git source or a helm release or a kustomization
-plugin:
- toggle-helmrelease:
- shortCut: Shift-T
- confirm: true
- scopes:
- - helmreleases
- description: Toggle to suspend or resume a HelmRelease
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT $([ $(kubectl --context $CONTEXT get helmreleases -n $NAMESPACE $NAME -o=custom-columns=TYPE:.spec.suspend | tail -1) = \"true\" ] && echo \"resume\" || echo \"suspend\") helmrelease -n $NAMESPACE $NAME |& less"
- toggle-kustomization:
- shortCut: Shift-T
- confirm: true
- scopes:
- - kustomizations
- description: Toggle to suspend or resume a Kustomization
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT $([ $(kubectl --context $CONTEXT get kustomizations -n $NAMESPACE $NAME -o=custom-columns=TYPE:.spec.suspend | tail -1) = \"true\" ] && echo \"resume\" || echo \"suspend\") kustomization -n $NAMESPACE $NAME |& less"
- reconcile-git:
- shortCut: Shift-R
- confirm: false
- description: Flux reconcile
- scopes:
- - gitrepositories
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT reconcile source git -n $NAMESPACE $NAME |& less"
- reconcile-hr:
- shortCut: Shift-R
- confirm: false
- description: Flux reconcile
- scopes:
- - helmreleases
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT reconcile helmrelease -n $NAMESPACE $NAME |& less"
- reconcile-helm-repo:
- shortCut: Shift-Z
- description: Flux reconcile
- scopes:
- - helmrepositories
- command: bash
- background: false
- confirm: false
- args:
- - -c
- - "flux reconcile source helm --context $CONTEXT -n $NAMESPACE $NAME |& less"
- reconcile-oci-repo:
- shortCut: Shift-Z
- description: Flux reconcile
- scopes:
- - ocirepositories
- command: bash
- background: false
- confirm: false
- args:
- - -c
- - "flux reconcile source oci --context $CONTEXT -n $NAMESPACE $NAME |& less"
- reconcile-ks:
- shortCut: Shift-R
- confirm: false
- description: Flux reconcile
- scopes:
- - kustomizations
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT reconcile kustomization -n $NAMESPACE $NAME |& less"
- trace:
- shortCut: Shift-A
- confirm: false
- description: Flux trace
- scopes:
- - all
- command: bash
- background: false
- args:
- - -c
- - "flux --context $CONTEXT trace --kind `echo $RESOURCE_NAME | sed -E 's/ies$/y/' | sed -E 's/ses$/se/' | sed -E 's/(s|es)$//g'` --api-version $RESOURCE_GROUP/$RESOURCE_VERSION --namespace $NAMESPACE $NAME |& less"
diff --git a/plugins/get-all.yml b/plugins/get-all.yaml
similarity index 63%
rename from plugins/get-all.yml
rename to plugins/get-all.yaml
index 1e1d871945..58f65d71c3 100644
--- a/plugins/get-all.yml
+++ b/plugins/get-all.yaml
@@ -1,24 +1,24 @@
-plugin:
+plugins:
#get all resources in a namespace using the krew get-all plugin
get-all-namespace:
shortCut: g
confirm: false
description: get-all
scopes:
- - namespaces
+ - namespaces
command: sh
background: false
args:
- - -c
- - "kubectl get-all --context $CONTEXT -n $NAME | less"
+ - -c
+ - "kubectl get-all --context $CONTEXT -n $NAME | less -K"
get-all-other:
shortCut: g
confirm: false
description: get-all
scopes:
- - all
+ - all
command: sh
background: false
args:
- - -c
- - "kubectl get-all --context $CONTEXT -n $NAMESPACE | less"
+ - -c
+ - "kubectl get-all --context $CONTEXT -n $NAMESPACE | less -K"
diff --git a/plugins/get_suspended.yml b/plugins/get_suspended.yml
deleted file mode 100644
index a5270a27b9..0000000000
--- a/plugins/get_suspended.yml
+++ /dev/null
@@ -1,23 +0,0 @@
-# credits: https://github.com/fluxcd/flux2/discussions/2494
- get-suspended-helmreleases:
- shortCut: Shift-S
- confirm: false
- description: Suspended Helm Releases
- scopes:
- - helmrelease
- command: sh
- background: false
- args:
- - -c
- - "kubectl get --all-namespaces helmreleases.helm.toolkit.fluxcd.io -o json | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.namespace,.metadata.name,.spec.suspend] | @tsv' | less"
- get-suspended-kustomizations:
- shortCut: Shift-S
- confirm: false
- description: Suspended Kustomizations
- scopes:
- - kustomizations
- command: sh
- background: false
- args:
- - -c
- - "kubectl get --all-namespaces kustomizations.kustomize.toolkit.fluxcd.io -o json | jq -r '.items[] | select(.spec.suspend==true) | [.metadata.name,.spec.suspend] | @tsv' | less"
diff --git a/plugins/helm-default-values.yaml b/plugins/helm-default-values.yaml
new file mode 100644
index 0000000000..253d03d689
--- /dev/null
+++ b/plugins/helm-default-values.yaml
@@ -0,0 +1,25 @@
+plugins:
+ helm-default-values:
+ shortCut: Shift-V
+ confirm: false
+ description: Chart Default Values
+ scopes:
+ - helm
+ command: sh
+ background: false
+ args:
+ - -c
+ - >-
+ revision=$(helm history -n $NAMESPACE --kube-context $CONTEXT $COL-NAME | grep deployed | cut -d$'\t' -f1 | tr -d ' \t');
+ kubectl
+ get secrets
+ --context $CONTEXT
+ -n $NAMESPACE
+ sh.helm.release.v1.$COL-NAME.v$revision -o yaml
+ | yq e '.data.release' -
+ | base64 -d
+ | base64 -d
+ | gunzip
+ | jq -r '.chart.values'
+ | yq -P
+ | less -K
diff --git a/plugins/helm-default-values.yml b/plugins/helm-default-values.yml
deleted file mode 100644
index b79705d598..0000000000
--- a/plugins/helm-default-values.yml
+++ /dev/null
@@ -1,13 +0,0 @@
-plugin:
- helm-default-values:
- shortCut: Shift-V
- confirm: false
- description: Chart Default Values
- scopes:
- - helm
- command: sh
- background: false
- args:
- - -c
- - "kubectl get secrets --context $CONTEXT -n $NAMESPACE sh.helm.release.v1.$COL-NAME.v$(helm history -n $NAMESPACE --kube-context $CONTEXT $COL-NAME | grep deployed | cut -d$'\\t' -f1 | tr -d ' \\t') -o yaml | yq e '.data.release' - | base64 -d | base64 -d | gunzip | jq -r '.chart.values' | yq -P | less"
-
diff --git a/plugins/helm-purge.yml b/plugins/helm-purge.yaml
similarity index 90%
rename from plugins/helm-purge.yml
rename to plugins/helm-purge.yaml
index eb106c07ef..c84a8eaa30 100644
--- a/plugins/helm-purge.yml
+++ b/plugins/helm-purge.yaml
@@ -1,9 +1,10 @@
# $HOME/.k9s/plugin.yml
-plugin:
+plugins:
# Issues a helm delete --purge for the resource associated with the selected pod
helm-purge:
shortCut: Ctrl-P
description: Helm Purge
+ dangerous: true
scopes:
- po
command: kubectl
diff --git a/plugins/helm_values.yml b/plugins/helm-values.yaml
similarity index 62%
rename from plugins/helm_values.yml
rename to plugins/helm-values.yaml
index 36d8fdb2eb..97e70cf850 100644
--- a/plugins/helm_values.yml
+++ b/plugins/helm-values.yaml
@@ -1,14 +1,14 @@
# View user-supplied values when the helm chart was created
-plugin:
+plugins:
helm-values:
shortCut: v
confirm: false
description: Values
scopes:
- - helm
+ - helm
command: sh
background: false
args:
- - -c
- - "helm get values $COL-NAME -n $NAMESPACE --kube-context $CONTEXT | less"
+ - -c
+ - "helm get values $COL-NAME -n $NAMESPACE --kube-context $CONTEXT | less -K"
diff --git a/plugins/job_suspend.yml b/plugins/job-suspend.yaml
similarity index 93%
rename from plugins/job_suspend.yml
rename to plugins/job-suspend.yaml
index d674dd2d2c..799f884efd 100644
--- a/plugins/job_suspend.yml
+++ b/plugins/job-suspend.yaml
@@ -1,8 +1,9 @@
-plugin:
+plugins:
# Suspends/Resumes a cronjob
toggleCronjob:
shortCut: Ctrl-S
confirm: true
+ dangerous: true
scopes:
- cj
description: Toggle to suspend or resume a running cronjob
diff --git a/plugins/k3d_root_shell.yml b/plugins/k3d-root-shell.yaml
similarity index 97%
rename from plugins/k3d_root_shell.yml
rename to plugins/k3d-root-shell.yaml
index 295c680833..d44304284c 100644
--- a/plugins/k3d_root_shell.yml
+++ b/plugins/k3d-root-shell.yaml
@@ -1,8 +1,9 @@
-plugin:
+plugins:
# Opens a shell to k3d container as root
k3d-root-shell:
shortCut: Shift-S
confirm: false
+ dangerous: true
description: "Root Shell"
scopes:
- containers
diff --git a/plugins/kubectl-plugins/kubectl-jq b/plugins/kubectl-plugins/kubectl-jq
index abbd3dda66..44a8cd61fe 100755
--- a/plugins/kubectl-plugins/kubectl-jq
+++ b/plugins/kubectl-plugins/kubectl-jq
@@ -1,3 +1,3 @@
#!/bin/bash
-/usr/local/bin/kubectl logs -f $1 -n $2 --context $3 | jq -rR '. as $raw | try (fromjson | .message) catch ("\u001b[31m" + $raw + "\u001b[0m")'
\ No newline at end of file
+kubectl logs -f $1 -n $2 --context $3 | jq -rR '. as $raw | try (fromjson | .message) catch ("\u001b[31m" + $raw + "\u001b[0m")'
diff --git a/plugins/liveMigration.yaml b/plugins/liveMigration.yaml
new file mode 100644
index 0000000000..a0fbbe72b4
--- /dev/null
+++ b/plugins/liveMigration.yaml
@@ -0,0 +1,35 @@
+# $XDG_CONFIG_HOME/k9s/plugins.yaml
+plugins:
+ # liveMigration plugin config by rabin-io
+ #
+ # Trigger virtual machine live migration, for VM's running on k8s cluster using kubevirt
+ # or Openshift with CNV (OpenShift Virtualization) installed.
+ #
+ # Require `virtctl` cli in your PATH,
+ # can be downloaded from Openshift `Command Line Tools` page
+ # or from kubevirt site https://kubevirt.io/user-guide/operations/virtctl_client_tool/
+ #
+ #
+ liveMigration:
+ # Can be triggered from the VMI (VirtualMachineInstance) view, with shortcut `m`
+ shortCut: m
+ # Description to show in K9s menu
+ description: Live Migrate moves VM to another compute node
+ # Enable confirmation dialog
+ confirm: true
+ dangerous: true
+ # Collections of views that support this shortcut. (You can use `all`)
+ scopes:
+ - virtualmachineinstance
+ # Whether or not to run the command in background mode
+ background: false
+ # The command to run upon invocation.
+ command: virtctl
+ # Defines the command arguments
+ args:
+ - migrate
+ - $NAME
+ - -n
+ - $NAMESPACE
+ - --context
+ - $CONTEXT
diff --git a/plugins/log_full.yml b/plugins/log-full.yaml
similarity index 99%
rename from plugins/log_full.yml
rename to plugins/log-full.yaml
index 304a86d384..452c1dbc91 100644
--- a/plugins/log_full.yml
+++ b/plugins/log-full.yaml
@@ -1,4 +1,4 @@
-plugin:
+plugins:
# See https://k9scli.io/topics/plugins/
raw-logs-follow:
shortCut: Ctrl-L
diff --git a/plugins/log_jq.yml b/plugins/log-jq.yaml
similarity index 97%
rename from plugins/log_jq.yml
rename to plugins/log-jq.yaml
index f4c40e02f3..331427b92f 100644
--- a/plugins/log_jq.yml
+++ b/plugins/log-jq.yaml
@@ -1,4 +1,4 @@
-plugin:
+plugins:
# Sends logs over to jq for processing. This leverages kubectl plugin kubectl-jq.
jqlogs:
shortCut: Ctrl-J
diff --git a/plugins/log_stern.yml b/plugins/log-stern.yaml
similarity index 97%
rename from plugins/log_stern.yml
rename to plugins/log-stern.yaml
index 9f7b9ed079..1e850b385d 100644
--- a/plugins/log_stern.yml
+++ b/plugins/log-stern.yaml
@@ -1,4 +1,4 @@
-plugin:
+plugins:
# Leverage stern (https://github.com/stern/stern) to output logs.
stern:
shortCut: Ctrl-L
diff --git a/plugins/openssl.yaml b/plugins/openssl.yaml
new file mode 100644
index 0000000000..c21bf31631
--- /dev/null
+++ b/plugins/openssl.yaml
@@ -0,0 +1,25 @@
+# Inspect certificate chains with openssl.
+# See: https://github.com/openssl/openssl.
+plugins:
+ secret-openssl-ca:
+ shortCut: Ctrl-O
+ confirm: false
+ description: Openssl ca.crt
+ scopes:
+ - secrets
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl get secret --context $CONTEXT -n $NAMESPACE $NAME -o jsonpath='{.data.ca\.crt}' | base64 -d | openssl storeutl -noout -text -certs /dev/stdin |& less
+ secret-openssl-tls:
+ shortCut: Shift-O
+ confirm: false
+ description: Openssl tls.crt
+ scopes:
+ - secrets
+ command: bash
+ background: false
+ args:
+ - -c
+ - kubectl get secret --context $CONTEXT -n $NAMESPACE $NAME -o jsonpath='{.data.tls\.crt}' | base64 -d | openssl storeutl -noout -text -certs /dev/stdin |& less
\ No newline at end of file
diff --git a/plugins/remove-finalizers.yaml b/plugins/remove-finalizers.yaml
new file mode 100644
index 0000000000..b7a83d67d5
--- /dev/null
+++ b/plugins/remove-finalizers.yaml
@@ -0,0 +1,33 @@
+# Removes all finalizers from the selected resource. Finalizers are namespaced keys that tell Kubernetes to wait
+# until specific conditions are met before it fully deletes resources marked for deletion.
+# Before deleting an object you need to ensure that all finalizers has been removed. Usually this would be done
+# by the specific controller but under some circumstances it is possible to encounter a set of objects blocked
+# for deletion.
+# This plugins makes this task easier by providing a shortcut to directly removing them all.
+# Be careful when using this plugin as it may leave dangling resources or instantly deleting resources that were
+# blocked by the finalizers.
+# Author: github.com/jalvarezit
+plugins:
+ remove_finalizers:
+ shortCut: Ctrl-F
+ confirm: true
+ dangerous: true
+ scopes:
+ - all
+ description: |
+ Removes all finalizers from selected resource. Be careful when using it,
+ it may leave dangling resources or delete them
+ command: kubectl
+ background: true
+ args:
+ - patch
+ - --context
+ - $CONTEXT
+ - --namespace
+ - $NAMESPACE
+ - $RESOURCE_NAME
+ - $NAME
+ - -p
+ - '{"metadata":{"finalizers":null}}'
+ - --type
+ - merge
diff --git a/plugins/resource-recommendations.yaml b/plugins/resource-recommendations.yaml
new file mode 100644
index 0000000000..b85518f60e
--- /dev/null
+++ b/plugins/resource-recommendations.yaml
@@ -0,0 +1,28 @@
+plugins:
+# Author: Daniel Rubin
+# Get recommendations for CPU/Memory requests and limits using Robusta KRR
+# Requires Prometheus in the Cluster and Robusta KRR (https://github.com/robusta-dev/krr) on your system
+# Open K9s in deployments/daemonsets/statefulsets view, then:
+# Shift-K to get recommendations
+ krr:
+ shortCut: Shift-K
+ description: Get krr
+ scopes:
+ - deployments
+ - daemonsets
+ - statefulsets
+ command: bash
+ background: false
+ confirm: false
+ args:
+ - -c
+ - |
+ LABELS=$(kubectl get $RESOURCE_NAME $NAME -n $NAMESPACE --context $CONTEXT --show-labels | awk '{print $NF}' | awk '{if(NR>1)print}')
+ krr simple --cluster $CONTEXT --selector $LABELS
+ echo "Press 'q' to exit"
+ while : ; do
+ read -n 1 k <&1
+ if [[ $k = q ]] ; then
+ break
+ fi
+ done
\ No newline at end of file
diff --git a/plugins/rm-ns.yml b/plugins/rm-ns.yaml
similarity index 92%
rename from plugins/rm-ns.yml
rename to plugins/rm-ns.yaml
index 14a2a251d8..a73592c040 100644
--- a/plugins/rm-ns.yml
+++ b/plugins/rm-ns.yaml
@@ -1,8 +1,9 @@
-plugin:
+plugins:
# remove finalizers from a stuck namespace
rm-ns:
shortCut: n
confirm: true
+ dangerous: true
description: Remove NS Finalizers
scopes:
- namespace
diff --git a/plugins/schema.json b/plugins/schema.json
deleted file mode 100644
index 3dd50016e9..0000000000
--- a/plugins/schema.json
+++ /dev/null
@@ -1,54 +0,0 @@
-{
- "$schema": "http://json-schema.org/draft-07/schema#",
- "title": "Schema for k9s CLI plugin.yml file : https://k9scli.io/topics/plugins",
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "plugin": {
- "type": "object",
- "additionalProperties": {
- "type": "object",
- "additionalProperties": false,
- "properties": {
- "shortCut": {
- "description": "Define a mnemonic to invoke the plugin",
- "type": "string"
- },
- "description": {
- "description": "What will be shown on the K9s menu",
- "type": "string"
- },
- "confirm": {
- "description": "See the command that is going to be executed and gives you an option to confirm",
- "type": "boolean"
- },
- "scopes": {
- "type": "array",
- "description": "Collections of views that support this shortcut. (You can use `all`)",
- "items": {
- "type": "string"
- }
- },
- "command": {
- "description": "The command to run upon invocation. Can use Krew plugins here too!",
- "type": "string"
- },
- "background": {
- "description": "Whether or not to run the command in background mode",
- "type": "boolean"
- },
- "args": {
- "description": "Defines the command arguments",
- "type": "array",
- "items": {
- "type": "string"
- }
- }
- },
- "required": ["shortCut", "description", "scopes", "command"]
- },
- "required": []
- }
- },
- "required": ["plugin"]
-}
diff --git a/plugins/watch_events.yml b/plugins/watch-events.yaml
similarity index 97%
rename from plugins/watch_events.yml
rename to plugins/watch-events.yaml
index ffd8b2fc59..24ef63e669 100644
--- a/plugins/watch_events.yml
+++ b/plugins/watch-events.yaml
@@ -1,8 +1,7 @@
# watch events on selected resources
# requires linux "watch" command
# change '-n' to adjust refresh time in seconds
-
-plugin:
+plugins:
watch-events:
shortCut: Shift-E
confirm: false
diff --git a/skins/axual.yml b/skins/axual.yaml
similarity index 98%
rename from skins/axual.yml
rename to skins/axual.yaml
index bc7b8701df..816eccc2cf 100644
--- a/skins/axual.yml
+++ b/skins/axual.yaml
@@ -111,7 +111,7 @@ k9s:
indicator:
fgColor: *red
bgColor: *blue
- toggleOnColor: *green
+ toggleOnColor: *yellow
toggleOffColor: *grey
# Chart drawing
diff --git a/skins/black_and_wtf.yml b/skins/black-and-wtf.yaml
similarity index 98%
rename from skins/black_and_wtf.yml
rename to skins/black-and-wtf.yaml
index 2b903ad78a..69fe02ef4a 100644
--- a/skins/black_and_wtf.yml
+++ b/skins/black-and-wtf.yaml
@@ -24,7 +24,7 @@ k9s:
prompt:
fgColor: *fg
bgColor: *bg
- suggestColor: &gray
+ suggestColor: *gray
info:
fgColor: *text
sectionColor: *fg
diff --git a/skins/dracula.yml b/skins/dracula.yaml
similarity index 100%
rename from skins/dracula.yml
rename to skins/dracula.yaml
diff --git a/skins/everforest-dark.yaml b/skins/everforest-dark.yaml
new file mode 100644
index 0000000000..5f2919371f
--- /dev/null
+++ b/skins/everforest-dark.yaml
@@ -0,0 +1,114 @@
+# -----------------------------------------------------------------------------
+# Everforest Dark
+# https://github.com/sainnhe/everforest/blob/master/palette.md#dark
+# -----------------------------------------------------------------------------
+#
+text: &text "#d3c6aa"
+base: &base "#1e2326"
+overlay: &overlay "#2e383c"
+muted: &muted "#495156"
+red: &red "#e67e80"
+blue: &blue "#7fbbb3"
+yellow: &yellow "#dbbc7f"
+green: &green "#83c092"
+pink: &pink "#d699b6"
+orange: &orange "#e69875"
+
+# Skin...
+k9s:
+ # General K9s styles
+ body:
+ fgColor: *text
+ bgColor: *base
+ logoColor: *green
+ # Command prompt styles
+ prompt:
+ fgColor: *text
+ bgColor: *base
+ suggestColor: *green
+ border:
+ command: *orange
+ default: *blue
+ # ClusterInfoView styles.
+ info:
+ fgColor: *green
+ sectionColor: *text
+ # Dialog styles.
+ dialog:
+ fgColor: *text
+ bgColor: *base
+ buttonFgColor: *text
+ buttonBgColor: *green
+ buttonFocusFgColor: *yellow
+ buttonFocusBgColor: *green
+ labelFgColor: *yellow
+ fieldFgColor: *text
+ frame:
+ # Borders styles.
+ border:
+ fgColor: *overlay
+ focusColor: *overlay
+ menu:
+ fgColor: *text
+ keyColor: *green
+ # Used for favorite namespaces
+ numKeyColor: *green
+ # CrumbView attributes for history navigation.
+ crumbs:
+ fgColor: *text
+ bgColor: *overlay
+ activeColor: *overlay
+ # Resource status and update styles
+ status:
+ newColor: *green
+ modifyColor: *red
+ addColor: *blue
+ errorColor: *pink
+ highlightcolor: *yellow
+ killColor: *muted
+ completedColor: *muted
+ # Border title styles.
+ title:
+ fgColor: *text
+ bgColor: *overlay
+ highlightColor: *yellow
+ counterColor: *green
+ filterColor: *green
+ views:
+ # Charts skins...
+ charts:
+ bgColor: default
+ defaultDialColors:
+ - *green
+ - *pink
+ defaultChartColors:
+ - *green
+ - *pink
+ # TableView attributes.
+ table:
+ fgColor: *text
+ bgColor: *base
+ # Header row styles.
+ header:
+ fgColor: *text
+ bgColor: *base
+ sorterColor: *red
+ # Xray view attributes.
+ xray:
+ fgColor: *text
+ bgColor: *base
+ cursorColor: *overlay
+ graphicColor: *green
+ showIcons: false
+ # YAML info styles.
+ yaml:
+ keyColor: *green
+ colonColor: *green
+ valueColor: *text
+ # Logs styles.
+ logs:
+ fgColor: *text
+ bgColor: *base
+ indicator:
+ fgColor: *text
+ bgColor: *base
diff --git a/skins/everforest-light.yaml b/skins/everforest-light.yaml
new file mode 100644
index 0000000000..dceab3e2ca
--- /dev/null
+++ b/skins/everforest-light.yaml
@@ -0,0 +1,114 @@
+# -----------------------------------------------------------------------------
+# Everforest Light
+# https://github.com/sainnhe/everforest/blob/master/palette.md#dark
+# -----------------------------------------------------------------------------
+#
+text: &text "#5c6a72"
+base: &base "#f2efdf"
+overlay: &overlay "#fffbef"
+muted: &muted "#edeada"
+red: &red "#f85552"
+blue: &blue "#3a94c5"
+yellow: &yellow "#dfa000"
+green: &green "#35a77c"
+pink: &pink "#df69ba"
+orange: &orange "#f57d26"
+
+# Skin...
+k9s:
+ # General K9s styles
+ body:
+ fgColor: *text
+ bgColor: *base
+ logoColor: *green
+ # Command prompt styles
+ prompt:
+ fgColor: *text
+ bgColor: *base
+ suggestColor: *green
+ border:
+ command: *orange
+ default: *blue
+ # ClusterInfoView styles.
+ info:
+ fgColor: *green
+ sectionColor: *text
+ # Dialog styles.
+ dialog:
+ fgColor: *text
+ bgColor: *base
+ buttonFgColor: *text
+ buttonBgColor: *green
+ buttonFocusFgColor: *yellow
+ buttonFocusBgColor: *green
+ labelFgColor: *yellow
+ fieldFgColor: *text
+ frame:
+ # Borders styles.
+ border:
+ fgColor: *overlay
+ focusColor: *overlay
+ menu:
+ fgColor: *text
+ keyColor: *green
+ # Used for favorite namespaces
+ numKeyColor: *green
+ # CrumbView attributes for history navigation.
+ crumbs:
+ fgColor: *text
+ bgColor: *overlay
+ activeColor: *overlay
+ # Resource status and update styles
+ status:
+ newColor: *green
+ modifyColor: *red
+ addColor: *blue
+ errorColor: *pink
+ highlightcolor: *yellow
+ killColor: *muted
+ completedColor: *muted
+ # Border title styles.
+ title:
+ fgColor: *text
+ bgColor: *overlay
+ highlightColor: *yellow
+ counterColor: *green
+ filterColor: *green
+ views:
+ # Charts skins...
+ charts:
+ bgColor: default
+ defaultDialColors:
+ - *green
+ - *pink
+ defaultChartColors:
+ - *green
+ - *pink
+ # TableView attributes.
+ table:
+ fgColor: *text
+ bgColor: *base
+ # Header row styles.
+ header:
+ fgColor: *text
+ bgColor: *base
+ sorterColor: *red
+ # Xray view attributes.
+ xray:
+ fgColor: *text
+ bgColor: *base
+ cursorColor: *overlay
+ graphicColor: *green
+ showIcons: false
+ # YAML info styles.
+ yaml:
+ keyColor: *green
+ colonColor: *green
+ valueColor: *text
+ # Logs styles.
+ logs:
+ fgColor: *text
+ bgColor: *base
+ indicator:
+ fgColor: *text
+ bgColor: *base
diff --git a/skins/gruvbox-dark.yml b/skins/gruvbox-dark.yaml
similarity index 100%
rename from skins/gruvbox-dark.yml
rename to skins/gruvbox-dark.yaml
diff --git a/skins/gruvbox-light.yml b/skins/gruvbox-light.yaml
similarity index 100%
rename from skins/gruvbox-light.yml
rename to skins/gruvbox-light.yaml
diff --git a/skins/in_the_navy.yml b/skins/in-the-navy.yaml
similarity index 100%
rename from skins/in_the_navy.yml
rename to skins/in-the-navy.yaml
diff --git a/skins/kanagawa.yaml b/skins/kanagawa.yaml
new file mode 100644
index 0000000000..11b4452260
--- /dev/null
+++ b/skins/kanagawa.yaml
@@ -0,0 +1,114 @@
+# -----------------------------------------------------------------------------
+# Kanagawa Skin
+# -----------------------------------------------------------------------------
+
+# Styles...
+foreground: &foreground "#dcd7ba"
+background: &background "#1f1f28"
+black: &black "#090618"
+blue: &blue "#7e9cd8"
+green: &green "#76946a"
+grey: &grey "#727169"
+orange: &orange "#ffa066"
+purple: &purple "#957fb8"
+red: &red "#c34043"
+yellow: &yellow "#c0a36e"
+yellow_bright: &yellow_bright "#e6c384"
+
+# Skin...
+k9s:
+ body:
+ fgColor: *foreground
+ bgColor: *background
+ logoColor: *green
+ prompt:
+ fgColor: *foreground
+ bgColor: *background
+ suggestColor: *orange
+ info:
+ fgColor: *grey
+ sectionColor: *green
+ help:
+ fgColor: *foreground
+ bgColor: *background
+ keyColor: *yellow
+ numKeyColor: *blue
+ sectionColor: *purple
+ dialog:
+ fgColor: *black
+ bgColor: *background
+ buttonFgColor: *foreground
+ buttonBgColor: *green
+ buttonFocusFgColor: *black
+ buttonFocusBgColor: *blue
+ labelFgColor: *orange
+ fieldFgColor: *blue
+ frame:
+ border:
+ fgColor: *green
+ focusColor: *green
+ menu:
+ fgColor: *grey
+ keyColor: *yellow
+ numKeyColor: *yellow
+ crumbs:
+ fgColor: *black
+ bgColor: *green
+ activeColor: *yellow
+ status:
+ newColor: *blue
+ modifyColor: *green
+ addColor: *grey
+ pendingColor: *orange
+ errorColor: *red
+ highlightColor: *yellow
+ killColor: *purple
+ completedColor: *grey
+ title:
+ fgColor: *blue
+ bgColor: *background
+ highlightColor: *purple
+ counterColor: *foreground
+ filterColor: *blue
+ views:
+ charts:
+ bgColor: *background
+ defaultDialColors:
+ - *green
+ - *red
+ defaultChartColors:
+ - *green
+ - *red
+ table:
+ fgColor: *yellow
+ bgColor: *background
+ cursorFgColor: *black
+ cursorBgColor: *blue
+ markColor: *yellow_bright
+ header:
+ fgColor: *grey
+ bgColor: *background
+ sorterColor: *orange
+ xray:
+ fgColor: *blue
+ bgColor: *background
+ cursorColor: *foreground
+ graphicColor: *yellow_bright
+ showIcons: false
+ yaml:
+ keyColor: *red
+ colonColor: *grey
+ valueColor: *grey
+ logs:
+ fgColor: *grey
+ bgColor: *background
+ indicator:
+ fgColor: *blue
+ bgColor: *background
+ toggleOnColor: *red
+ toggleOffColor: *grey
+ help:
+ fgColor: *grey
+ bgColor: *background
+ indicator:
+ fgColor: *blue
diff --git a/skins/kiss.yml b/skins/kiss.yaml
similarity index 100%
rename from skins/kiss.yml
rename to skins/kiss.yaml
diff --git a/skins/monokai.yml b/skins/monokai.yaml
similarity index 100%
rename from skins/monokai.yml
rename to skins/monokai.yaml
diff --git a/skins/narsingh.yml b/skins/narsingh.yaml
similarity index 100%
rename from skins/narsingh.yml
rename to skins/narsingh.yaml
diff --git a/skins/nightfox.yml b/skins/nightfox.yaml
similarity index 98%
rename from skins/nightfox.yml
rename to skins/nightfox.yaml
index 6d144c69b6..61ec7dbd16 100644
--- a/skins/nightfox.yml
+++ b/skins/nightfox.yaml
@@ -99,5 +99,5 @@ k9s:
indicator:
fgColor: *foreground
bgColor: *selection
- toggleOnColor: *margenta
+ toggleOnColor: *magenta
toggleOffColor: *blue
diff --git a/skins/nord.yml b/skins/nord.yaml
similarity index 100%
rename from skins/nord.yml
rename to skins/nord.yaml
diff --git a/skins/one_dark.yml b/skins/one-dark.yaml
similarity index 100%
rename from skins/one_dark.yml
rename to skins/one-dark.yaml
diff --git a/skins/red.yml b/skins/red.yaml
similarity index 100%
rename from skins/red.yml
rename to skins/red.yaml
diff --git a/skins/rose-pine-dawn.yaml b/skins/rose-pine-dawn.yaml
new file mode 100644
index 0000000000..da4edfd236
--- /dev/null
+++ b/skins/rose-pine-dawn.yaml
@@ -0,0 +1,110 @@
+# -----------------------------------------------------------------------------
+# Rose Pine Dawn
+# https://rosepinetheme.com/palette/ingredients/
+# -----------------------------------------------------------------------------
+#
+text: &text "#575279"
+base: &base "#faf4ed"
+overlay: &overlay "#f2e9e1"
+muted: &muted "#9893a5"
+rose: &rose "#d7827e"
+pine: &pine "#286983"
+gold: &gold "#ea9d34"
+iris: &iris "#907aa9"
+love: &love "#b4637a"
+
+# Skin...
+k9s:
+ # General K9s styles
+ body:
+ fgColor: *text
+ bgColor: *base
+ logoColor: *iris
+ # Command prompt styles
+ prompt:
+ fgColor: *text
+ bgColor: *base
+ suggestColor: *iris
+ # ClusterInfoView styles.
+ info:
+ fgColor: *iris
+ sectionColor: *text
+ # Dialog styles.
+ dialog:
+ fgColor: *text
+ bgColor: *base
+ buttonFgColor: *text
+ buttonBgColor: *iris
+ buttonFocusFgColor: *gold
+ buttonFocusBgColor: *iris
+ labelFgColor: *gold
+ fieldFgColor: *text
+ frame:
+ # Borders styles.
+ border:
+ fgColor: *overlay
+ focusColor: *overlay
+ menu:
+ fgColor: *text
+ keyColor: *iris
+ # Used for favorite namespaces
+ numKeyColor: *iris
+ # CrumbView attributes for history navigation.
+ crumbs:
+ fgColor: *text
+ bgColor: *overlay
+ activeColor: *overlay
+ # Resource status and update styles
+ status:
+ newColor: *rose
+ modifyColor: *iris
+ addColor: *pine
+ errorColor: *love
+ highlightcolor: *gold
+ killColor: *muted
+ completedColor: *muted
+ # Border title styles.
+ title:
+ fgColor: *text
+ bgColor: *overlay
+ highlightColor: *gold
+ counterColor: *iris
+ filterColor: *iris
+ views:
+ # Charts skins...
+ charts:
+ bgColor: default
+ defaultDialColors:
+ - *iris
+ - *love
+ defaultChartColors:
+ - *iris
+ - *love
+ # TableView attributes.
+ table:
+ fgColor: *text
+ bgColor: *base
+ # Header row styles.
+ header:
+ fgColor: *text
+ bgColor: *base
+ sorterColor: *rose
+ # Xray view attributes.
+ xray:
+ fgColor: *text
+ bgColor: *base
+ cursorColor: *overlay
+ graphicColor: *iris
+ showIcons: false
+ # YAML info styles.
+ yaml:
+ keyColor: *iris
+ colonColor: *iris
+ valueColor: *text
+ # Logs styles.
+ logs:
+ fgColor: *text
+ bgColor: *base
+ indicator:
+ fgColor: *text
+ bgColor: *iris
diff --git a/skins/rose-pine-moon.yaml b/skins/rose-pine-moon.yaml
new file mode 100644
index 0000000000..df7e36317a
--- /dev/null
+++ b/skins/rose-pine-moon.yaml
@@ -0,0 +1,110 @@
+# -----------------------------------------------------------------------------
+# Rose Pine Main
+# https://rosepinetheme.com/palette/ingredients/
+# -----------------------------------------------------------------------------
+#
+text: &text "#e0def4"
+base: &base "#232136"
+overlay: &overlay "#393552"
+muted: &muted "#6e6a86"
+rose: &rose "#ea9a97"
+pine: &pine "#3e8fb0"
+gold: &gold "#f6c177"
+iris: &iris "#c4a7e7"
+love: &love "#eb6f92"
+
+# Skin...
+k9s:
+ # General K9s styles
+ body:
+ fgColor: *text
+ bgColor: *base
+ logoColor: *iris
+ # Command prompt styles
+ prompt:
+ fgColor: *text
+ bgColor: *base
+ suggestColor: *iris
+ # ClusterInfoView styles.
+ info:
+ fgColor: *iris
+ sectionColor: *text
+ # Dialog styles.
+ dialog:
+ fgColor: *text
+ bgColor: *base
+ buttonFgColor: *text
+ buttonBgColor: *iris
+ buttonFocusFgColor: *gold
+ buttonFocusBgColor: *iris
+ labelFgColor: *gold
+ fieldFgColor: *text
+ frame:
+ # Borders styles.
+ border:
+ fgColor: *overlay
+ focusColor: *overlay
+ menu:
+ fgColor: *text
+ keyColor: *iris
+ # Used for favorite namespaces
+ numKeyColor: *iris
+ # CrumbView attributes for history navigation.
+ crumbs:
+ fgColor: *text
+ bgColor: *overlay
+ activeColor: *overlay
+ # Resource status and update styles
+ status:
+ newColor: *rose
+ modifyColor: *iris
+ addColor: *pine
+ errorColor: *love
+ highlightcolor: *gold
+ killColor: *muted
+ completedColor: *muted
+ # Border title styles.
+ title:
+ fgColor: *text
+ bgColor: *overlay
+ highlightColor: *gold
+ counterColor: *iris
+ filterColor: *iris
+ views:
+ # Charts skins...
+ charts:
+ bgColor: default
+ defaultDialColors:
+ - *iris
+ - *love
+ defaultChartColors:
+ - *iris
+ - *love
+ # TableView attributes.
+ table:
+ fgColor: *text
+ bgColor: *base
+ # Header row styles.
+ header:
+ fgColor: *text
+ bgColor: *base
+ sorterColor: *rose
+ # Xray view attributes.
+ xray:
+ fgColor: *text
+ bgColor: *base
+ cursorColor: *overlay
+ graphicColor: *iris
+ showIcons: false
+ # YAML info styles.
+ yaml:
+ keyColor: *iris
+ colonColor: *iris
+ valueColor: *text
+ # Logs styles.
+ logs:
+ fgColor: *text
+ bgColor: *base
+ indicator:
+ fgColor: *text
+ bgColor: *iris
diff --git a/skins/rose_pine.yml b/skins/rose-pine.yaml
similarity index 100%
rename from skins/rose_pine.yml
rename to skins/rose-pine.yaml
diff --git a/skins/snazzy.yml b/skins/snazzy.yaml
similarity index 100%
rename from skins/snazzy.yml
rename to skins/snazzy.yaml
diff --git a/skins/solarized-16.yml b/skins/solarized-16.yaml
similarity index 100%
rename from skins/solarized-16.yml
rename to skins/solarized-16.yaml
diff --git a/skins/solarized_dark.yml b/skins/solarized-dark.yaml
similarity index 100%
rename from skins/solarized_dark.yml
rename to skins/solarized-dark.yaml
diff --git a/skins/solarized_light.yml b/skins/solarized-light.yaml
similarity index 100%
rename from skins/solarized_light.yml
rename to skins/solarized-light.yaml
diff --git a/skins/stock.yml b/skins/stock.yaml
similarity index 100%
rename from skins/stock.yml
rename to skins/stock.yaml
diff --git a/skins/transparent.yml b/skins/transparent.yaml
similarity index 98%
rename from skins/transparent.yml
rename to skins/transparent.yaml
index be0a72e081..9a103a87fc 100644
--- a/skins/transparent.yml
+++ b/skins/transparent.yaml
@@ -7,7 +7,7 @@
k9s:
body:
bgColor: default
- promt:
+ prompt:
bgColor: default
info:
sectionColor: default
diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml
index 682f054b40..d6ef0648a2 100644
--- a/snap/snapcraft.yaml
+++ b/snap/snapcraft.yaml
@@ -1,9 +1,9 @@
name: k9s
-base: core20
-version: 'v0.27.4'
+base: core22
+version: 'v0.32.5'
summary: K9s is a CLI to view and manage your Kubernetes clusters.
description: |
- K9s is a CLI to view and manage your Kubernetes clusters. By leveraging a terminal UI, you can easily traverse Kubernetes resources and view the state of you clusters in a single powerful session.
+ K9s is a CLI to view and manage your Kubernetes clusters. By leveraging a terminal UI, you can easily traverse Kubernetes resources and view the state of your clusters in a single powerful session.
grade: stable
confinement: classic
@@ -14,25 +14,15 @@ architectures:
- armhf
- i386
-plugs:
- kube-config:
- interface: personal-files
- read:
- - $HOME/.kube/config
-
apps:
k9s:
command: bin/k9s
- plugs:
- - network
- - network-bind
- - home
- - kube-config
parts:
build:
plugin: go
- source: https://github.com/derailed/k9s.git
+ source: https://github.com/derailed/k9s
+ source-type: git
source-tag: $SNAPCRAFT_PROJECT_VERSION
override-build: |
make test
@@ -40,3 +30,5 @@ parts:
install $SNAPCRAFT_PART_BUILD/execs/k9s -D $SNAPCRAFT_PART_INSTALL/bin/k9s
build-packages:
- build-essential
+ build-snaps:
+ - go