3
3
# # Kubernetes version mapping, as supported by kind ##
4
4
# See the release notes of the kind version in use
5
5
DEFAULT_K8S_VERSION=1.23
6
- declare -A kind_k8s_versions
6
+ declare -A kind_k8s_versions kind_kind_binaries
7
+ # kind-0.12 hashes
7
8
kind_k8s_versions[1.17]=1.17.17@sha256:e477ee64df5731aa4ef4deabbafc34e8d9a686b49178f726563598344a3898d5
8
9
kind_k8s_versions[1.18]=1.18.20@sha256:e3dca5e16116d11363e31639640042a9b1bd2c90f85717a7fc66be34089a8169
9
10
kind_k8s_versions[1.19]=1.19.16@sha256:81f552397c1e6c1f293f967ecb1344d8857613fb978f963c30e907c32f598467
10
11
kind_k8s_versions[1.20]=1.20.15@sha256:393bb9096c6c4d723bb17bceb0896407d7db581532d11ea2839c80b28e5d8deb
11
12
kind_k8s_versions[1.21]=1.21.10@sha256:84709f09756ba4f863769bdcabe5edafc2ada72d3c8c44d6515fc581b66b029c
12
13
kind_k8s_versions[1.22]=1.22.7@sha256:1dfd72d193bf7da64765fd2f2898f78663b9ba366c2aa74be1fd7498a1873166
13
14
kind_k8s_versions[1.23]=1.23.4@sha256:0e34f0d0fd448aa2f2819cfd74e99fe5793a6e4938b328f657c8e3f81ee0dfb9
15
+ # kind-0.14 hashes
16
+ # kind_k8s_versions[1.18]=1.18.20@sha256:738cdc23ed4be6cc0b7ea277a2ebcc454c8373d7d8fb991a7fcdbd126188e6d7
17
+ # kind_k8s_versions[1.19]=1.19.16@sha256:d9c819e8668de8d5030708e484a9fdff44d95ec4675d136ef0a0a584e587f65c
18
+ # kind_k8s_versions[1.20]=1.20.15@sha256:6f2d011dffe182bad80b85f6c00e8ca9d86b5b8922cdf433d53575c4c5212248
19
+ # kind_k8s_versions[1.21]=1.21.12@sha256:f316b33dd88f8196379f38feb80545ef3ed44d9197dca1bfd48bcb1583210207
20
+ # kind_k8s_versions[1.22]=1.22.9@sha256:8135260b959dfe320206eb36b3aeda9cffcb262f4b44cda6b33f7bb73f453105
21
+ # kind_k8s_versions[1.23]=1.23.6@sha256:b1fa224cc6c7ff32455e0b1fd9cbfd3d3bc87ecaa8fcb06961ed1afb3db0f9ae
22
+ kind_k8s_versions[1.24]=1.24.2@sha256:a3220cefdf4f9be6681c871da35521eaaf59fadd7d509613a9e1881c5f74b587
23
+ kind_kind_binaries[1.17]=' kind-0.12'
24
+ kind_kind_binaries[1.18]=' kind-0.12'
25
+ kind_kind_binaries[1.19]=' kind-0.12'
26
+ kind_kind_binaries[1.20]=' kind-0.12'
27
+ kind_kind_binaries[1.21]=' kind-0.12'
28
+ kind_kind_binaries[1.22]=' kind-0.12'
29
+ kind_kind_binaries[1.23]=' kind-0.12'
30
+ kind_kind_binaries[1.24]=' kind-0.14'
14
31
15
32
# # Process command line flags ##
16
33
@@ -29,6 +46,7 @@ eval set -- "${FLAGS_ARGV}"
29
46
k8s_version=" ${FLAGS_k8s_version} "
30
47
olm_version=" ${FLAGS_olm_version} "
31
48
[[ -z " ${k8s_version} " ]] && k8s_version=" ${DEFAULT_K8S_VERSION} "
49
+ kind=" ${kind_kind_binaries[$k8s_version]} "
32
50
[[ -n " ${kind_k8s_versions[$k8s_version]} " ]] && k8s_version=" ${kind_k8s_versions[$k8s_version]} "
33
51
[[ " ${FLAGS_olm} " = " ${FLAGS_TRUE} " ]] && olm=true || olm=false
34
52
[[ " ${FLAGS_prometheus} " = " ${FLAGS_TRUE} " ]] && prometheus=true || prometheus=false
@@ -37,13 +55,16 @@ olm_version="${FLAGS_olm_version}"
37
55
settings=" ${FLAGS_settings} "
38
56
timeout=" ${FLAGS_timeout} "
39
57
40
- echo " Running with: k8s_version=${k8s_version} , olm_version=${olm_version} , olm=${olm} , globalnet=${globalnet} , prometheus=${prometheus} , registry_inmemory=${registry_inmemory} , settings=${settings} , timeout=${timeout} "
58
+ echo " Running with: kind= ${kind} , k8s_version=${k8s_version} , olm_version=${olm_version} , olm=${olm} , globalnet=${globalnet} , prometheus=${prometheus} , registry_inmemory=${registry_inmemory} , settings=${settings} , timeout=${timeout} "
41
59
42
60
set -em
43
61
44
62
source " ${SCRIPTS_DIR} /lib/debug_functions"
45
63
source " ${SCRIPTS_DIR} /lib/utils"
46
64
65
+ # Link the kind binary so other commands can find the appropriate version
66
+ ln -s " ${kind} " /go/bin/kind
67
+
47
68
# ## Functions ###
48
69
49
70
function generate_cluster_yaml() {
@@ -118,9 +139,9 @@ function create_kind_cluster() {
118
139
export KUBECONFIG=${KUBECONFIGS_DIR} /kind-config-${cluster}
119
140
rm -f " $KUBECONFIG "
120
141
121
- if kind get clusters | grep -q " ^${cluster} $" ; then
142
+ if ${ kind} get clusters | grep -q " ^${cluster} $" ; then
122
143
echo " KIND cluster already exists, skipping its creation..."
123
- kind export kubeconfig --name=" ${cluster} "
144
+ ${ kind} export kubeconfig --name=" ${cluster} "
124
145
kind_fixup_config
125
146
return
126
147
fi
@@ -137,16 +158,16 @@ function create_kind_cluster() {
137
158
image_flag=" --image=kindest/node:v${k8s_version} "
138
159
fi
139
160
140
- kind version
161
+ ${ kind} version
141
162
cat " ${RESOURCES_DIR} /${cluster} -config.yaml"
142
- kind create cluster ${image_flag: +" $image_flag " } --name=" ${cluster} " --config=" ${RESOURCES_DIR} /${cluster} -config.yaml"
163
+ ${ kind} create cluster ${image_flag: +" $image_flag " } --name=" ${cluster} " --config=" ${RESOURCES_DIR} /${cluster} -config.yaml"
143
164
kind_fixup_config
144
165
145
166
( deploy_cluster_capabilities; ) &
146
167
if ! wait $! ; then
147
168
echo " Failed to deploy cluster capabilities, removing the cluster"
148
169
kubectl cluster-info dump 1>&2
149
- kind delete cluster --name=" ${cluster} "
170
+ ${ kind} delete cluster --name=" ${cluster} "
150
171
return 1
151
172
fi
152
173
}
@@ -249,14 +270,14 @@ function deploy_kind_ovn(){
249
270
( ./ovn-kubernetes/contrib/kind.sh -ov " $OVN_IMAGE " -cn " ${KIND_CLUSTER_NAME} " -ric -lr -dd " ${KIND_CLUSTER_NAME} .local" ; ) &
250
271
if ! wait $! ; then
251
272
echo " Failed to install kind with OVN"
252
- kind delete cluster --name=" ${cluster} "
273
+ ${ kind} delete cluster --name=" ${cluster} "
253
274
return 1
254
275
fi
255
276
256
277
( deploy_cluster_capabilities; ) &
257
278
if ! wait $! ; then
258
279
echo " Failed to deploy cluster capabilities, removing the cluster"
259
- kind delete cluster --name=" ${cluster} "
280
+ ${ kind} delete cluster --name=" ${cluster} "
260
281
return 1
261
282
fi
262
283
}
0 commit comments