From 5ca0c463ae737565d5de5341f845c06f70db46f2 Mon Sep 17 00:00:00 2001 From: Mike Spreitzer Date: Mon, 15 Dec 2025 17:30:18 -0500 Subject: [PATCH 1/2] Fix namespace conditionality, upgrade test Signed-off-by: Mike Spreitzer --- chart/templates/namespace.yaml | 14 +++++++++-- test/e2e/run.sh | 1 + test/e2e/test-controller-image-update.sh | 31 ++++++++++++------------ 3 files changed, 29 insertions(+), 17 deletions(-) mode change 100644 => 100755 test/e2e/test-controller-image-update.sh diff --git a/chart/templates/namespace.yaml b/chart/templates/namespace.yaml index c7a48622..90261a29 100644 --- a/chart/templates/namespace.yaml +++ b/chart/templates/namespace.yaml @@ -1,6 +1,16 @@ -{{- if and (ne .Release.Namespace "kubeflex-system") (not (lookup "v1" "Namespace" "" "kubeflex-system")) }} +{{ define "NS" -}} apiVersion: v1 kind: Namespace metadata: name: kubeflex-system -{{- end }} +{{ end -}} +{{ if ne .Release.Namespace "kubeflex-system" -}} + {{ with $kfns := (lookup "v1" "Namespace" "" "kubeflex-system") -}} + {{ if eq $.Release.Name + (index $kfns.ObjectMeta.Annotations "meta.helm.sh/release-name") -}} + {{ template "NS" -}} + {{ end -}} + {{ else -}} + {{ template "NS" -}} + {{ end -}} +{{end -}} diff --git a/test/e2e/run.sh b/test/e2e/run.sh index 4be404c2..47252bca 100755 --- a/test/e2e/run.sh +++ b/test/e2e/run.sh @@ -34,6 +34,7 @@ SRC_DIR="$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)" ${SRC_DIR}/cleanup.sh ${SRC_DIR}/setup-kubeflex.sh ${SRC_DIR}/manage-type-k8s.sh +${SRC_DIR}/test-controller-image-update.sh ${SRC_DIR}/manage-type-vcluster.sh ${SRC_DIR}/manage-type-external.sh ${SRC_DIR}/manage-ctx.sh diff --git a/test/e2e/test-controller-image-update.sh b/test/e2e/test-controller-image-update.sh old mode 100644 new mode 100755 index 5af688f9..70f2d894 --- a/test/e2e/test-controller-image-update.sh +++ b/test/e2e/test-controller-image-update.sh @@ -69,8 +69,15 @@ if ! kubectl rollout status deployment/kubeflex-controller-manager -n kubeflex-s exit 1 fi +# Wait for all the old pods to go away +echo "7. Wait for old Pods to go away" +while ! kubectl get pods -n kubeflex-system -l control-plane=controller-manager | wc -l | grep -qw 2; do + echo Waiting for just one kubeflex-controller-manager Pod + sleep 10 +done + # Get the new image -echo "7. Getting new controller manager image..." +echo "8. Getting new controller manager image..." NEW_IMAGE=$(kubectl get deployment kubeflex-controller-manager -n kubeflex-system -o jsonpath='{.spec.template.spec.containers[?(@.name=="manager")].image}') if [ -z "$NEW_IMAGE" ]; then echo "ERROR: Could not get new image from deployment" @@ -79,27 +86,21 @@ fi echo "New image: $NEW_IMAGE" # Get new pod names -echo "8. Getting new pod names..." +echo "9. Getting new pod names..." NEW_PODS=$(kubectl get pods -n kubeflex-system -l control-plane=controller-manager -o jsonpath='{.items[*].metadata.name}' | tr ' ' '\n' | sort | tr '\n' ' ') echo "New pods (sorted): $NEW_PODS" -# Wait for deployment rollout to complete and all pods to be ready -echo "9. Waiting for deployment rollout to complete..." -if ! kubectl rollout status deployment/kubeflex-controller-manager -n kubeflex-system --timeout=300s; then - echo "ERROR: Deployment rollout failed or timed out" - echo "Deployment status:" - kubectl describe deployment kubeflex-controller-manager -n kubeflex-system - exit 1 -fi - # Wait for all pods to be ready echo "10. Waiting for all pods to be ready..." if ! kubectl wait --for=condition=Ready pods -l control-plane=controller-manager -n kubeflex-system --timeout=120s; then echo "ERROR: Not all pods are ready within timeout" - echo "Pod status:" - kubectl get pods -n kubeflex-system -l control-plane=controller-manager - echo "Pod events:" - kubectl describe pods -n kubeflex-system -l control-plane=controller-manager + echo "Pods:" + kubectl get pods -n kubeflex-system -l control-plane=controller-manager --no-headers=true | while read ns name rest; do + echo + kubectl get pod -n $ns $name -o yaml + echo + kubectl events --namespace $ns --for pod/$name + done exit 1 fi From e2bbabb05d52a3797f05a6a528748704128a5209 Mon Sep 17 00:00:00 2001 From: Mike Spreitzer Date: Mon, 15 Dec 2025 19:15:08 -0500 Subject: [PATCH 2/2] Try lowercase, avoid null annotations map Signed-off-by: Mike Spreitzer --- chart/templates/namespace.yaml | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/chart/templates/namespace.yaml b/chart/templates/namespace.yaml index 90261a29..5e66dacb 100644 --- a/chart/templates/namespace.yaml +++ b/chart/templates/namespace.yaml @@ -6,9 +6,11 @@ metadata: {{ end -}} {{ if ne .Release.Namespace "kubeflex-system" -}} {{ with $kfns := (lookup "v1" "Namespace" "" "kubeflex-system") -}} - {{ if eq $.Release.Name - (index $kfns.ObjectMeta.Annotations "meta.helm.sh/release-name") -}} - {{ template "NS" -}} + {{ if $kfns.metadata.annotations -}} + {{ if eq $.Release.Name + (index $kfns.metadata.annotations "meta.helm.sh/release-name") -}} + {{ template "NS" -}} + {{ end -}} {{ end -}} {{ else -}} {{ template "NS" -}}