@@ -20,9 +20,9 @@ set -o nounset
20
20
set -o pipefail
21
21
# set -o xtrace
22
22
23
- UTIL_SCRIPT=$( readlink -m " ${BASH_SOURCE} " )
24
- JUJU_PATH=$( dirname ${UTIL_SCRIPT} )
25
- KUBE_ROOT=$( readlink -m ${JUJU_PATH} /../../)
23
+ UTIL_SCRIPT=$( readlink -m " ${BASH_SOURCE[0] } " )
24
+ JUJU_PATH=$( dirname " ${UTIL_SCRIPT} " )
25
+ KUBE_ROOT=$( readlink -m " ${JUJU_PATH} /../../" )
26
26
# Use the config file specified in $KUBE_CONFIG_FILE, or config-default.sh.
27
27
source " ${JUJU_PATH} /${KUBE_CONFIG_FILE-config-default.sh} "
28
28
# This attempts installation of Juju - This really needs to support multiple
@@ -38,14 +38,14 @@ function build-local() {
38
38
# This used to build the kubernetes project. Now it rebuilds the charm(s)
39
39
# living in `cluster/juju/layers`
40
40
41
- charm build ${JUJU_PATH} /layers/kubernetes -o $JUJU_REPOSITORY -r --no-local-layers
41
+ charm build " ${JUJU_PATH} /layers/kubernetes" -o " $JUJU_REPOSITORY " -r --no-local-layers
42
42
}
43
43
44
44
function detect-master() {
45
45
local kubestatus
46
46
47
47
# Capturing a newline, and my awk-fu was weak - pipe through tr -d
48
- kubestatus=$( juju status --format=oneline kubernetes | grep ${KUBE_MASTER_NAME} | awk ' {print $3}' | tr -d " \n" )
48
+ kubestatus=$( juju status --format=oneline kubernetes | grep " ${KUBE_MASTER_NAME} " | awk ' {print $3}' | tr -d " \n" )
49
49
export KUBE_MASTER_IP=${kubestatus}
50
50
export KUBE_SERVER=https://${KUBE_MASTER_IP} :6433
51
51
@@ -61,7 +61,10 @@ function detect-nodes() {
61
61
# ]
62
62
63
63
# Strip out the IP addresses
64
- export KUBE_NODE_IP_ADDRESSES=($( ${JUJU_PATH} /return-node-ips.py " ${ipoutput} " ) )
64
+ while IFS=$' \n ' read -r ip;
65
+ do KUBE_NODE_IP_ADDRESSES+=(" $ip " );
66
+ done < <( " ${JUJU_PATH} /return-node-ips.py" " ${ipoutput} " )
67
+ export KUBE_NODE_IP_ADDRESSES
65
68
# echo "Kubernetes minions: " ${KUBE_NODE_IP_ADDRESSES[@]} 1>&2
66
69
export NUM_NODES=${# KUBE_NODE_IP_ADDRESSES[@]}
67
70
}
@@ -70,11 +73,11 @@ function kube-up() {
70
73
build-local
71
74
72
75
# Replace the charm directory in the bundle.
73
- sed " s|__CHARM_DIR__|${JUJU_REPOSITORY} |" < ${KUBE_BUNDLE_PATH} .base > ${KUBE_BUNDLE_PATH}
76
+ sed " s|__CHARM_DIR__|${JUJU_REPOSITORY} |" < " ${KUBE_BUNDLE_PATH} .base" > " ${KUBE_BUNDLE_PATH} "
74
77
75
78
# The juju-deployer command will deploy the bundle and can be run
76
79
# multiple times to continue deploying the parts that fail.
77
- juju deploy ${KUBE_BUNDLE_PATH}
80
+ juju deploy " ${KUBE_BUNDLE_PATH} "
78
81
79
82
source " ${KUBE_ROOT} /cluster/common.sh"
80
83
@@ -86,9 +89,9 @@ function kube-up() {
86
89
# Copy kubectl, the cert and key to this machine from master.
87
90
(
88
91
umask 077
89
- mkdir -p ${KUBECTL_DIR}
90
- juju scp ${KUBE_MASTER_NAME} :kubectl_package.tar.gz ${KUBECTL_DIR}
91
- tar xfz ${KUBECTL_DIR} /kubectl_package.tar.gz -C ${KUBECTL_DIR}
92
+ mkdir -p " ${KUBECTL_DIR} "
93
+ juju scp " ${KUBE_MASTER_NAME} :kubectl_package.tar.gz" " ${KUBECTL_DIR} "
94
+ tar xfz " ${KUBECTL_DIR} /kubectl_package.tar.gz" -C " ${KUBECTL_DIR} "
92
95
)
93
96
# Export the location of the kubectl configuration file.
94
97
export KUBECONFIG=" ${KUBECTL_DIR} /kubeconfig"
@@ -98,11 +101,11 @@ function kube-down() {
98
101
local force=" ${1-} "
99
102
local jujuenv
100
103
jujuenv=$( juju switch)
101
- juju destroy-model ${jujuenv} ${force} || true
104
+ juju destroy-model " ${jujuenv} " " ${force} " || true
102
105
# Clean up the generated charm files.
103
- rm -rf ${KUBE_ROOT} /cluster/juju/charms
106
+ rm -rf " ${KUBE_ROOT} /cluster/juju/charms"
104
107
# Clean up the kubectl binary and config file.
105
- rm -rf ${KUBECTL_DIR}
108
+ rm -rf " ${KUBECTL_DIR} "
106
109
}
107
110
108
111
function prepare-e2e() {
@@ -121,7 +124,7 @@ function sleep-status() {
121
124
while [[ $i < $maxtime && -z $jujustatus ]]; do
122
125
sleep 15
123
126
i=$(( i + 15 ))
124
- jujustatus=$( ${JUJU_PATH} /identify-leaders.py)
127
+ jujustatus=$( " ${JUJU_PATH} /identify-leaders.py" )
125
128
export KUBE_MASTER_NAME=${jujustatus}
126
129
done
127
130
0 commit comments