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