initial commit

This commit is contained in:
fleaz 2025-05-05 23:49:57 +02:00
commit 1ba9111b3c
No known key found for this signature in database
GPG key ID: 935474624265FE8F
2 changed files with 49 additions and 0 deletions

1
README.md Normal file
View file

@ -0,0 +1 @@
# ktx

48
ktx Normal file
View file

@ -0,0 +1,48 @@
#! /usr/bin/env bash
CUR_FILE="$HOME/.kube/current"
# Switch context
# Usage: ktx <cluster> [namespace]
ktx() {
unset KUBECONFIG
CONTEXT=${1:-}
NAMESPACE=${2:-}
if [ -z $CONTEXT ]; then
SELECTION=$(kubectl config get-contexts | awk '{print $2"|"$4}' | tail +2 | fzf)
CONTEXT=$(echo $SELECTION | cut -d"|" -f1)
DEFAULT_NS=$(echo $SELECTION | cut -d"|" -f2)
fi
if [ -z $NAMESPACE ]; then
NAMESPACE=${DEFAULT_NS}
fi
FILENAME="$HOME/.kube/frickel/${CONTEXT}_${NAMESPACE}.conf"
kubectl config view --minify --flatten --context $CONTEXT > ${FILENAME}
export KUBECONFIG=${FILENAME}
kubectl config set-context --current --namespace=$NAMESPACE
ln -sf ${FILENAME} ${CUR_FILE}
}
# Switch namespace
# Usage: kn [namespace]
kn() {
NAMESPACE=${1:-}
if [ -z $NAMESPACE ]; then
NAMESPACE=$(kubectl get namespace | awk '{ print $1 }' | tail +2 | fzf)
fi
kubectl config set-context --current --namespace=$NAMESPACE
}
if [ -f ${CUR_FILE} ]; then
export KUBECONFIG=$(readlink -f "${CUR_FILE}")
fi