Merge pull request #11141 from stevenhorsman/k8s-cpu-ns-exec-retry

tests: k8s: Retry output of kubectl exec in k8s-cpu-ns
This commit is contained in:
Steve Horsman 2025-05-07 17:11:25 +01:00 committed by GitHub
commit e3e0007bf7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 30 additions and 7 deletions

View File

@ -66,8 +66,18 @@ setup() {
# Check the total of cpus
for _ in $(seq 1 "$retries"); do
# Get number of cpus
# Retry "kubectl exec" several times in case it unexpectedly returns an empty output string,
# in an attempt to work around issues similar to https://github.com/kubernetes/kubernetes/issues/124571.
for _ in {1..10}; do
total_cpus_container=$(kubectl exec pod/"$pod_name" -c "$container_name" \
-- "${exec_num_cpus_cmd[@]}")
if [[ -n "${total_cpus_container}" ]]; then
break
fi
warn "Empty output from kubectl exec" >&2
sleep 1
done
# Verify number of cpus
[ "$total_cpus_container" -le "$total_cpus" ]
[ "$total_cpus_container" -eq "$total_cpus" ] && break
@ -76,16 +86,29 @@ setup() {
[ "$total_cpus_container" -eq "$total_cpus" ]
# Check the total of requests
for _ in {1..10}; do
total_requests_container=$(kubectl exec $pod_name -c $container_name \
-- "${exec_weightsyspath_cmd[@]}")
if [[ -n "${total_requests_container}" ]]; then
break
fi
warn "Empty output from kubectl exec" >&2
sleep 1
done
info "total_requests_container = $total_requests_container"
[ "$total_requests_container" -eq "$total_requests" ]
# Check the cpus inside the container
read total_cpu_quota total_cpu_period <<< $(kubectl exec $pod_name -c $container_name \
-- "${exec_maxsyspath_cmd[@]}")
for _ in {1..10}; do
maxsyspath=$(kubectl exec $pod_name -c $container_name -- "${exec_maxsyspath_cmd[@]}")
if [[ -n "${maxsyspath}" ]]; then
break
fi
warn "Empty output from kubectl exec" >&2
sleep 1
done
read total_cpu_quota total_cpu_period <<< ${maxsyspath}
division_quota_period=$(echo $((total_cpu_quota/total_cpu_period)))

View File

@ -15,7 +15,7 @@ spec:
image: quay.io/prometheus/busybox:latest
command:
- sleep
- "30"
- "infinity"
resources:
limits:
cpu: "1"