# # Copyright (c) 2021 Red Hat, Inc. # # SPDX-License-Identifier: Apache-2.0 # # This script is evoked within an OpenShift Build to product the binary image, # which will contain the Kata Containers installation into a given destination # directory. # # This contains variables and functions common to all e2e tests. # Variables used by the kubernetes tests export docker_images_nginx_version="1.15-alpine" export container_images_agnhost_name="k8s.gcr.io/e2e-test-images/agnhost" export container_images_agnhost_version="2.21" # Timeout options, mainly for use with waitForProcess(). Use them unless the # operation needs to wait longer. wait_time=90 sleep_time=3 # Timeout for use with `kubectl wait`, unless it needs to wait longer. # Note: try to keep timeout and wait_time equal. timeout=90s # issues that can't test yet. fc_limitations="https://github.com/kata-containers/documentation/issues/351" dragonball_limitations="https://github.com/kata-containers/kata-containers/issues/6621" # Path to the kubeconfig file which is used by kubectl and other tools. # Note: the init script sets that variable but if you want to run the tests in # your own provisioned cluster and you know what you are doing then you should # overwrite it. export KUBECONFIG="${KUBECONFIG:-$HOME/.kube/config}" get_pod_config_dir() { pod_config_dir="${BATS_TEST_DIRNAME}/runtimeclass_workloads_work" info "k8s configured to use runtimeclass" } # Runs a command in the host filesystem. exec_host() { node="$(kubectl get node -o name)" # `kubectl debug` always returns 0, so we hack it to return the right exit code. command="$@" command+='; echo -en \\n$?' output="$(kubectl debug -qit "${node}" --image=alpine:latest -- chroot /host bash -c "${command}")" 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)" return ${exit_code} }