1
+ #! /bin/bash
2
+
3
+ PROGNAME=$( basename $0 )
4
+ SUBCOMMAND=$1
5
+
6
+ RED=' \033[31m'
7
+ GREEN=' \033[32m'
8
+ YELLOW=' \033[33m'
9
+ WHITE=' \033[37m'
10
+ NC=' \033[0m'
11
+
12
+ KUBECTL=${KUBECTL:= " kubectl" }
13
+
14
+ sub_run (){
15
+ $KUBECTL apply -f " https://cloud.weave.works/k8s/net?k8s-version=$( $KUBECTL version | base64 | tr -d ' \n' ) "
16
+ $KUBECTL create -f manifests/multusinstall.yml
17
+ sub_wait_system
18
+
19
+ $KUBECTL create -f manifests/nginx-controller.yaml > /dev/null
20
+ $KUBECTL create -f manifests/syringe-k8s.yaml > /dev/null
21
+ $KUBECTL create -f manifests/antidote-web.yaml > /dev/null
22
+ sub_wait_platform
23
+ }
24
+ print_progress () {
25
+ percentage=$1
26
+ chars=$( echo " 40 * $percentage " /1| bc)
27
+ v=$( printf " %-${chars} s" " #" )
28
+ s=$( printf " %-$(( 40 - chars)) s" )
29
+ echo " ${v// /# } " " ${s// / -} "
30
+ }
31
+
32
+ sub_wait_system (){
33
+ running_system_pods=0
34
+ total_system_pods=$( $KUBECTL get pods -n=kube-system | tail -n +2 | wc -l)
35
+ while [ $running_system_pods -lt $total_system_pods ]
36
+ do
37
+ running_system_pods=$( $KUBECTL get pods -n=kube-system | grep Running | wc -l)
38
+ percentage=" $( echo " $running_system_pods /$total_system_pods " | bc -l ) "
39
+ echo -ne $( print_progress $percentage ) " ${YELLOW} Installing additional infrastructure components...${NC} \r"
40
+ sleep 5
41
+ done
42
+
43
+ # Clear line and print finished progress
44
+ echo -ne " $pc %\033[0K\r"
45
+ echo -ne $( print_progress 1) " ${GREEN} Done.${NC} \n"
46
+ }
47
+
48
+ sub_wait_platform (){
49
+ running_platform_pods=0
50
+ total_platform_pods=$( $KUBECTL get pods | tail -n +2 | wc -l)
51
+ while [ $running_platform_pods -lt $total_platform_pods ]
52
+ do
53
+ running_platform_pods=$( $KUBECTL get pods | grep Running | wc -l)
54
+ percentage=" $( echo " $running_platform_pods /$total_platform_pods " | bc -l ) "
55
+ echo -ne $( print_progress $percentage ) " ${YELLOW} Starting the antidote platform...${NC} \r"
56
+ sleep 5
57
+ done
58
+
59
+ # Clear line and print finished progress
60
+ echo -ne " $pc %\033[0K\r"
61
+ echo -ne $( print_progress 1) " ${GREEN} Done.${NC} \n"
62
+ }
63
+
64
+ sub_help (){
65
+ echo " Usage: $PROGNAME <subcommand> [options]"
66
+ echo " Subcommands:"
67
+ echo " run Start the Antidote containers"
68
+ echo " wait_system Reload Antidote components"
69
+ echo " wait_platform Stop local instance of Antidote"
70
+ echo " resume Resume stopped Antidote instance"
71
+ echo " "
72
+ echo " options:"
73
+ echo " -h show brief help"
74
+ echo " "
75
+ echo " For help with each subcommand run:"
76
+ echo " $PROGNAME <subcommand> -h|--help"
77
+ echo " "
78
+ }
79
+
80
+ while getopts " h" OPTION
81
+ do
82
+ case $OPTION in
83
+ h)
84
+ sub_help
85
+ exit
86
+ ;;
87
+ \? )
88
+ sub_help
89
+ exit
90
+ ;;
91
+ esac
92
+ done
93
+
94
+ # Direct to appropriate subcommand
95
+ subcommand=$1
96
+ case $subcommand in
97
+ " " )
98
+ sub_help
99
+ ;;
100
+ * )
101
+ shift
102
+ sub_${subcommand} $@
103
+ if [ $? = 127 ]; then
104
+ echo " Error: '$subcommand ' is not a known subcommand." >&2
105
+ echo " Run '$PROGNAME --help' for a list of known subcommands." >&2
106
+ exit 1
107
+ fi
108
+ ;;
109
+ esac
110
+
111
+ exit 0
0 commit comments