From 8aa390279e2e33d6b9a54e3867fdfe6ed05a0cf9 Mon Sep 17 00:00:00 2001 From: Dan Mihai Date: Sat, 16 Dec 2023 22:58:59 +0000 Subject: [PATCH] tests: retry connection to pod SSH server To become more resilient against these kinds of errors: deployment.apps/confidential-unencrypted created pod/confidential-unencrypted-c5fdd6964-rrb6q condition met ssh: connect to host 10.42.0.109 port 22: Connection refused Fixes: #8687 Signed-off-by: Dan Mihai --- .../kubernetes/k8s-confidential.bats | 22 +++++++++++-------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/tests/integration/kubernetes/k8s-confidential.bats b/tests/integration/kubernetes/k8s-confidential.bats index c78c7d5184..bf56ac3636 100644 --- a/tests/integration/kubernetes/k8s-confidential.bats +++ b/tests/integration/kubernetes/k8s-confidential.bats @@ -30,15 +30,19 @@ setup() { # Check pod creation kubectl wait --for=condition=Ready --timeout=$timeout pod "${pod_name}" - pod_ip=$(kubectl get pod -o wide | grep "confidential-unencrypted" | awk '{print $6;}') - - # Run the remote command - coco_enabled=$(ssh -i ${SSH_KEY_FILE} -o "StrictHostKeyChecking no" -o "PasswordAuthentication=no" root@${pod_ip} /bin/sh -c "$(get_remote_command_per_hypervisor)" || true) - - if [ -z "$coco_enabled" ]; then - >&2 echo -e "Confidential compute is expected but not enabled." - return 1 - fi + coco_enabled="" + for i in {1..6}; do + if ! pod_ip=$(kubectl get pod -o wide | grep "confidential-unencrypted" | awk '{print $6;}'); then + warn "Failed to get pod IP address." + else + info "Pod IP address: ${pod_ip}" + coco_enabled=$(ssh -i ${SSH_KEY_FILE} -o "StrictHostKeyChecking no" -o "PasswordAuthentication=no" root@${pod_ip} /bin/sh -c "$(get_remote_command_per_hypervisor)") && break + warn "Failed to connect to pod." + fi + sleep 5 + done + [ -z "$coco_enabled" ] && die "Confidential compute is expected but not enabled." + info "ssh client output: ${coco_enabled}" } teardown() {