@@ -42,18 +42,26 @@ export IMAGE_TAG_MCAD="${2}"
42
42
export MCAD_IMAGE_PULL_POLICY=" ${3-Always} "
43
43
export IMAGE_MCAD=" ${IMAGE_REPOSITORY_MCAD} :${IMAGE_TAG_MCAD} "
44
44
45
- sudo apt-get update && sudo apt-get install -y apt-transport-https
46
- curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
47
- echo " deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
48
- sudo apt-get update
49
- # Using older version due to older version of kubernetes cluster"
50
- sudo apt-get install -y --allow-unauthenticated kubectl=1.17.0-00
51
-
52
- # Download kind binary (0.6.1)
53
- sudo curl -o /usr/local/bin/kind -L https://github.com/kubernetes-sigs/kind/releases/download/v0.11.0/kind-linux-amd64
54
- sudo chmod +x /usr/local/bin/kind
55
-
56
- # check if kind installed
45
+ function update_test_host {
46
+ sudo apt-get update && sudo apt-get install -y apt-transport-https curl
47
+ curl -s https://packages.cloud.google.com/apt/doc/apt-key.gpg | sudo apt-key add -
48
+ echo " deb https://apt.kubernetes.io/ kubernetes-xenial main" | sudo tee -a /etc/apt/sources.list.d/kubernetes.list
49
+ sudo apt-get update
50
+ # Using older version due to older version of kubernetes cluster"
51
+ sudo apt-get install -y --allow-unauthenticated kubectl=1.17.0-00
52
+
53
+ # Download kind binary (0.6.1)
54
+ sudo curl -o /usr/local/bin/kind -L https://github.com/kubernetes-sigs/kind/releases/download/v0.11.0/kind-linux-amd64
55
+ sudo chmod +x /usr/local/bin/kind
56
+
57
+ # Installing helm3
58
+ curl -fsSL -o ${ROOT_DIR} /get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
59
+ chmod 700 ${ROOT_DIR} /get_helm.sh
60
+ ${ROOT_DIR} /get_helm.sh
61
+ sleep 10
62
+ }
63
+
64
+ # check if pre-requizites are installed.
57
65
function check-prerequisites {
58
66
echo " checking prerequisites"
59
67
which kind > /dev/null 2>&1
@@ -81,12 +89,21 @@ function check-prerequisites {
81
89
echo " No MCAD image tag was provided for: ${IMAGE_REPOSITORY_MCAD} ."
82
90
exit 1
83
91
else
84
- echo -n " end to end test with ${IMAGE_MCAD} ."
92
+ echo " end to end test with ${IMAGE_MCAD} ."
85
93
fi
94
+
95
+ which helm > /dev/null 2>&1
96
+ if [[ $? -ne 0 ]]
97
+ then
98
+ echo " helm not installed, exiting."
99
+ exit 1
100
+ else
101
+ echo -n " found helm, " && helm version --short
102
+ fi
103
+
86
104
}
87
105
88
106
function kind-up-cluster {
89
- check-prerequisites
90
107
echo " Running kind: [kind create cluster ${CLUSTER_CONTEXT} ${KIND_OPT} ]"
91
108
kind create cluster ${CLUSTER_CONTEXT} ${KIND_OPT} --wait ${WAIT_TIME}
92
109
@@ -100,8 +117,25 @@ function kind-up-cluster {
100
117
docker images
101
118
102
119
kind load docker-image ${IMAGE_NGINX} ${CLUSTER_CONTEXT}
120
+ if [[ $? -ne 0 ]]
121
+ then
122
+ echo " Failed to load image ${IMAGE_NGINX} in cluster"
123
+ exit 1
124
+ fi
125
+
103
126
kind load docker-image ${IMAGE_ECHOSERVER} ${CLUSTER_CONTEXT}
127
+ if [[ $? -ne 0 ]]
128
+ then
129
+ echo " Failed to load image ${IMAGE_ECHOSERVER} in cluster"
130
+ exit 1
131
+ fi
132
+
104
133
kind load docker-image ${IMAGE_MCAD} ${CLUSTER_CONTEXT}
134
+ if [[ $? -ne 0 ]]
135
+ then
136
+ echo " Failed to load image ${IMAGE_MCAD} in cluster"
137
+ exit 1
138
+ fi
105
139
}
106
140
107
141
# clean up
@@ -145,10 +179,14 @@ function cleanup {
145
179
echo " ===================================================================================="
146
180
echo " ==========================>>>>> MCAD Controller Logs <<<<<=========================="
147
181
echo " ===================================================================================="
148
- echo " kubectl logs ${mcad_pod} -n kube-system"
149
- kubectl logs ${mcad_pod} -n kube-system
150
-
182
+ local mcad_pod=$( kubectl get pods -n kube-system | grep mcad-controller | awk ' {print $1}' )
183
+ if [[ " $mcad_pod " != " " ]]
184
+ then
185
+ echo " kubectl logs ${mcad_pod} -n kube-system"
186
+ kubectl logs ${mcad_pod} -n kube-system
187
+ fi
151
188
kind delete cluster ${CLUSTER_CONTEXT}
189
+ rm -rf ${ROOT_DIR} /get_helm.sh
152
190
}
153
191
154
192
debug_function () {
@@ -277,26 +315,15 @@ function kube-test-env-up {
277
315
echo " ---"
278
316
cat $HOME /.kube/config
279
317
fi
280
-
281
- # Installing helm3
282
-
283
- curl -fsSL -o get_helm.sh https://raw.githubusercontent.com/helm/helm/main/scripts/get-helm-3
284
- chmod 700 get_helm.sh
285
- ./get_helm.sh
286
- sleep 10
287
-
288
- helm version
289
-
318
+
290
319
echo " Installing Podgroup CRD"
291
320
292
321
kubectl apply -f https://raw.githubusercontent.com/kubernetes-sigs/scheduler-plugins/277b6bdec18f8a9e9ccd1bfeaf4b66495bfc6f92/config/crd/bases/scheduling.sigs.k8s.io_podgroups.yaml
293
322
294
- cd deployment/mcad-controller
295
-
296
323
# start mcad controller
297
324
echo " Starting MCAD Controller..."
298
325
echo " helm install mcad-controller namespace kube-system wait set loglevel=2 set resources.requests.cpu=1000m set resources.requests.memory=1024Mi set resources.limits.cpu=4000m set resources.limits.memory=4096Mi set image.repository=$IMAGE_REPOSITORY_MCAD set image.tag=$IMAGE_TAG_MCAD set image.pullPolicy=$MCAD_IMAGE_PULL_POLICY "
299
- helm upgrade --install mcad-controller . --namespace kube-system --wait --set loglevel=2 --set resources.requests.cpu=1000m --set resources.requests.memory=1024Mi --set resources.limits.cpu=4000m --set resources.limits.memory=4096Mi --set configMap.name=mcad-controller-configmap --set configMap.podCreationTimeout=' "120000"' --set configMap.quotaEnabled=' "false"' --set coscheduler.rbac.apiGroup=scheduling.sigs.k8s.io --set coscheduler.rbac.resource=podgroups --set image.repository=$IMAGE_REPOSITORY_MCAD --set image.tag=$IMAGE_TAG_MCAD --set image.pullPolicy=$MCAD_IMAGE_PULL_POLICY
326
+ helm upgrade --install mcad-controller ${ROOT_DIR} /deployment/mcad-controller --namespace kube-system --wait --set loglevel=2 --set resources.requests.cpu=1000m --set resources.requests.memory=1024Mi --set resources.limits.cpu=4000m --set resources.limits.memory=4096Mi --set configMap.name=mcad-controller-configmap --set configMap.podCreationTimeout=' "120000"' --set configMap.quotaEnabled=' "false"' --set coscheduler.rbac.apiGroup=scheduling.sigs.k8s.io --set coscheduler.rbac.resource=podgroups --set image.repository=$IMAGE_REPOSITORY_MCAD --set image.tag=$IMAGE_TAG_MCAD --set image.pullPolicy=$MCAD_IMAGE_PULL_POLICY
300
327
301
328
sleep 10
302
329
echo " Listing MCAD Controller Helm Chart and Pod YAML..."
@@ -344,11 +371,19 @@ function kube-test-env-up {
344
371
345
372
trap cleanup EXIT
346
373
374
+ # Only run this function if we are running on the test build machinbe,
375
+ # currently ubuntu 16.04 xenial
376
+ if [ " $( lsb_release -c -s 2>&1 | grep xenial) " == " xenial" ]; then
377
+ update_test_host
378
+ fi
379
+
380
+ check-prerequisites
381
+
347
382
kind-up-cluster
348
383
349
384
kube-test-env-up
350
385
351
- cd ${ROOT_DIR}
352
-
353
386
echo " ==========================>>>>> Running E2E tests... <<<<<=========================="
354
387
go test ./test/e2e -v -timeout 55m
388
+ debug_function
389
+ sleep 3600s
0 commit comments