Skip to content

Commit 2a56b08

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

File tree

4 files changed

+32
-2
lines changed

4 files changed

+32
-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: 20 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,25 @@ 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 passed successfully."
63+
echo "Checking if karmada-controller-manager has restarted..."
64+
POD_NAME=$(kubectl get pod -n karmada-system -l app=karmada-controller-manager -o=jsonpath='{.items[0].metadata.name}')
65+
RESTART_COUNT=$(kubectl 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+
TEST_RESULT="FAIL"
72+
fi
73+
5974
# Collect logs
6075
echo "Collect logs to $ARTIFACTS_PATH..."
6176
cp "$KARMADA_APISERVER_KUBECONFIG" "$ARTIFACTS_PATH"
@@ -76,4 +91,8 @@ ls -al "$ARTIFACTS_PATH"
7691
# Post run e2e for delete extra components
7792
"${REPO_ROOT}"/hack/post-run-e2e.sh
7893

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

0 commit comments

Comments
 (0)