diff options
Diffstat (limited to 'krash.in')
-rw-r--r-- | krash.in | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/krash.in b/krash.in new file mode 100644 index 0000000..aff12ec --- /dev/null +++ b/krash.in @@ -0,0 +1,39 @@ +#!@ENV_ABSOLUTE_PATH@ bash +set -eufo pipefail + +command -v kubectl >/dev/null 2>&1 || { echo 'Please install kubectl'; exit 1; } + +USAGE="Usage: $(basename "$0") <node-name> [-r|--reboot]" +[ $# -eq 0 ] && { echo "$USAGE"; exit 1; } +NODE_REBOOT=0 +NODE_NAME=${1:-}; shift + +if [[ $# -gt 0 ]]; then + if [[ "$1" =~ ^-r|--reboot$ ]]; then + NODE_REBOOT=1; shift + else + echo "$USAGE"; exit 1 + fi +fi + +kubectl apply -f - <<-EOF > /dev/null +--- +apiVersion: v1 +kind: Pod +metadata: + name: krash-${RANDOM} +spec: + containers: + - name: krash + image: alpine:latest + securityContext: + privileged: true + command: + - /bin/sh + - -c + - | + sysctl -w kernel.panic=${NODE_REBOOT} + echo 'c' > /proc/sysrq-trigger + priorityClassName: system-node-critical + nodeName: ${NODE_NAME} +EOF |