mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-08-13 13:46:46 +00:00
kata-deploy: Add StratoVirt support to deploy process
Allow kata-deploy process to pull StratoVirt from release binaries, and add them as a part of kata release. Fixes: #7794 Signed-off-by: Liu Wenyuan <liuwenyuan9@huawei.com>
This commit is contained in:
parent
9542211e71
commit
14d8790d83
@ -48,6 +48,7 @@ jobs:
|
|||||||
- qemu
|
- qemu
|
||||||
- qemu-snp-experimental
|
- qemu-snp-experimental
|
||||||
- qemu-tdx-experimental
|
- qemu-tdx-experimental
|
||||||
|
- stratovirt
|
||||||
- rootfs-image
|
- rootfs-image
|
||||||
- rootfs-image-tdx
|
- rootfs-image-tdx
|
||||||
- rootfs-initrd
|
- rootfs-initrd
|
||||||
|
@ -33,6 +33,7 @@ jobs:
|
|||||||
- kernel-dragonball-experimental
|
- kernel-dragonball-experimental
|
||||||
- nydus
|
- nydus
|
||||||
- qemu
|
- qemu
|
||||||
|
- stratovirt
|
||||||
- rootfs-image
|
- rootfs-image
|
||||||
- rootfs-initrd
|
- rootfs-initrd
|
||||||
- shim-v2
|
- shim-v2
|
||||||
|
@ -0,0 +1,20 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: nginx-deployment-stratovirt
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: nginx
|
||||||
|
replicas: 2
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: nginx
|
||||||
|
spec:
|
||||||
|
runtimeClassName: kata-stratovirt
|
||||||
|
containers:
|
||||||
|
- name: nginx
|
||||||
|
image: nginx:1.14
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
@ -0,0 +1,42 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
run: php-apache-kata-stratovirt
|
||||||
|
name: php-apache-kata-stratovirt
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
run: php-apache-kata-stratovirt
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
run: php-apache-kata-stratovirt
|
||||||
|
spec:
|
||||||
|
runtimeClassName: kata-stratovirt
|
||||||
|
containers:
|
||||||
|
- image: k8s.gcr.io/hpa-example
|
||||||
|
imagePullPolicy: Always
|
||||||
|
name: php-apache
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 200m
|
||||||
|
restartPolicy: Always
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: php-apache-kata-stratovirt
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- port: 80
|
||||||
|
protocol: TCP
|
||||||
|
targetPort: 80
|
||||||
|
selector:
|
||||||
|
run: php-apache-kata-stratovirt
|
||||||
|
sessionAffinity: None
|
||||||
|
type: ClusterIP
|
@ -30,7 +30,7 @@ spec:
|
|||||||
- name: DEBUG
|
- name: DEBUG
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: SHIMS
|
- name: SHIMS
|
||||||
value: "clh dragonball fc qemu-nvidia-gpu qemu-sev qemu-snp qemu-tdx qemu"
|
value: "clh dragonball fc qemu-nvidia-gpu qemu-sev qemu-snp qemu-tdx qemu stratovirt"
|
||||||
- name: DEFAULT_SHIM
|
- name: DEFAULT_SHIM
|
||||||
value: "qemu"
|
value: "qemu"
|
||||||
- name: CREATE_RUNTIMECLASSES
|
- name: CREATE_RUNTIMECLASSES
|
||||||
|
@ -32,7 +32,7 @@ spec:
|
|||||||
- name: DEBUG
|
- name: DEBUG
|
||||||
value: "false"
|
value: "false"
|
||||||
- name: SHIMS
|
- name: SHIMS
|
||||||
value: "clh dragonball fc qemu qemu-nvidia-gpu qemu-sev qemu-snp qemu-tdx"
|
value: "clh dragonball fc qemu qemu-nvidia-gpu qemu-sev qemu-snp qemu-tdx stratovirt"
|
||||||
- name: DEFAULT_SHIM
|
- name: DEFAULT_SHIM
|
||||||
value: "qemu"
|
value: "qemu"
|
||||||
- name: CREATE_RUNTIMECLASSES
|
- name: CREATE_RUNTIMECLASSES
|
||||||
|
@ -35,6 +35,7 @@ all: serial-targets \
|
|||||||
qemu-snp-experimental-tarball \
|
qemu-snp-experimental-tarball \
|
||||||
qemu-tarball \
|
qemu-tarball \
|
||||||
qemu-tdx-experimental-tarball \
|
qemu-tdx-experimental-tarball \
|
||||||
|
stratovirt-tarball \
|
||||||
shim-v2-tarball \
|
shim-v2-tarball \
|
||||||
tdvf-tarball \
|
tdvf-tarball \
|
||||||
virtiofsd-tarball
|
virtiofsd-tarball
|
||||||
@ -115,6 +116,9 @@ qemu-tarball:
|
|||||||
qemu-tdx-experimental-tarball:
|
qemu-tdx-experimental-tarball:
|
||||||
${MAKE} $@-build
|
${MAKE} $@-build
|
||||||
|
|
||||||
|
stratovirt-tarball:
|
||||||
|
${MAKE} $@-build
|
||||||
|
|
||||||
rootfs-image-tarball:
|
rootfs-image-tarball:
|
||||||
${MAKE} $@-build
|
${MAKE} $@-build
|
||||||
|
|
||||||
|
@ -30,6 +30,7 @@ readonly kernel_builder="${static_build_dir}/kernel/build.sh"
|
|||||||
readonly ovmf_builder="${static_build_dir}/ovmf/build.sh"
|
readonly ovmf_builder="${static_build_dir}/ovmf/build.sh"
|
||||||
readonly qemu_builder="${static_build_dir}/qemu/build-static-qemu.sh"
|
readonly qemu_builder="${static_build_dir}/qemu/build-static-qemu.sh"
|
||||||
readonly qemu_experimental_builder="${static_build_dir}/qemu/build-static-qemu-experimental.sh"
|
readonly qemu_experimental_builder="${static_build_dir}/qemu/build-static-qemu-experimental.sh"
|
||||||
|
readonly stratovirt_builder="${static_build_dir}/stratovirt/build-static-stratovirt.sh"
|
||||||
readonly shimv2_builder="${static_build_dir}/shim-v2/build.sh"
|
readonly shimv2_builder="${static_build_dir}/shim-v2/build.sh"
|
||||||
readonly virtiofsd_builder="${static_build_dir}/virtiofsd/build.sh"
|
readonly virtiofsd_builder="${static_build_dir}/virtiofsd/build.sh"
|
||||||
readonly nydus_builder="${static_build_dir}/nydus/build.sh"
|
readonly nydus_builder="${static_build_dir}/nydus/build.sh"
|
||||||
@ -104,6 +105,7 @@ options:
|
|||||||
qemu
|
qemu
|
||||||
qemu-snp-experimental
|
qemu-snp-experimental
|
||||||
qemu-tdx-experimental
|
qemu-tdx-experimental
|
||||||
|
stratovirt
|
||||||
rootfs-image
|
rootfs-image
|
||||||
rootfs-image-tdx
|
rootfs-image-tdx
|
||||||
rootfs-initrd
|
rootfs-initrd
|
||||||
@ -515,6 +517,28 @@ install_clh_glibc() {
|
|||||||
install_clh_helper "gnu" "${features}" "-glibc"
|
install_clh_helper "gnu" "${features}" "-glibc"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
# Install static stratovirt asset
|
||||||
|
install_stratovirt() {
|
||||||
|
local stratovirt_version=$(get_from_kata_deps "assets.hypervisor.stratovirt.version")
|
||||||
|
|
||||||
|
latest_artefact="${stratovirt_version}"
|
||||||
|
latest_builder_image=""
|
||||||
|
|
||||||
|
install_cached_tarball_component \
|
||||||
|
"stratovirt" \
|
||||||
|
"${latest_artefact}" \
|
||||||
|
"${latest_builder_image}" \
|
||||||
|
"${final_tarball_name}" \
|
||||||
|
"${final_tarball_path}" \
|
||||||
|
&& return 0
|
||||||
|
|
||||||
|
info "build static stratovirt"
|
||||||
|
"${stratovirt_builder}"
|
||||||
|
info "Install static stratovirt"
|
||||||
|
mkdir -p "${destdir}/opt/kata/bin/"
|
||||||
|
sudo install -D --owner root --group root --mode 0744 static-stratovirt/stratovirt "${destdir}/opt/kata/bin/stratovirt"
|
||||||
|
}
|
||||||
|
|
||||||
# Install static virtiofsd asset
|
# Install static virtiofsd asset
|
||||||
install_virtiofsd() {
|
install_virtiofsd() {
|
||||||
latest_artefact="$(get_from_kata_deps "externals.virtiofsd.version")-$(get_from_kata_deps "externals.virtiofsd.toolchain")"
|
latest_artefact="$(get_from_kata_deps "externals.virtiofsd.version")-$(get_from_kata_deps "externals.virtiofsd.toolchain")"
|
||||||
@ -742,6 +766,7 @@ handle_build() {
|
|||||||
install_qemu
|
install_qemu
|
||||||
install_qemu_snp_experimental
|
install_qemu_snp_experimental
|
||||||
install_qemu_tdx_experimental
|
install_qemu_tdx_experimental
|
||||||
|
install_stratovirt
|
||||||
install_runk
|
install_runk
|
||||||
install_shimv2
|
install_shimv2
|
||||||
install_tdvf
|
install_tdvf
|
||||||
@ -791,6 +816,8 @@ handle_build() {
|
|||||||
|
|
||||||
qemu-tdx-experimental) install_qemu_tdx_experimental ;;
|
qemu-tdx-experimental) install_qemu_tdx_experimental ;;
|
||||||
|
|
||||||
|
stratovirt) install_stratovirt ;;
|
||||||
|
|
||||||
rootfs-image) install_image ;;
|
rootfs-image) install_image ;;
|
||||||
|
|
||||||
rootfs-image-tdx) install_image_tdx ;;
|
rootfs-image-tdx) install_image_tdx ;;
|
||||||
@ -871,6 +898,7 @@ main() {
|
|||||||
log-parser-rs
|
log-parser-rs
|
||||||
nydus
|
nydus
|
||||||
qemu
|
qemu
|
||||||
|
stratovirt
|
||||||
rootfs-image
|
rootfs-image
|
||||||
rootfs-initrd
|
rootfs-initrd
|
||||||
rootfs-initrd-mariner
|
rootfs-initrd-mariner
|
||||||
|
@ -102,3 +102,16 @@ overhead:
|
|||||||
scheduling:
|
scheduling:
|
||||||
nodeSelector:
|
nodeSelector:
|
||||||
katacontainers.io/kata-runtime: "true"
|
katacontainers.io/kata-runtime: "true"
|
||||||
|
---
|
||||||
|
kind: RuntimeClass
|
||||||
|
apiVersion: node.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: kata-stratovirt
|
||||||
|
handler: kata-stratovirt
|
||||||
|
overhead:
|
||||||
|
podFixed:
|
||||||
|
memory: "130Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
scheduling:
|
||||||
|
nodeSelector:
|
||||||
|
katacontainers.io/kata-runtime: "true"
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
kind: RuntimeClass
|
||||||
|
apiVersion: node.k8s.io/v1
|
||||||
|
metadata:
|
||||||
|
name: kata-stratovirt
|
||||||
|
handler: kata-stratovirt
|
||||||
|
overhead:
|
||||||
|
podFixed:
|
||||||
|
memory: "130Mi"
|
||||||
|
cpu: "250m"
|
||||||
|
scheduling:
|
||||||
|
nodeSelector:
|
||||||
|
katacontainers.io/kata-runtime: "true"
|
38
tools/packaging/static-build/stratovirt/build-static-stratovirt.sh
Executable file
38
tools/packaging/static-build/stratovirt/build-static-stratovirt.sh
Executable file
@ -0,0 +1,38 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
#
|
||||||
|
# Copyright (c) 2023 Huawei Technologies Co.,Ltd.
|
||||||
|
#
|
||||||
|
# SPDX-License-Identifier: Apache-2.0
|
||||||
|
|
||||||
|
set -o errexit
|
||||||
|
set -o nounset
|
||||||
|
set -o pipefail
|
||||||
|
|
||||||
|
ARCH=$(uname -m)
|
||||||
|
|
||||||
|
# Currently, StratoVirt only support x86_64 and aarch64.
|
||||||
|
[ "${ARCH}" != "x86_64" ] && [ "${ARCH}" != "aarch64" ] && exit
|
||||||
|
|
||||||
|
script_dir="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
||||||
|
source "${script_dir}/../../scripts/lib.sh"
|
||||||
|
|
||||||
|
info "Get stratovirt information from runtime versions.yaml"
|
||||||
|
stratovirt_url="${stratovirt_url:-}"
|
||||||
|
[ -n "$stratovirt_url" ] || stratovirt_url=$(get_from_kata_deps "assets.hypervisor.stratovirt.url")
|
||||||
|
[ -n "$stratovirt_url" ] || die "failed to get stratovirt url"
|
||||||
|
|
||||||
|
stratovirt_version="${stratovirt_version:-}"
|
||||||
|
[ -n "$stratovirt_version" ] || stratovirt_version=$(get_from_kata_deps "assets.hypervisor.stratovirt.version")
|
||||||
|
[ -n "$stratovirt_version" ] || die "failed to get stratovirt version"
|
||||||
|
|
||||||
|
pull_stratovirt_released_binary() {
|
||||||
|
file_name="stratovirt-static-${stratovirt_version##*v}-${ARCH}"
|
||||||
|
download_url="${stratovirt_url}/releases/download/${stratovirt_version}/${file_name}.tar.gz"
|
||||||
|
|
||||||
|
curl -L ${download_url} -o ${file_name}.tar.gz
|
||||||
|
mkdir -p static-stratovirt
|
||||||
|
tar zxvf ${file_name}.tar.gz -C static-stratovirt
|
||||||
|
}
|
||||||
|
|
||||||
|
pull_stratovirt_released_binary
|
||||||
|
|
@ -115,6 +115,11 @@ assets:
|
|||||||
url: "https://github.com/AMDESE/qemu"
|
url: "https://github.com/AMDESE/qemu"
|
||||||
tag: "3b6a2b6b7466f6dea53243900b7516c3f29027b7"
|
tag: "3b6a2b6b7466f6dea53243900b7516c3f29027b7"
|
||||||
|
|
||||||
|
stratovirt:
|
||||||
|
description: "StratoVirt is an lightweight opensource VMM"
|
||||||
|
url: "https://github.com/openeuler-mirror/stratovirt"
|
||||||
|
version: "v2.3.0"
|
||||||
|
|
||||||
image:
|
image:
|
||||||
description: |
|
description: |
|
||||||
Root filesystem disk image used to boot the guest virtual
|
Root filesystem disk image used to boot the guest virtual
|
||||||
|
Loading…
Reference in New Issue
Block a user