fix(e2e): keep ServiceAccount across deploy cycles to avoid token fetch race #65
@@ -60,15 +60,20 @@ kubectl create configmap headlamp-intel-gpu-plugin \
|
|||||||
|
|
||||||
# --- Tear down any existing E2E deployment for a clean start ---
|
# --- Tear down any existing E2E deployment for a clean start ---
|
||||||
# Deleting the Deployment forces a fresh pod (new ReplicaSet) regardless of
|
# Deleting the Deployment forces a fresh pod (new ReplicaSet) regardless of
|
||||||
# whether the pod spec changed. The ServiceAccount is also deleted for a clean
|
# whether the pod spec changed. We do NOT delete the ServiceAccount — keeping
|
||||||
# token state. The Service is NOT deleted — leaving it in place avoids an
|
# it avoids a token-race condition where kubelet tries to mount a volume using a
|
||||||
|
# token that has been deleted but the new one isn't ready yet.
|
||||||
|
# The Service is NOT deleted — leaving it in place avoids an
|
||||||
# Endpoints UID race (FailedToUpdateEndpoint) that causes DNS resolution
|
# Endpoints UID race (FailedToUpdateEndpoint) that causes DNS resolution
|
||||||
# failures. kubectl apply below upserts the Service in-place, and the new
|
# failures. kubectl apply below upserts the Service in-place, and the new
|
||||||
# pod's IP is added to the existing Endpoints automatically.
|
# pod's IP is added to the existing Endpoints automatically.
|
||||||
echo ""
|
echo ""
|
||||||
echo "Removing any existing E2E deployment (clean-start)..."
|
echo "Removing any existing E2E deployment (clean-start)..."
|
||||||
kubectl delete deployment "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
|
kubectl delete deployment "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
|
||||||
kubectl delete serviceaccount "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
|
# ServiceAccount is kept — create it idempotently so the first run works too
|
||||||
|
kubectl create serviceaccount "${E2E_RELEASE}" \
|
||||||
|
-n "$E2E_NAMESPACE" \
|
||||||
|
--dry-run=client -o yaml | kubectl apply -f -
|
||||||
|
|
||||||
# --- Deploy Headlamp via kubectl apply ---
|
# --- Deploy Headlamp via kubectl apply ---
|
||||||
echo ""
|
echo ""
|
||||||
|
|||||||
Reference in New Issue
Block a user