Skip to content

Commit

Permalink
tests: exec_host() now gets the node name
Browse files Browse the repository at this point in the history
The exec_host() simply fails on cluster with multi-nodes because
`kubectl get node -o name" will return a list o names. Moreover, it will
return control nodes names which usually don't have kata installed.

Fixes #7619
Signed-off-by: Wainer dos Santos Moschetta <wainersm@redhat.com>
(cherry picked from commit 3a00fc9)
  • Loading branch information
wainersm authored and fidencio committed Oct 11, 2023
1 parent 0eaf81c commit a54bdd0
Showing 1 changed file with 7 additions and 3 deletions.
10 changes: 7 additions & 3 deletions tests/integration/kubernetes/tests_common.sh
Expand Up @@ -47,10 +47,14 @@ get_one_kata_node() {
}

# Runs a command in the host filesystem.
#
# Parameters:
# $1 - the node name
#
exec_host() {
node="$(kubectl get node -o name)"
node="$1"
# `kubectl debug` always returns 0, so we hack it to return the right exit code.
command="$@"
command="${@:2}"
command+='; echo -en \\n$?'
# We're trailing the `\r` here due to: https://github.com/kata-containers/kata-containers/issues/8051
# tl;dr: When testing with CRI-O we're facing the foillowing error:
Expand All @@ -61,7 +65,7 @@ exec_host() {
# [bats-exec-test:38] INFO: k8s configured to use runtimeclass
# bash: line 1: $'\r': command not found
# ```
output="$(kubectl debug -qit "${node}" --image=alpine:latest -- chroot /host bash -c "${command}" | tr -d '\r')"
output="$(kubectl debug -qit "node/${node}" --image=alpine:latest -- chroot /host bash -c "${command}" | tr -d '\r')"
kubectl get pods -o name | grep node-debugger | xargs kubectl delete > /dev/null
exit_code="$(echo "${output}" | tail -1)"
echo "$(echo "${output}" | head -n -1)"
Expand Down

0 comments on commit a54bdd0

Please sign in to comment.