diff options
author | Patrick Spek <p.spek@tyil.nl> | 2022-02-22 14:34:34 +0100 |
---|---|---|
committer | Patrick Spek <p.spek@tyil.nl> | 2022-02-22 14:34:34 +0100 |
commit | 2930e2ea92679e93d8f29163db559b03248c31b2 (patch) | |
tree | c2e5370f77005c5c9f0394eb1425c413b5104b9a /.local | |
parent | 5192303cbd0b2804933e78aad12048d0820695f5 (diff) |
Add kubectl-shell
Diffstat (limited to '.local')
-rwxr-xr-x | .local/bin/kubectl-shell | 52 |
1 files changed, 52 insertions, 0 deletions
diff --git a/.local/bin/kubectl-shell b/.local/bin/kubectl-shell new file mode 100755 index 0000000..2e1c2c8 --- /dev/null +++ b/.local/bin/kubectl-shell @@ -0,0 +1,52 @@ +#!/bin/sh + +# This program is free software: you can redistribute it and/or modify it under +# the terms of the GNU Affero General Public License as published by the Free +# Software Foundation, either version 3 of the License, or (at your option) any +# later version. +# +# This program is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS +# FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more +# details. + +main() +{ + # Handle opts + while getopts ":h" opt + do + case "$opt" in + h) usage && exit 0 ;; + *) + printf "Invalid option passed: %s\n" "$OPTARG" >&2 + ;; + esac + done + + shift $(( OPTIND - 1 )) + + kubectl run "shell-$(uuidgen)" \ + --image alpine:latest \ + --restart=Never \ + --rm \ + --stdin \ + --tty \ + "$@" \ + -- /bin/sh +} + +usage() +{ + cat <<EOF +Usage: + ${0##*/} -h + +Shorthand to spawn a single pod with an interactive shell into your Kubernetes +cluster. + +Options: + -h Show this help text and exit. +EOF +} + +main "$@" |