diff --git a/tests/integration/kubernetes/k8s-file-volume.bats b/tests/integration/kubernetes/k8s-file-volume.bats new file mode 100644 index 0000000000..fd09d7886d --- /dev/null +++ b/tests/integration/kubernetes/k8s-file-volume.bats @@ -0,0 +1,47 @@ +#!/usr/bin/env bats +# +# Copyright (c) 2022 Ant Group +# +# SPDX-License-Identifier: Apache-2.0 +# + +load "${BATS_TEST_DIRNAME}/../../common.bash" +load "${BATS_TEST_DIRNAME}/tests_common.sh" +TEST_INITRD="${TEST_INITRD:-no}" + +setup() { + [ "${KATA_HYPERVISOR}" == "firecracker" ] && skip "test not working see: ${fc_limitations}" + pod_name="test-file-volume" + container_name="busybox-file-volume-container" + tmp_file=$(exec_host mktemp /tmp/file-volume-test-foo.XXXXX) + mount_path="/tmp/foo.txt" + file_body="test" + get_pod_config_dir +} + +@test "Test readonly volume for pods" { + [ "${KATA_HYPERVISOR}" == "firecracker" ] && skip "test not working see: ${fc_limitations}" + # Write test body to temp file + exec_host "echo "$file_body" > $tmp_file" + + # Create test yaml + sed -e "s|HOST_FILE|$tmp_file|" ${pod_config_dir}/pod-file-volume.yaml > ${pod_config_dir}/test-pod-file-volume.yaml + sed -i "s|MOUNT_PATH|$mount_path|" ${pod_config_dir}/test-pod-file-volume.yaml + + # Create pod + kubectl create -f "${pod_config_dir}/test-pod-file-volume.yaml" + + # Check pod creation + kubectl wait --for=condition=Ready --timeout=$timeout pod "$pod_name" + + # Validate file volume body inside the pod + file_in_container=$(kubectl exec $pod_name -- cat $mount_path) + [ "$file_body" == "$file_in_container" ] +} + +teardown() { + [ "${KATA_HYPERVISOR}" == "firecracker" ] && skip "test not working see: ${fc_limitations}" + kubectl delete pod "$pod_name" + exec_host rm -f $tmp_file + rm -f ${pod_config_dir}/test-pod-file-volume.yaml.yaml +} diff --git a/tests/integration/kubernetes/run_kubernetes_tests.sh b/tests/integration/kubernetes/run_kubernetes_tests.sh index 1dbbc7394a..f8b635d220 100644 --- a/tests/integration/kubernetes/run_kubernetes_tests.sh +++ b/tests/integration/kubernetes/run_kubernetes_tests.sh @@ -28,6 +28,7 @@ else "k8s-empty-dirs.bats" \ "k8s-env.bats" \ "k8s-exec.bats" \ + "k8s-file-volume.bats" \ "k8s-inotify.bats" \ "k8s-job.bats" \ "k8s-kill-all-process-in-container.bats" \