mirror of
https://github.com/aljazceru/kata-containers.git
synced 2025-12-18 14:54:19 +01:00
Makes it so that `setup.sh` doesn't make changes in `runtimeclass_workloads/` directly. Instead we treat that as a template directory and we use the new directory `runtimeclass_workloads_work/` as a work dir. This has two advantages: * Allows rerunning tests without the assumption that `setup.sh` must be idempotent. E.g. the `set_runtime_class()` step would break. * Doesn't pollute your git environment with a bunch of changes when developing. Signed-off-by: Aurélien Bombo <abombo@microsoft.com>
44 lines
1.4 KiB
Bash
Executable File
44 lines
1.4 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
# Copyright (c) 2023 Microsoft Corporation
|
|
#
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -o errexit
|
|
set -o nounset
|
|
set -o pipefail
|
|
|
|
kubernetes_dir=$(dirname "$(readlink -f "$0")")
|
|
source "${kubernetes_dir}/../../common.bash"
|
|
|
|
reset_workloads_work_dir() {
|
|
rm -rf ${kubernetes_dir}/runtimeclass_workloads_work
|
|
cp -R ${kubernetes_dir}/runtimeclass_workloads ${kubernetes_dir}/runtimeclass_workloads_work
|
|
}
|
|
|
|
set_runtime_class() {
|
|
sed -i -e "s|runtimeClassName: kata|runtimeClassName: kata-${KATA_HYPERVISOR}|" ${kubernetes_dir}/runtimeclass_workloads_work/*.yaml
|
|
}
|
|
|
|
set_kernel_path() {
|
|
if [[ "${KATA_HOST_OS}" = "cbl-mariner" ]]; then
|
|
mariner_kernel_path="/usr/share/cloud-hypervisor/vmlinux.bin"
|
|
find ${kubernetes_dir}/runtimeclass_workloads_work/*.yaml -exec yq write -i {} 'metadata.annotations[io.katacontainers.config.hypervisor.kernel]' "${mariner_kernel_path}" \;
|
|
fi
|
|
}
|
|
|
|
set_initrd_path() {
|
|
if [[ "${KATA_HOST_OS}" = "cbl-mariner" ]]; then
|
|
initrd_path="/opt/kata/share/kata-containers/kata-containers-initrd-mariner.img"
|
|
find ${kubernetes_dir}/runtimeclass_workloads_work/*.yaml -exec yq write -i {} 'metadata.annotations[io.katacontainers.config.hypervisor.initrd]' "${initrd_path}" \;
|
|
fi
|
|
}
|
|
|
|
main() {
|
|
reset_workloads_work_dir
|
|
set_runtime_class
|
|
set_kernel_path
|
|
set_initrd_path
|
|
}
|
|
|
|
main "$@"
|