From 023fb277f8e2cd460d8c9127add678d7b6fe041a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Vladim=C3=ADr=20Dudr?= Date: Fri, 21 Feb 2025 12:27:03 +0100 Subject: [PATCH] k9s: hotkeys, custom columns for flux --- dot_config/k9s/hotkeys.yaml | 21 +++++++++++++++ dot_config/k9s/plugins.yaml | 42 +++++++---------------------- dot_config/k9s/private_aliases.yaml | 10 +++++++ dot_config/k9s/private_config.yaml | 41 ++++++++++++++++++++++++++++ dot_config/k9s/views.yaml | 16 +++++++++++ 5 files changed, 98 insertions(+), 32 deletions(-) create mode 100644 dot_config/k9s/hotkeys.yaml create mode 100644 dot_config/k9s/private_aliases.yaml create mode 100644 dot_config/k9s/private_config.yaml create mode 100644 dot_config/k9s/views.yaml diff --git a/dot_config/k9s/hotkeys.yaml b/dot_config/k9s/hotkeys.yaml new file mode 100644 index 0000000..a9da862 --- /dev/null +++ b/dot_config/k9s/hotkeys.yaml @@ -0,0 +1,21 @@ + +hotKeys: + pods: + shortCut: Shift-1 + description: Show pods + command: pods + + gitrepos: + shortCut: Shift-2 + description: Show gitrepos + command: gitrepo + + kustomizations: + shortCut: Shift-3 + description: Show kustomizations + command: ks + + helmrels: + shortCut: Shift-4 + description: Show helm releases + command: hr diff --git a/dot_config/k9s/plugins.yaml b/dot_config/k9s/plugins.yaml index 4973bd0..1b4eb62 100644 --- a/dot_config/k9s/plugins.yaml +++ b/dot_config/k9s/plugins.yaml @@ -17,6 +17,7 @@ plugins: - > kubectl annotate --overwrite + --kubeconfig "$KUBECONFIG" --context "$CONTEXT" --namespace "$NAMESPACE" ${RESOURCE_NAME}.${RESOURCE_GROUP} @@ -32,23 +33,24 @@ plugins: args: - -c - | + set -eo pipefail + trap "echo Something failed" ERR ku() { local verb="$1" shift - kubectl --context dkube --namespace flux-system $verb ${RESOURCE_NAME}.${RESOURCE_GROUP} $NAME "$@" + kubectl --kubeconfig "$KUBECONFIG" --context "$CONTEXT" --namespace "$NAMESPACE" $verb ${RESOURCE_NAME}.${RESOURCE_GROUP} $NAME "$@" } S="$(ku get -o jsonpath='{.spec.suspend }')"; if [[ "$S" == true ]] ; then ku patch --type=json -p '[{ "op": "remove", "path": "/spec/suspend"}]'; - echo "$RESOURCE_NAME resumed" + echo "$RESOURCE_NAME resumed" else ku patch --type=json -p '[{ "op": "replace", "path": "/spec/suspend", "value": true}]'; - echo "$RESOURCE_NAME suspended" + echo "$RESOURCE_NAME suspended" fi - trace: shortCut: Ctrl-T confirm: false @@ -60,34 +62,8 @@ plugins: 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=$(echo $RESOURCE_NAME | sed -E 's/ies$/y/' | sed -E 's/ses$/se/' | sed -E 's/(s|es)$//g') ; flux trace --kubeconfig "$KUBECONFIG" --context $CONTEXT --kind $resource --api-version $RESOURCE_GROUP/$RESOURCE_VERSION --namespace $NAMESPACE $NAME | less -K - 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 stern: shortCut: Ctrl-L confirm: false @@ -97,6 +73,8 @@ plugins: command: stern background: false args: + - --kubeconfig + - $KUBECONFIG - --tail - 50 - $FILTER @@ -115,5 +93,5 @@ plugins: args: - node-shell - --context - - $CONTEXT + - $CONTEXT - $NAME diff --git a/dot_config/k9s/private_aliases.yaml b/dot_config/k9s/private_aliases.yaml new file mode 100644 index 0000000..d561d43 --- /dev/null +++ b/dot_config/k9s/private_aliases.yaml @@ -0,0 +1,10 @@ +aliases: + dp: deployments + sec: v1/secrets + jo: jobs + cr: clusterroles + crb: clusterrolebindings + ro: roles + rb: rolebindings + np: networkpolicies + gr: gitrepositories diff --git a/dot_config/k9s/private_config.yaml b/dot_config/k9s/private_config.yaml new file mode 100644 index 0000000..b902b6a --- /dev/null +++ b/dot_config/k9s/private_config.yaml @@ -0,0 +1,41 @@ +k9s: + liveViewAutoRefresh: false + screenDumpDir: /home/vladimir/.local/state/k9s/screen-dumps + refreshRate: 2 + maxConnRetry: 5 + readOnly: false + noExitOnCtrlC: false + ui: + enableMouse: false + headless: false + logoless: true + crumbsless: false + reactive: true + noIcons: false + defaultsToFullScreen: false + skipLatestRevCheck: false + disablePodCounting: false + shellPod: + image: busybox:1.35.0 + namespace: default + limits: + cpu: 100m + memory: 100Mi + imageScans: + enable: false + exclusions: + namespaces: [] + labels: {} + logger: + tail: 100 + buffer: 5000 + sinceSeconds: -1 + textWrap: false + showTime: false + thresholds: + cpu: + critical: 90 + warn: 70 + memory: + critical: 90 + warn: 70 diff --git a/dot_config/k9s/views.yaml b/dot_config/k9s/views.yaml new file mode 100644 index 0000000..ca054c7 --- /dev/null +++ b/dot_config/k9s/views.yaml @@ -0,0 +1,16 @@ +views: + kustomize.toolkit.fluxcd.io/v1/kustomizations: + columns: + - NAMESPACE + - NAME + - SUSPENDED:.spec.suspend + helm.toolkit.fluxcd.io/v2/helmreleases: + columns: + - NAMESPACE + - NAME + - SUSPENDED:.spec.suspend + source.toolkit.fluxcd.io/v1/gitrepositories: + columns: + - NAMESPACE + - NAME + - SUSPENDED:.spec.suspend