From 034d7aab876ccb6e2709973b359df59c11dc9d67 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabiano=20Fid=C3=AAncio?= Date: Mon, 31 Jul 2023 11:42:00 +0200 Subject: [PATCH] tests: k8s: Ensure the runtime classes are properly created MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit With these 2 simple checks we can ensure that we do not regress on the behaviour of allowing the runtime classes / default runtime class to be created by the kata-deploy payload. Fixes: #7491 Signed-off-by: Fabiano FidĂȘncio --- ...eploy-ensure-runtimec-classes-created.bats | 28 +++++++++++++++++++ .../kubernetes/run_kubernetes_tests.sh | 1 + 2 files changed, 29 insertions(+) create mode 100644 tests/integration/kubernetes/kata-deploy-ensure-runtimec-classes-created.bats diff --git a/tests/integration/kubernetes/kata-deploy-ensure-runtimec-classes-created.bats b/tests/integration/kubernetes/kata-deploy-ensure-runtimec-classes-created.bats new file mode 100644 index 0000000000..bd1d5a1517 --- /dev/null +++ b/tests/integration/kubernetes/kata-deploy-ensure-runtimec-classes-created.bats @@ -0,0 +1,28 @@ +#!/usr/bin/env bats +# +# Copyright (c) 2023 Intel Corporation +# +# SPDX-License-Identifier: Apache-2.0 +# + +load "${BATS_TEST_DIRNAME}/../../common.bash" +load "${BATS_TEST_DIRNAME}/tests_common.sh" + +setup() { + # We expect 2 runtime classes because: + # * `kata` is the default runtimeclass created, basically an alias for `kata-${KATA_HYPERVISOR}`. + # * `kata-${KATA_HYPERVISOR}` is the other one + # * As part of the tests we're only deploying the specific runtimeclass that will be used, instead of all of them. + expected_runtime_classes=2 +} + +@test "Test runtimeclasses are being properly created" { + # We filter `kata-mshv-vm-isolation` out as that's present on AKS clusters, but that's not coming from kata-deploy + current_runtime_classes=$(kubectl get runtimeclasses | grep -v "kata-mshv-vm-isolation" | grep "kata" | wc -l) + [[ ${current_runtime_classes} -eq ${expected_runtime_classes} ]] + [[ $(kubectl get runtimeclasses | grep -q "${KATA_HYPERVISOR}") -eq 0 ]] +} + +teardown() { + kubectl get runtimeclasses +} diff --git a/tests/integration/kubernetes/run_kubernetes_tests.sh b/tests/integration/kubernetes/run_kubernetes_tests.sh index f8b635d220..e46cbc9fe0 100644 --- a/tests/integration/kubernetes/run_kubernetes_tests.sh +++ b/tests/integration/kubernetes/run_kubernetes_tests.sh @@ -18,6 +18,7 @@ if [ -n "${K8S_TEST_UNION:-}" ]; then K8S_TEST_UNION=($K8S_TEST_UNION) else K8S_TEST_UNION=( \ + "kata-deploy-ensure-runtimec-classes-created.bats" \ "k8s-attach-handlers.bats" \ "k8s-caps.bats" \ "k8s-configmap.bats" \