Skip to content

Commit eb60ae6

Browse files
enable mutation detection in e2e
Signed-off-by: changzhen <[email protected]>
1 parent 3024d33 commit eb60ae6

File tree

4 files changed

+33
-2
lines changed

4 files changed

+33
-2
lines changed

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ jobs:
144144
- name: setup e2e test environment
145145
run: |
146146
export CLUSTER_VERSION=kindest/node:${{ matrix.k8s }}
147+
export KUBE_CACHE_MUTATION_DETECTOR=true
147148
hack/local-up-karmada.sh
148149
- name: run e2e
149150
run: |

artifacts/deploy/karmada-controller-manager.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,8 @@ spec:
3131
valueFrom:
3232
fieldRef:
3333
fieldPath: status.podIP
34+
- name: KUBE_CACHE_MUTATION_DETECTOR
35+
value: "{{KUBE_CACHE_MUTATION_DETECTOR}}"
3436
command:
3537
- /bin/karmada-controller-manager
3638
- --kubeconfig=/etc/karmada/config/karmada.config

hack/deploy-karmada.sh

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ set -o nounset
1919
# This script deploy karmada control plane to any cluster you want. REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
2020
# This script depends on utils in: ${REPO_ROOT}/hack/util.sh
2121

22+
# Do not run the mutation detector by default on the local karmada instance.
23+
KUBE_CACHE_MUTATION_DETECTOR="${KUBE_CACHE_MUTATION_DETECTOR:-false}"
24+
2225
REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
2326
CERT_DIR=${CERT_DIR:-"${HOME}/.karmada"}
2427
mkdir -p "${CERT_DIR}" &>/dev/null || mkdir -p "${CERT_DIR}"
@@ -449,8 +452,13 @@ sed -i'' -e "s/{{ca_crt}}/${karmada_ca}/g" "${TEMP_PATH_BOOTSTRAP}"/bootstrap-to
449452
sed -i'' -e "s|{{apiserver_address}}|${karmada_apiserver_address}|g" "${TEMP_PATH_BOOTSTRAP}"/bootstrap-token-configuration-tmp.yaml
450453
kubectl --context="karmada-apiserver" apply -f "${TEMP_PATH_BOOTSTRAP}"/bootstrap-token-configuration-tmp.yaml
451454

455+
# render the KUBE_CACHE_MUTATION_DETECTOR in the karmada-controller-manager
456+
CONTROLLER_MANAGER_YAML_TMP="${TEMP_PATH_BOOTSTRAP}/karmada-controller-manager.yaml"
457+
cp "${REPO_ROOT}/artifacts/deploy/karmada-controller-manager.yaml" "${CONTROLLER_MANAGER_YAML_TMP}"
458+
sed -i'' -e "s/{{KUBE_CACHE_MUTATION_DETECTOR}}/${KUBE_CACHE_MUTATION_DETECTOR}/g" "${CONTROLLER_MANAGER_YAML_TMP}"
452459
# deploy controller-manager on host cluster
453-
kubectl --context="${HOST_CLUSTER_NAME}" apply -f "${REPO_ROOT}/artifacts/deploy/karmada-controller-manager.yaml"
460+
kubectl --context="${HOST_CLUSTER_NAME}" apply -f "${CONTROLLER_MANAGER_YAML_TMP}"
461+
454462
# deploy scheduler on host cluster
455463
kubectl --context="${HOST_CLUSTER_NAME}" apply -f "${REPO_ROOT}/artifacts/deploy/karmada-scheduler.yaml"
456464
# deploy descheduler on host cluster

hack/run-e2e.sh

Lines changed: 21 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,26 @@ REPO_ROOT=$(dirname "${BASH_SOURCE[0]}")/..
5252
export KUBECONFIG=${KARMADA_APISERVER_KUBECONFIG}
5353
export PULL_BASED_CLUSTERS=${PULL_BASED_CLUSTERS}
5454

55+
TEST_RESULT="PASS"
56+
5557
set +e
5658
ginkgo -v --race --trace --fail-fast -p --randomize-all ./test/e2e/suites/base -- --karmada-context=karmada-apiserver
5759
TESTING_RESULT=$?
5860

61+
if [ $TESTING_RESULT -eq 0 ]; then
62+
echo "E2E run successfully."
63+
echo "Checking if karmada-controller-manager has restarted..."
64+
POD_NAME=$(kubectl --context="${KARMADA_HOST_CLUSTER_NAME}" get pod -n karmada-system -l app=karmada-controller-manager -o=jsonpath='{.items[0].metadata.name}')
65+
RESTART_COUNT=$(kubectl --context="${KARMADA_HOST_CLUSTER_NAME}" get pod -n karmada-system -l app=karmada-controller-manager -o=jsonpath='{.items[0].status.containerStatuses[0].restartCount}')
66+
if [ "$RESTART_COUNT" -gt 0 ]; then
67+
echo "WARNING: karmada-controller-manager has restarted $RESTART_COUNT times."
68+
TEST_RESULT="FAIL"
69+
fi
70+
else
71+
echo "E2E run failed."
72+
TEST_RESULT="FAIL"
73+
fi
74+
5975
# Collect logs
6076
echo "Collect logs to $ARTIFACTS_PATH..."
6177
cp "$KARMADA_APISERVER_KUBECONFIG" "$ARTIFACTS_PATH"
@@ -76,4 +92,8 @@ ls -al "$ARTIFACTS_PATH"
7692
# Post run e2e for delete extra components
7793
"${REPO_ROOT}"/hack/post-run-e2e.sh
7894

79-
exit $TESTING_RESULT
95+
if [ "$TEST_RESULT" == "FAIL" ]; then
96+
exit 1
97+
else
98+
exit 0
99+
fi

0 commit comments

Comments
 (0)