Files
dotfiles/home/.k9s/plugins.yaml
2025-05-08 09:41:14 +01:00

217 lines
4.7 KiB
YAML

plugins:
sshnode:
shortCut: s
description: SSH via Teleport
dangerous: false
scopes:
- nodes
background: false
command: bash
args:
- -c
- tsh ssh root@cluster=$(echo "$CONTEXT" | rev | cut -d'-' -f1 | rev),node=$(echo "$NAME" | cut -d '.' -f 1)
aws:
shortCut: w
description: Open AWS Console
dangerous: false
scopes:
- clusters
- awsclusters
background: false
command: bash
args:
- -c
- open "https://signin.aws.amazon.com/switchrole?account=$(kubectl --context ${CONTEXT} get awsclusterroleidentity $(kubectl --context ${CONTEXT} get awsclusters -n ${NAMESPACE} ${NAME} -o json | jq -r '.spec.identityRef.name') -o json | jq -r '.spec.roleARN | split(":")[4]')&roleName=GiantSwarmAdmin&displayName=${CONTEXT}+-+${NAME}"
clusterapps:
shortCut: a
description: List Apps
dangerous: false
scopes:
- clusters
background: false
command: sh
args:
- -c
- "viddy -n 5s 'kubectl get apps -n $NAMESPACE | grep $NAME'"
tree:
shortCut: t
description: Show Tree
dangerous: false
scopes:
- clusters
background: false
command: sh
args:
- -c
- "viddy -n 15s 'kubectl tree -n $NAMESPACE clusters.v1beta1.cluster.x-k8s.io $NAME'"
values:
shortCut: v
description: Show Values
dangerous: false
scopes:
- clusters
- apps
background: false
command: sh
args:
- -c
- "kubectl get -o yaml cm ${NAME}-chart-values -n giantswarm | less"
# 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"
# Suspends/Resumes a cronjob
toggleCronjob:
shortCut: Shift-S
confirm: true
scopes:
- cj
description: Toggle to suspend or resume a running cronjob
command: kubectl
background: true
args:
- patch
- cronjobs
- $NAME
- -n
- $NAMESPACE
- --context
- $CONTEXT
- -p
- '{"spec" : {"suspend" : $!COL-SUSPEND }}'
# Flux
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-R
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-R
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
remove_finalizers:
shortCut: Ctrl-F
confirm: true
scopes:
- all
description: |
Removes all finalizers
command: kubectl
background: true
args:
- patch
- --context
- $CONTEXT
- --namespace
- $NAMESPACE
- $RESOURCE_NAME.$RESOURCE_GROUP
- $NAME
- -p
- '{"metadata":{"finalizers":null}}'
- --type
- merge
watch-events:
shortCut: Shift-E
confirm: false
description: Watch Events
scopes:
- all
command: sh
background: false
args:
- -c
- "kubectl events --context $CONTEXT --namespace $NAMESPACE --for $RESOURCE_NAME.$RESOURCE_GROUP/$NAME --watch"