#!/bin/bash

BASE_NAME="pod"
START_SUFFIX=1
NODE_NAME="worker0"

if [ -z "$1" ]; then
  echo "Warning: Missing required parameter."
  echo "Usage:   $0 <kubernetes-node-name>"
  echo "Example: $0 $NODE_NAME"
  exit
else
  NODE_NAME="$1"
fi

# Find the latest pod name and extract the highest suffix number
LATEST_SUFFIX=$(kubectl get pods --no-headers -o custom-columns=":metadata.name" | grep "^${BASE_NAME}[0-9]*$" | sed -E "s/${BASE_NAME}//" | sort -n | tail -n 1)

if [ -z "$LATEST_SUFFIX" ]; then
  NEXT_SUFFIX=$START_SUFFIX
else
  NEXT_SUFFIX=$((LATEST_SUFFIX + 1))
fi

NEW_POD_NAME="${BASE_NAME}${NEXT_SUFFIX}"

cat <<EOF | kubectl apply -f -
apiVersion: v1
kind: Pod
metadata:
  name: ${NEW_POD_NAME}
spec:
  restartPolicy: Never
  nodeName: ${NODE_NAME}
  containers:
  - name: netshoot
    image: nicolaka/netshoot
    command:
      - "sh"
      - "-c"
      - "sleep 10000"
    imagePullPolicy: IfNotPresent
    resources:
      requests:
        memory: "50Mi"
        cpu: "250m"
      limits:
        memory: "64Mi"
        cpu: "500m"
EOF

kubectl get pods -o wide
echo ""
echo "To access pod ${NEW_POD_NAME}, run:"
echo "  kubectl exec -it ${NEW_POD_NAME} -- sh"
