@@ -38,6 +38,9 @@ E2E_TEST_CMD="${TEMP_DIR}/e2e-${PLATFORM} ${COMMON_TEST_ARGS}"
38
38
# given control plane scope.
39
39
IN_MEMORY_E2E_TEST_CMD=" go test -v -timeout 900s -race ./test/e2e -args ${COMMON_TEST_ARGS} -in-memory-controllers=true -limited-scope-in-memory-controllers=false"
40
40
41
+ KUBEFED_UPGRADE_TEST_NS=" upgrade-test"
42
+ KUBEFED_UPGRADE_TEST_VERSION=" v0.5.0"
43
+
41
44
function build-binaries() {
42
45
${MAKE_CMD} hyperfed
43
46
${MAKE_CMD} controller
@@ -62,6 +65,28 @@ function run-e2e-tests() {
62
65
${E2E_TEST_CMD}
63
66
}
64
67
68
+ function run-e2e-upgrade-test() {
69
+ check-command-installed kubectl
70
+ check-command-installed helm
71
+
72
+ HOST_CLUSTER=" $( kubectl config current-context) "
73
+
74
+ echo " Adding a repo to install an older kubefed version"
75
+ helm repo add kubefed-charts https://raw.githubusercontent.com/kubernetes-sigs/kubefed/master/charts
76
+
77
+ echo " Installing an older kubefed version ${KUBEFED_UPGRADE_TEST_VERSION} "
78
+ helm install kubefed kubefed-charts/kubefed --namespace ${KUBEFED_UPGRADE_TEST_NS} --version=${KUBEFED_UPGRADE_TEST_VERSION} --create-namespace
79
+
80
+ deployment-image-as-expected " ${KUBEFED_UPGRADE_TEST_NS} " kubefed-admission-webhook admission-webhook " quay.io/kubernetes-multicluster/kubefed:${KUBEFED_UPGRADE_TEST_VERSION} "
81
+ deployment-image-as-expected " ${KUBEFED_UPGRADE_TEST_NS} " kubefed-controller-manager controller-manager " quay.io/kubernetes-multicluster/kubefed:${KUBEFED_UPGRADE_TEST_VERSION} "
82
+
83
+ echo " Upgrading kubefed to current version"
84
+ KUBEFED_NAMESPACE=$KUBEFED_UPGRADE_TEST_NS KIND_CLUSTER_NAME=${HOST_CLUSTER} KIND_LOAD_IMAGE=y ./scripts/deploy-kubefed.sh local/kubefed:e2e " ${join_cluster_list[@]-} "
85
+
86
+ deployment-image-as-expected " ${KUBEFED_UPGRADE_TEST_NS} " kubefed-admission-webhook admission-webhook " local/kubefed:e2e"
87
+ deployment-image-as-expected " ${KUBEFED_UPGRADE_TEST_NS} " kubefed-controller-manager controller-manager " local/kubefed:e2e"
88
+ }
89
+
65
90
function run-e2e-tests-with-in-memory-controllers() {
66
91
${IN_MEMORY_E2E_TEST_CMD}
67
92
}
@@ -138,7 +163,7 @@ echo "Downloading e2e test dependencies"
138
163
139
164
KIND_TAG=" v1.19.4@sha256:796d09e217d93bed01ecf8502633e48fd806fe42f9d02fdd468b81cd4e3bd40b" ./scripts/create-clusters.sh
140
165
141
- declare -a join_cluster_list=()
166
+ declare -a join_cluster_list=()
142
167
if [[ -z " ${JOIN_CLUSTERS} " ]]; then
143
168
for i in $( seq 2 " ${NUM_CLUSTERS} " ) ; do
144
169
join_cluster_list+=(" cluster${i} " )
@@ -178,3 +203,9 @@ run-namespaced-e2e-tests
178
203
179
204
echo " Deleting namespace-scoped kubefed"
180
205
KUBEFED_NAMESPACE=foo NAMESPACED=y DELETE_CLUSTER_RESOURCE=y ./scripts/delete-kubefed.sh
206
+
207
+ echo " Running e2e upgrade test"
208
+ run-e2e-upgrade-test
209
+
210
+ echo " Deleting kubefed"
211
+ KUBEFED_NAMESPACE=${KUBEFED_UPGRADE_TEST_NS} DELETE_CLUSTER_RESOURCE=y ./scripts/delete-kubefed.sh
0 commit comments