Added my k3s commands.
This commit is contained in:
parent
d56b6dc3fb
commit
cdd967c48d
68
jdownie/k3s/ka
Executable file
68
jdownie/k3s/ka
Executable file
@ -0,0 +1,68 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
T="`mktemp`"
|
||||
if [ "$1" = "-r" ]; then
|
||||
find . -type f -regex ".*\/[0-9][0-9]\-.*\.\(yaml\|url\)$" > "$T"
|
||||
find . -type d -regex ".*\/[0-9][0-9]\-ConfigMap\-.*$" >> "$T"
|
||||
else
|
||||
find . -maxdepth 1 -type f -regex ".*\/[0-9][0-9]\-.*\.\(yaml\|url\)$" > "$T"
|
||||
find . -maxdepth 1 -type d -regex ".*\/[0-9][0-9]\-ConfigMap\-.*$" >> "$T"
|
||||
fi
|
||||
for f in $( sort "$T" ); do
|
||||
if [ -d "$f" ]; then
|
||||
if [[ "`basename $f`" =~ ^[0-9][0-9]-ConfigMap-.*$ ]]; then
|
||||
NAME=""
|
||||
NAMESPACE=""
|
||||
if [ ! -f "$f/config.json" ]; then
|
||||
echo "Warning: Missing $f/vars"
|
||||
else
|
||||
CFG="$f/config.json"
|
||||
NAME="`jq -r .name "$CFG"`"
|
||||
NAMESPACE="`jq -r .namespace "$CFG"`"
|
||||
fi
|
||||
FOUT="`mktemp`"
|
||||
cat <<EOF > $FOUT
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: $NAME
|
||||
namespace: $NAMESPACE
|
||||
data:
|
||||
EOF
|
||||
FILES="`mktemp`"
|
||||
find "$f" -type f > "$FILES"
|
||||
for FILE in $(cat "$FILES"); do
|
||||
BASENAME="`basename "$FILE"`"
|
||||
if [ "$BASENAME" != "config.json" ]; then
|
||||
jq -e ".base64[] | select(. == \"$BASENAME\")" "$CFG" > /dev/null
|
||||
if [ $? -eq 0 ]; then
|
||||
echo " $BASENAME.base64: |" >> "$FOUT"
|
||||
base64 "$FILE" | tr -d '\n' | sed "s/^/ /" >> "$FOUT"
|
||||
echo "" >> "$FOUT"
|
||||
else
|
||||
echo " $BASENAME: |" >> "$FOUT"
|
||||
sed "s/^/ /" "$FILE" >> "$FOUT"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "$FILES"
|
||||
kubectl apply -f "$FOUT"
|
||||
rm "$FOUT"
|
||||
else
|
||||
echo "Dunno: $f"
|
||||
fi
|
||||
else
|
||||
D="`dirname "$f"`"
|
||||
if [ -f "$D/env" ]; then
|
||||
source "$D/env"
|
||||
fi
|
||||
EXT="`echo "$f" | tr '.' '\n' | tail -n 1`"
|
||||
if [ "$EXT" = "url" ]; then
|
||||
url=$(head -n 1 "$f" | tr -d '\n')
|
||||
kubectl apply -f "$url"
|
||||
else
|
||||
envsubst < "$f" | kubectl apply -f -
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "$T"
|
46
jdownie/k3s/kd
Executable file
46
jdownie/k3s/kd
Executable file
@ -0,0 +1,46 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
T="`mktemp`"
|
||||
if [ "$1" = "-r" ]; then
|
||||
find . -type f -regex ".*\/[0-9][0-9]\-.*\.\(yaml\|url\)$" > "$T"
|
||||
find . -type d -regex ".*\/[0-9][0-9]\-ConfigMap\-.*$" >> "$T"
|
||||
else
|
||||
find . -maxdepth 1 -type f -regex ".*\/[0-9][0-9]\-.*\.\(yaml\|url\)$" > "$T"
|
||||
find . -maxdepth 1 -type d -regex ".*\/[0-9][0-9]\-ConfigMap\-.*$" >> "$T"
|
||||
fi
|
||||
for f in $( sort -r "$T" ); do
|
||||
if [ -d "$f" ]; then
|
||||
if [[ "`basename $f`" =~ ^[0-9][0-9]-ConfigMap-.*$ ]]; then
|
||||
NAME=""
|
||||
NAMESPACE=""
|
||||
if [ ! -f "$f/config.json" ]; then
|
||||
echo "Warning: Missing $f/vars"
|
||||
else
|
||||
CFG="$f/config.json"
|
||||
NAME="`jq -r .name "$CFG"`"
|
||||
NAMESPACE="`jq -r .namespace "$CFG"`"
|
||||
fi
|
||||
FOUT="`mktemp`"
|
||||
cat <<EOF > $FOUT
|
||||
apiVersion: v1
|
||||
kind: ConfigMap
|
||||
metadata:
|
||||
name: $NAME
|
||||
namespace: $NAMESPACE
|
||||
EOF
|
||||
kubectl delete -f "$FOUT"
|
||||
rm "$FOUT"
|
||||
fi
|
||||
else
|
||||
EXT="`echo "$f" | tr '.' '\n' | tail -n 1`"
|
||||
if [ "$EXT" = "url" ]; then
|
||||
url=$(head -n 1 "$f" | tr -d '\n')
|
||||
echo "$url"
|
||||
kubectl delete -f "$url"
|
||||
else
|
||||
kubectl delete -f "$f"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "$T"
|
||||
|
21
jdownie/k3s/ke
Executable file
21
jdownie/k3s/ke
Executable file
@ -0,0 +1,21 @@
|
||||
#!/bin/bash
|
||||
|
||||
NS="$1"
|
||||
PODS="`mktemp`"
|
||||
kubectl -n "$NS" --output=json get pods \
|
||||
| jq -r .items[].metadata.name \
|
||||
> "$PODS"
|
||||
for POD in $(cat "$PODS"); do
|
||||
CONTAINERS="`mktemp`"
|
||||
kubectl -n "$NS" --output=json get pod "$POD" \
|
||||
| jq -r .spec.containers[].name \
|
||||
> "$CONTAINERS"
|
||||
for CONTAINER in $(cat "$CONTAINERS"); do
|
||||
# echo -e "$POD:\t$CONTAINER"
|
||||
if [ "$CONTAINER" = "$2" ]; then
|
||||
kubectl -n "$NS" exec -ti "$POD" -c "$CONTAINER" -- "$3"
|
||||
fi
|
||||
done
|
||||
rm "$CONTAINERS"
|
||||
done
|
||||
rm "$PODS"
|
25
jdownie/k3s/kl
Executable file
25
jdownie/k3s/kl
Executable file
@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
|
||||
NS="$1"
|
||||
PODS="`mktemp`"
|
||||
kubectl -n "$NS" --output=json get pods \
|
||||
| jq -r .items[].metadata.name \
|
||||
> "$PODS"
|
||||
for POD in $(cat "$PODS"); do
|
||||
CONTAINERS="`mktemp`"
|
||||
kubectl -n "$NS" --output=json get pod "$POD" \
|
||||
| jq -r .spec.containers[].name \
|
||||
> "$CONTAINERS"
|
||||
for CONTAINER in $(cat "$CONTAINERS"); do
|
||||
# echo -e "$POD:\t$CONTAINER"
|
||||
if [ "$CONTAINER" = "$2" ]; then
|
||||
if [ "$3" = "-f" ]; then
|
||||
kubectl -n "$NS" logs -f "$POD" -c "$CONTAINER"
|
||||
else
|
||||
kubectl -n "$NS" logs "$POD" -c "$CONTAINER"
|
||||
fi
|
||||
fi
|
||||
done
|
||||
rm "$CONTAINERS"
|
||||
done
|
||||
rm "$PODS"
|
45
jdownie/k3s/ks
Executable file
45
jdownie/k3s/ks
Executable file
@ -0,0 +1,45 @@
|
||||
#!/bin/bash
|
||||
|
||||
function ks {
|
||||
NAMESPACES="`mktemp`"
|
||||
kubectl get namespaces --output=json \
|
||||
| jq -r .items[].metadata.name \
|
||||
| grep -v "^kube-system$" \
|
||||
| grep -v "^kube-public$" \
|
||||
| grep -v "^kube-node-lease$" \
|
||||
> "$NAMESPACES"
|
||||
for NAMESPACE in $(cat "$NAMESPACES"); do
|
||||
DEPLOYMENTS="`mktemp`"
|
||||
DEPLOYMENT_PODS="`mktemp`"
|
||||
kubectl -n "$NAMESPACE" get deployments --output=json \
|
||||
| jq -r .items[].metadata.name \
|
||||
> "$DEPLOYMENTS"
|
||||
for DEPLOYMENT in $(cat "$DEPLOYMENTS"); do
|
||||
PODS="`mktemp`"
|
||||
kubectl -n "$NAMESPACE" --selector "app=$DEPLOYMENT" get pods --output=json \
|
||||
| jq -r .items[].metadata.name \
|
||||
> "$PODS"
|
||||
cat "$PODS" >> "$DEPLOYMENT_PODS"
|
||||
for POD in $(cat "$PODS"); do
|
||||
STATUS="`kubectl -n "$NAMESPACE" --selector="app=$DEPLOYMENT" get pods --output=json | jq -r ".items[] | select(.metadata.name==\\\"$POD\\\") | .status.phase"`"
|
||||
echo -e "$NAMESPACE\t$DEPLOYMENT\t$POD\t$STATUS"
|
||||
done
|
||||
rm "$PODS"
|
||||
done
|
||||
PODS="`mktemp`"
|
||||
kubectl -n "$NAMESPACE" get pods --output=json \
|
||||
| jq -r .items[].metadata.name \
|
||||
| grep -v -f "$DEPLOYMENT_PODS" \
|
||||
> "$PODS"
|
||||
for POD in $(cat "$PODS"); do
|
||||
STATUS="`kubectl -n "$NAMESPACE" get pods --output=json | jq -r ".items[] | select(.metadata.name==\\\"$POD\\\") | .status.phase"`"
|
||||
echo -e "$NAMESPACE\t_\t$POD\t$STATUS"
|
||||
done
|
||||
rm "$PODS"
|
||||
rm "$DEPLOYMENT_PODS"
|
||||
rm "$DEPLOYMENTS"
|
||||
done
|
||||
rm "$NAMESPACES"
|
||||
}
|
||||
|
||||
ks | column -t | sort
|
Loading…
x
Reference in New Issue
Block a user