mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-05-01 21:24:36 +00:00
packaging: add support to build initrd for sev
We need special initrd for SEV. The work on SEV initrd is based on Ubuntu. Thus, adding another entry in versions.yaml This binary will have '-sev' suffix to distinguish it from the generic binary. Fixes: #6572 Signed-Off-By: Unmesh Deodhar <udeodhar@amd.com>
This commit is contained in:
parent
b0e6a094be
commit
b87820ee8c
@ -22,6 +22,8 @@ readonly osbuilder_dir="$(cd "${repo_root_dir}/tools/osbuilder" && pwd)"
|
|||||||
export GOPATH=${GOPATH:-${HOME}/go}
|
export GOPATH=${GOPATH:-${HOME}/go}
|
||||||
|
|
||||||
arch_target="$(uname -m)"
|
arch_target="$(uname -m)"
|
||||||
|
final_initrd_name="kata-containers-initrd"
|
||||||
|
image_initrd_extension=".img"
|
||||||
|
|
||||||
build_initrd() {
|
build_initrd() {
|
||||||
info "Build initrd"
|
info "Build initrd"
|
||||||
@ -37,7 +39,7 @@ build_initrd() {
|
|||||||
mv "kata-containers-initrd.img" "${install_dir}/${initrd_name}"
|
mv "kata-containers-initrd.img" "${install_dir}/${initrd_name}"
|
||||||
(
|
(
|
||||||
cd "${install_dir}"
|
cd "${install_dir}"
|
||||||
ln -sf "${initrd_name}" kata-containers-initrd.img
|
ln -sf "${initrd_name}" "${final_initrd_name}${image_initrd_extension}"
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -71,6 +73,7 @@ Options:
|
|||||||
--imagetype=${image_type}
|
--imagetype=${image_type}
|
||||||
--prefix=${prefix}
|
--prefix=${prefix}
|
||||||
--destdir=${destdir}
|
--destdir=${destdir}
|
||||||
|
--image_initrd_suffix=${image_initrd_suffix}
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
exit "${return_code}"
|
exit "${return_code}"
|
||||||
@ -80,6 +83,7 @@ main() {
|
|||||||
image_type=image
|
image_type=image
|
||||||
destdir="$PWD"
|
destdir="$PWD"
|
||||||
prefix="/opt/kata"
|
prefix="/opt/kata"
|
||||||
|
image_initrd_suffix=""
|
||||||
builddir="${PWD}"
|
builddir="${PWD}"
|
||||||
while getopts "h-:" opt; do
|
while getopts "h-:" opt; do
|
||||||
case "$opt" in
|
case "$opt" in
|
||||||
@ -99,6 +103,15 @@ main() {
|
|||||||
initrd_os_version=$(get_from_kata_deps "assets.initrd.architecture.${arch_target}.version")
|
initrd_os_version=$(get_from_kata_deps "assets.initrd.architecture.${arch_target}.version")
|
||||||
initrd_name="kata-${initrd_distro}-${initrd_os_version}.${image_type}"
|
initrd_name="kata-${initrd_distro}-${initrd_os_version}.${image_type}"
|
||||||
;;
|
;;
|
||||||
|
image_initrd_suffix=*)
|
||||||
|
image_initrd_suffix=${OPTARG#*=}
|
||||||
|
if [ "${image_initrd_suffix}" == "sev" ]; then
|
||||||
|
initrd_distro=$(get_from_kata_deps "assets.initrd.architecture.${arch_target}.sev.name")
|
||||||
|
initrd_os_version=$(get_from_kata_deps "assets.initrd.architecture.${arch_target}.sev.version")
|
||||||
|
initrd_name="kata-${initrd_distro}-${initrd_os_version}-${image_initrd_suffix}.${image_type}"
|
||||||
|
final_initrd_name="${final_initrd_name}-${image_initrd_suffix}"
|
||||||
|
fi
|
||||||
|
;;
|
||||||
prefix=*)
|
prefix=*)
|
||||||
prefix=${OPTARG#*=}
|
prefix=${OPTARG#*=}
|
||||||
;;
|
;;
|
||||||
|
@ -39,6 +39,7 @@ all: serial-targets \
|
|||||||
serial-targets:
|
serial-targets:
|
||||||
${MAKE} -f $(MK_PATH) -j 1 V= \
|
${MAKE} -f $(MK_PATH) -j 1 V= \
|
||||||
rootfs-image-tarball \
|
rootfs-image-tarball \
|
||||||
|
rootfs-initrd-sev-tarball \
|
||||||
rootfs-initrd-tarball \
|
rootfs-initrd-tarball \
|
||||||
cloud-hypervisor-tarball
|
cloud-hypervisor-tarball
|
||||||
|
|
||||||
@ -87,6 +88,9 @@ qemu-tdx-experimental-tarball:
|
|||||||
rootfs-image-tarball:
|
rootfs-image-tarball:
|
||||||
${MAKE} $@-build
|
${MAKE} $@-build
|
||||||
|
|
||||||
|
rootfs-initrd-sev-tarball: kernel-sev-tarball
|
||||||
|
${MAKE} $@-build
|
||||||
|
|
||||||
rootfs-initrd-tarball:
|
rootfs-initrd-tarball:
|
||||||
${MAKE} $@-build
|
${MAKE} $@-build
|
||||||
|
|
||||||
|
@ -91,6 +91,7 @@ options:
|
|||||||
qemu-tdx-experimental
|
qemu-tdx-experimental
|
||||||
rootfs-image
|
rootfs-image
|
||||||
rootfs-initrd
|
rootfs-initrd
|
||||||
|
rootfs-initrd-sev
|
||||||
shim-v2
|
shim-v2
|
||||||
tdvf
|
tdvf
|
||||||
virtiofsd
|
virtiofsd
|
||||||
@ -155,8 +156,10 @@ install_image() {
|
|||||||
|
|
||||||
#Install guest initrd
|
#Install guest initrd
|
||||||
install_initrd() {
|
install_initrd() {
|
||||||
local jenkins="${jenkins_url}/job/kata-containers-main-rootfs-initrd-$(uname -m)/${cached_artifacts_path}"
|
local initrd_type="${1:-""}"
|
||||||
local component="rootfs-initrd"
|
local initrd_suffix="${2:-""}"
|
||||||
|
local jenkins="${jenkins_url}/job/kata-containers-main-rootfs-${initrd_type}-$(uname -m)/${cached_artifacts_path}"
|
||||||
|
local component="rootfs-${initrd_type}"
|
||||||
|
|
||||||
local osbuilder_last_commit="$(get_last_modification "${repo_root_dir}/tools/osbuilder")"
|
local osbuilder_last_commit="$(get_last_modification "${repo_root_dir}/tools/osbuilder")"
|
||||||
local guest_image_last_commit="$(get_last_modification "${repo_root_dir}/tools/packaging/guest-image")"
|
local guest_image_last_commit="$(get_last_modification "${repo_root_dir}/tools/packaging/guest-image")"
|
||||||
@ -169,7 +172,7 @@ install_initrd() {
|
|||||||
install_cached_tarball_component \
|
install_cached_tarball_component \
|
||||||
"${component}" \
|
"${component}" \
|
||||||
"${jenkins}" \
|
"${jenkins}" \
|
||||||
"${osbuilder_last_commit}-${guest_image_last_commit}-${agent_last_commit}-${libs_last_commit}-${gperf_version}-${libseccomp_version}-${rust_version}-initrd" \
|
"${osbuilder_last_commit}-${guest_image_last_commit}-${agent_last_commit}-${libs_last_commit}-${gperf_version}-${libseccomp_version}-${rust_version}-${initrd_type}" \
|
||||||
"" \
|
"" \
|
||||||
"${final_tarball_name}" \
|
"${final_tarball_name}" \
|
||||||
"${final_tarball_path}" \
|
"${final_tarball_path}" \
|
||||||
@ -184,39 +187,6 @@ install_initrd_sev() {
|
|||||||
install_initrd "initrd-sev" "sev"
|
install_initrd "initrd-sev" "sev"
|
||||||
}
|
}
|
||||||
|
|
||||||
#Install kernel component helper
|
|
||||||
install_cached_kernel_tarball_component() {
|
|
||||||
local kernel_name=${1}
|
|
||||||
|
|
||||||
install_cached_tarball_component \
|
|
||||||
"${kernel_name}" \
|
|
||||||
"${jenkins_url}/job/kata-containers-main-${kernel_name}-$(uname -m)/${cached_artifacts_path}" \
|
|
||||||
"${kernel_version}-${kernel_kata_config_version}" \
|
|
||||||
"$(get_kernel_image_name)" \
|
|
||||||
"${final_tarball_name}" \
|
|
||||||
"${final_tarball_path}" \
|
|
||||||
|| return 1
|
|
||||||
|
|
||||||
if [[ "${kernel_name}" != "kernel-sev" ]]; then
|
|
||||||
return 0
|
|
||||||
fi
|
|
||||||
|
|
||||||
# SEV specific code path
|
|
||||||
install_cached_tarball_component \
|
|
||||||
"${kernel_name}" \
|
|
||||||
"${jenkins_url}/job/kata-containers-main-${kernel_name}-$(uname -m)/${cached_artifacts_path}" \
|
|
||||||
"${kernel_version}-${kernel_kata_config_version}" \
|
|
||||||
"$(get_kernel_image_name)" \
|
|
||||||
"kata-static-kernel-sev-modules.tar.xz" \
|
|
||||||
"${workdir}/kata-static-kernel-sev-modules.tar.xz" \
|
|
||||||
|| return 1
|
|
||||||
|
|
||||||
mkdir -p "${module_dir}"
|
|
||||||
tar xvf "${workdir}/kata-static-kernel-sev-modules.tar.xz" -C "${module_dir}" && return 0
|
|
||||||
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
#Install kernel asset
|
#Install kernel asset
|
||||||
install_kernel_helper() {
|
install_kernel_helper() {
|
||||||
local kernel_version_yaml_path="${1}"
|
local kernel_version_yaml_path="${1}"
|
||||||
@ -504,6 +474,7 @@ handle_build() {
|
|||||||
install_firecracker
|
install_firecracker
|
||||||
install_image
|
install_image
|
||||||
install_initrd
|
install_initrd
|
||||||
|
install_initrd_sev
|
||||||
install_kernel
|
install_kernel
|
||||||
install_kernel_dragonball_experimental
|
install_kernel_dragonball_experimental
|
||||||
install_kernel_tdx_experimental
|
install_kernel_tdx_experimental
|
||||||
@ -545,6 +516,8 @@ handle_build() {
|
|||||||
|
|
||||||
rootfs-initrd) install_initrd ;;
|
rootfs-initrd) install_initrd ;;
|
||||||
|
|
||||||
|
rootfs-initrd-sev) install_initrd_sev ;;
|
||||||
|
|
||||||
shim-v2) install_shimv2 ;;
|
shim-v2) install_shimv2 ;;
|
||||||
|
|
||||||
tdvf) install_tdvf ;;
|
tdvf) install_tdvf ;;
|
||||||
|
@ -156,6 +156,9 @@ assets:
|
|||||||
x86_64:
|
x86_64:
|
||||||
name: *default-initrd-name
|
name: *default-initrd-name
|
||||||
version: *default-initrd-version
|
version: *default-initrd-version
|
||||||
|
sev:
|
||||||
|
name: *glibc-initrd-name
|
||||||
|
version: *glibc-initrd-version
|
||||||
|
|
||||||
kernel:
|
kernel:
|
||||||
description: "Linux kernel optimised for virtual machines"
|
description: "Linux kernel optimised for virtual machines"
|
||||||
|
Loading…
Reference in New Issue
Block a user