fix(e2e): remove Service delete to fix Endpoints UID race causing ERR_NAME_NOT_RESOLVED

Deleting the Service between test runs causes a FailedToUpdateEndpoint
error (UID precondition failure) when the old Endpoints are garbage
collected and the new Service tries to create fresh Endpoints. This
leaves the service unreachable by DNS (ERR_NAME_NOT_RESOLVED).

Fix: stop deleting the Service. kubectl apply upserts it in-place,
so the existing Endpoints object persists. The new pod IP is added
automatically when the fresh Deployment pod becomes ready.

Closes PRI-609

Co-Authored-By: Paperclip <noreply@paperclip.ing>
This commit is contained in:
2026-05-05 03:10:30 +00:00
committed by Hugh Hackman [agent]
parent 85c839bc19
commit e80673dc1c
+6 -1
View File
@@ -59,10 +59,15 @@ kubectl create configmap headlamp-intel-gpu-plugin \
--from-file=package.json="$REPO_ROOT/package.json"
# --- Tear down any existing E2E deployment for a clean start ---
# Deleting the Deployment forces a fresh pod (new ReplicaSet) regardless of
# whether the pod spec changed. The ServiceAccount is also deleted for a clean
# token state. The Service is NOT deleted — leaving it in place avoids an
# Endpoints UID race (FailedToUpdateEndpoint) that causes DNS resolution
# failures. kubectl apply below upserts the Service in-place, and the new
# pod's IP is added to the existing Endpoints automatically.
echo ""
echo "Removing any existing E2E deployment (clean-start)..."
kubectl delete deployment "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
kubectl delete service "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
kubectl delete serviceaccount "${E2E_RELEASE}" -n "$E2E_NAMESPACE" --ignore-not-found --wait
# --- Deploy Headlamp via kubectl apply ---