-
Notifications
You must be signed in to change notification settings - Fork 0
/
kubectl-pick-job
executable file
·56 lines (48 loc) · 1.05 KB
/
kubectl-pick-job
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/bash
VERSION="v1.0.0"
NS_OPT=""
function cj_list () {
mapfile -t cronjobs <<< `kubectl get cronjob $NS_OPT | grep -v '^NAME' | awk '{print $1}'`
if [ -z "${cronjobs[0]}" ]; then
echo "Exit"
exit 1
fi
echo ""
PS3="Select Job (or 'q' to quit)> "
select CRONJOB in "${cronjobs[@]}"
do
if [ "${REPLY}" = "q" ]; then
exit 0
elif [ -n "$CRONJOB" ]; then
break
fi
done
}
function show_usage () {
echo ""
echo "kubectl pick job version $VERSION"
echo " Usage: kubectl pick job [options] [cronjob name>]"
echo " Options:"
echo " -n <namespace> Specify namespace"
echo " -h Show this usage"
echo ""
exit 1
}
set -eu
while getopts hn: OPT
do
if [[ "$OPT" = - ]]; then
OPT="$OPTARG"
fi
case $OPT in
"h" ) show_usage ;;
"n" ) NS_OPT="-n $OPTARG" ;;
esac
done
shift $(expr $OPTIND - 1)
if [ $# -lt 1 ]; then
cj_list
else
CRONJOB=$1
fi
kubectl create job $CRONJOB-$(date +%s) $NS_OPT --from cronjob/$CRONJOB