Merge pull request #6062 from Alex-Carter01/snp-qemu

kata-deploy: SNP version of Qemu
This commit is contained in:
Jeremi Piotrowski 2023-03-31 20:09:57 +02:00 committed by GitHub
commit c8f615b204
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
8 changed files with 22 additions and 3 deletions

View File

@ -166,6 +166,9 @@ HYPERVISORS := $(HYPERVISOR_ACRN) $(HYPERVISOR_FC) $(HYPERVISOR_QEMU) $(HYPERVIS
QEMUPATH := $(QEMUBINDIR)/$(QEMUCMD) QEMUPATH := $(QEMUBINDIR)/$(QEMUCMD)
QEMUVALIDHYPERVISORPATHS := [\"$(QEMUPATH)\"] QEMUVALIDHYPERVISORPATHS := [\"$(QEMUPATH)\"]
QEMUSNPPATH := $(QEMUBINDIR)/$(QEMUSNPCMD)
QEMUSNPVALIDHYPERVISORPATHS := [\"$(QEMUSNPPATH)\"]
QEMUTDXPATH := $(QEMUBINDIR)/$(QEMUTDXCMD) QEMUTDXPATH := $(QEMUBINDIR)/$(QEMUTDXCMD)
QEMUTDXVALIDHYPERVISORPATHS := [\"$(QEMUTDXPATH)\"] QEMUTDXVALIDHYPERVISORPATHS := [\"$(QEMUTDXPATH)\"]
@ -590,6 +593,8 @@ USER_VARS += QEMUPATH
USER_VARS += QEMUVALIDHYPERVISORPATHS USER_VARS += QEMUVALIDHYPERVISORPATHS
USER_VARS += QEMUVIRTIOFSCMD USER_VARS += QEMUVIRTIOFSCMD
USER_VARS += QEMUVIRTIOFSPATH USER_VARS += QEMUVIRTIOFSPATH
USER_VARS += QEMUSNPPATH
USER_VARS += QEMUSNPVALIDHYPERVISORPATHS
USER_VARS += QEMUTDXPATH USER_VARS += QEMUTDXPATH
USER_VARS += QEMUTDXVALIDHYPERVISORPATHS USER_VARS += QEMUTDXVALIDHYPERVISORPATHS
USER_VARS += RUNTIME_NAME USER_VARS += RUNTIME_NAME

View File

@ -13,6 +13,7 @@ TDXCPUFEATURES := -vmx-rdseed-exit,pmu=off
QEMUCMD := qemu-system-x86_64 QEMUCMD := qemu-system-x86_64
QEMUTDXCMD := qemu-system-x86_64-tdx QEMUTDXCMD := qemu-system-x86_64-tdx
QEMUSNPCMD := qemu-system-x86_64-snp
# Firecracker binary name # Firecracker binary name
FCCMD := firecracker FCCMD := firecracker

View File

@ -19,6 +19,7 @@ shims=(
"qemu-tdx" "qemu-tdx"
"qemu-sev" "qemu-sev"
"qemu-se" "qemu-se"
"qemu-snp"
"clh" "clh"
"clh-tdx" "clh-tdx"
) )
@ -258,6 +259,7 @@ function remove_artifacts() {
/opt/confidential-containers/bin/kata-runtime \ /opt/confidential-containers/bin/kata-runtime \
/opt/confidential-containers/bin/kata-collect-data.sh \ /opt/confidential-containers/bin/kata-collect-data.sh \
/opt/confidential-containers/bin/qemu-system-x86_64 \ /opt/confidential-containers/bin/qemu-system-x86_64 \
/opt/confidential-containers/bin/qemu-system-x86_64-snp \
/opt/confidential-containers/bin/qemu-system-x86_64-tdx \ /opt/confidential-containers/bin/qemu-system-x86_64-tdx \
/opt/confidential-containers/bin/qemu-system-s390x \ /opt/confidential-containers/bin/qemu-system-s390x \
/opt/confidential-containers/bin/cloud-hypervisor \ /opt/confidential-containers/bin/cloud-hypervisor \

View File

@ -19,6 +19,7 @@ EXTRA_TARBALL=cc-cloud-hypervisor-tarball \
cc-sev-ovmf-tarball \ cc-sev-ovmf-tarball \
cc-x86_64-ovmf-tarball \ cc-x86_64-ovmf-tarball \
cc-sev-rootfs-initrd-tarball \ cc-sev-rootfs-initrd-tarball \
cc-snp-qemu-tarball \
cc-tdx-rootfs-image-tarball cc-tdx-rootfs-image-tarball
endif endif
@ -115,6 +116,9 @@ cc-kernel-tarball:
cc-qemu-tarball: cc-qemu-tarball:
${MAKE} $@-build ${MAKE} $@-build
cc-snp-qemu-tarball:
${MAKE} $@-build
cc-rootfs-image-tarball: cc-rootfs-image-tarball:
${MAKE} $@-build ${MAKE} $@-build

View File

@ -100,6 +100,7 @@ options:
cc-tdx-kernel cc-tdx-kernel
cc-sev-kernel cc-sev-kernel
cc-qemu cc-qemu
cc-snp-qemu
cc-tdx-qemu cc-tdx-qemu
cc-rootfs-image cc-rootfs-image
cc-rootfs-initrd cc-rootfs-initrd
@ -479,7 +480,7 @@ install_cc_sev_kernel() {
install_cc_tee_qemu() { install_cc_tee_qemu() {
tee="${1}" tee="${1}"
[ "${tee}" != "tdx" ] && die "Non supported TEE" [[ "${tee}" != "tdx" && "${tee}" != "snp" ]] && die "Non supported TEE"
export qemu_repo="$(yq r $versions_yaml assets.hypervisor.qemu.${tee}.url)" export qemu_repo="$(yq r $versions_yaml assets.hypervisor.qemu.${tee}.url)"
export qemu_version="$(yq r $versions_yaml assets.hypervisor.qemu.${tee}.tag)" export qemu_version="$(yq r $versions_yaml assets.hypervisor.qemu.${tee}.tag)"
@ -502,6 +503,10 @@ install_cc_tdx_qemu() {
install_cc_tee_qemu "tdx" install_cc_tee_qemu "tdx"
} }
install_cc_snp_qemu() {
install_cc_tee_qemu "snp"
}
install_cc_tdx_td_shim() { install_cc_tdx_td_shim() {
install_cached_component \ install_cached_component \
"td-shim" \ "td-shim" \
@ -825,6 +830,8 @@ handle_build() {
cc-qemu) install_cc_qemu ;; cc-qemu) install_cc_qemu ;;
cc-snp-qemu) install_cc_snp_qemu ;;
cc-rootfs-image) install_cc_image ;; cc-rootfs-image) install_cc_image ;;
cc-rootfs-initrd) install_cc_initrd ;; cc-rootfs-initrd) install_cc_initrd ;;

View File

@ -22,6 +22,7 @@ cache_qemu_artifacts() {
if [ -n "${TEE}" ]; then if [ -n "${TEE}" ]; then
qemu_tarball_name="kata-static-cc-${TEE}-qemu.tar.xz" qemu_tarball_name="kata-static-cc-${TEE}-qemu.tar.xz"
[ "${TEE}" == "tdx" ] && current_qemu_version=$(get_from_kata_deps "assets.hypervisor.qemu.tdx.tag") [ "${TEE}" == "tdx" ] && current_qemu_version=$(get_from_kata_deps "assets.hypervisor.qemu.tdx.tag")
[ "${TEE}" == "snp" ] && current_qemu_version=$(get_from_kata_deps "assets.hypervisor.qemu.snp.tag")
fi fi
local qemu_sha=$(calc_qemu_files_sha256sum) local qemu_sha=$(calc_qemu_files_sha256sum)
local current_qemu_image="$(get_qemu_image_name)" local current_qemu_image="$(get_qemu_image_name)"

View File

@ -105,8 +105,7 @@ assets:
snp: snp:
description: "VMM that uses KVM and supports AMD SEV-SNP" description: "VMM that uses KVM and supports AMD SEV-SNP"
url: "https://github.com/AMDESE/qemu" url: "https://github.com/AMDESE/qemu"
branch: "snp-v3" tag: "3b6a2b6b7466f6dea53243900b7516c3f29027b7"
commit: "ffa95097ee"
qemu-experimental: qemu-experimental:
description: "QEMU with virtiofs support" description: "QEMU with virtiofs support"