tests: k8s: Adapt k8s-sandbox-vcpus-allocation.bats to kubernetes v1.29

Kubernetes v1.29 introduced a new `PodReadyToStartContainers` condition
that gets inserted at index 0 in the conditions array. This means that
the expected `PodCompleted` reason can now be either at index 0 with
kubernetes v1.28 and older or at index 1 starting with kubernetes v1.29.
This is fragile at best since the `kubectl wait` doesn't allow to combine
multiple checks. Also, checking the reason is dubious as it doesn't really
tell if the pods have actually completed or not.

Check the pod phase to be `Succeeded` instead, this guarantees that :

> All containers in the Pod have terminated in success, and will not
> be restarted.

Fixes #9178

Signed-off-by: Greg Kurz <groug@kaod.org>
This commit is contained in:
Greg Kurz 2024-02-28 18:08:40 +01:00
parent f89120662d
commit f3442cdef9

View File

@ -22,7 +22,7 @@ setup() {
kubectl create -f "${pod_config_dir}/pod-sandbox-vcpus-allocation.yaml"
# Wait for completion
kubectl wait --for=jsonpath='{.status.conditions[0].reason}'=PodCompleted --timeout=$timeout pod --all
kubectl wait --for=jsonpath='{.status.phase}'=Succeeded --timeout=$timeout pod --all
# Check the pods
for i in {0..2}; do