add fancy debug pod script

This commit is contained in:
Tobias Brunner 2023-03-31 23:06:49 +02:00
parent 7e40d9f745
commit 2238d43564
Signed by: tobru
SSH Key Fingerprint: SHA256:kywVhvCA+MIxL6eBgoQa+BfC/ROJqcfD2bpy1PR6Ebk
1 changed files with 65 additions and 0 deletions

65
hack/start-debug-pod.sh Executable file
View File

@ -0,0 +1,65 @@
#!/bin/bash
# Usage: start-debug-pod.sh <pvc-name> <namespace>
# Validate input parameters
if [ $# -ne 2 ]; then
echo "Usage: start-debug-pod.sh <pvc-name> <namespace>"
exit 1
fi
PVC_NAME=$1
NAMESPACE=$2
if [ -z "$PVC_NAME" ] || [ -z "$NAMESPACE" ]; then
echo "PVC name and namespace cannot be empty"
exit 1
fi
# Check if namespace exists
if ! kubectl get namespace "$NAMESPACE" > /dev/null 2>&1; then
echo "Namespace $NAMESPACE does not exist"
exit 1
fi
# Check if PVC exists in the specified namespace
if ! kubectl get pvc "$PVC_NAME" -n "$NAMESPACE" > /dev/null 2>&1; then
echo "PVC $PVC_NAME does not exist in namespace $NAMESPACE"
exit 1
fi
# Define the name of the debug pod
DEBUG_POD_NAME="debug-pod-$PVC_NAME"
# Create the YAML file for the debug pod
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
name: $DEBUG_POD_NAME
namespace: $NAMESPACE
spec:
containers:
- name: debug-container
image: busybox
imagePullPolicy: IfNotPresent
command: ["/bin/sleep", "3600"]
volumeMounts:
- name: your-pvc
mountPath: /mnt/data
terminationMessagePath: /dev/termination-log
terminationMessagePolicy: File
volumes:
- name: your-pvc
persistentVolumeClaim:
claimName: $PVC_NAME
terminationGracePeriodSeconds: 30
EOF
# Wait for the pod to be ready
kubectl wait --for=condition=Ready pod/$DEBUG_POD_NAME -n $NAMESPACE
# Open a shell inside the debug pod
kubectl exec -it $DEBUG_POD_NAME -n $NAMESPACE -- /bin/sh
trap 'kubectl delete pod $DEBUG_POD_NAME -n $NAMESPACE' EXIT