/
select-cluster.sh
executable file
·47 lines (35 loc) · 1.29 KB
/
select-cluster.sh
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
#!/bin/bash
set -e
locked=1
export KUBECONFIG=gke-kubeconfig
while [ $locked -ne 0 ]; do
rm gke-kubeconfig || true
echo "selecting random cluster"
cluster=$(gcloud container clusters list --zone $GKE_ZONE | grep cilium-ci | sort -R | head -n 1 | awk '{print $1}')
echo "getting kubeconfig for $cluster"
gcloud container clusters get-credentials --zone $GKE_ZONE $cluster
echo "aquiring cluster lock"
set +e
kubectl create -f lock.yaml
kubectl annotate deployment lock lock=1
locked=$?
echo $locked
set -e
done
echo "lock acquired on cluster $cluster"
# cluster-name is used in get-cluster-version.sh, which runs after this in CI.
echo $cluster > cluster-name
echo "creating cilium ns"
kubectl create ns cilium || true
echo "scaling $cluster to 2"
yes | gcloud container clusters resize $cluster --node-pool default-pool --num-nodes 2 --zone $GKE_ZONE
echo "labeling nodes"
index=1
for node in $(kubectl get nodes --template '{{range .items}}{{.metadata.name}}{{"\n"}}{{end}}');
do
kubectl label node $node cilium.io/ci-node=k8s$index
index=$((index+1))
done
echo "adding node registry as trusted"
helm template registry-adder ../k8sT/manifests/registry-adder-gke --set IP="$(../print-node-ip.sh)" > registry-adder.yaml
kubectl apply -f registry-adder.yaml