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-snp-experimental
|
||||
- qemu-tdx-experimental
|
||||
- stratovirt
|
||||
- rootfs-image
|
||||
- rootfs-image-tdx
|
||||
- rootfs-initrd
|
||||
|
@ -33,6 +33,7 @@ jobs:
|
||||
- kernel-dragonball-experimental
|
||||
- nydus
|
||||
- qemu
|
||||
- stratovirt
|
||||
- rootfs-image
|
||||
- rootfs-initrd
|
||||
- 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
|
||||
value: "false"
|
||||
- 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
|
||||
value: "qemu"
|
||||
- name: CREATE_RUNTIMECLASSES
|
||||
|
@ -32,7 +32,7 @@ spec:
|
||||
- name: DEBUG
|
||||
value: "false"
|
||||
- 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
|
||||
value: "qemu"
|
||||
- name: CREATE_RUNTIMECLASSES
|
||||
|
@ -35,6 +35,7 @@ all: serial-targets \
|
||||
qemu-snp-experimental-tarball \
|
||||
qemu-tarball \
|
||||
qemu-tdx-experimental-tarball \
|
||||
stratovirt-tarball \
|
||||
shim-v2-tarball \
|
||||
tdvf-tarball \
|
||||
virtiofsd-tarball
|
||||
@ -115,6 +116,9 @@ qemu-tarball:
|
||||
qemu-tdx-experimental-tarball:
|
||||
${MAKE} $@-build
|
||||
|
||||
stratovirt-tarball:
|
||||
${MAKE} $@-build
|
||||
|
||||
rootfs-image-tarball:
|
||||
${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 qemu_builder="${static_build_dir}/qemu/build-static-qemu.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 virtiofsd_builder="${static_build_dir}/virtiofsd/build.sh"
|
||||
readonly nydus_builder="${static_build_dir}/nydus/build.sh"
|
||||
@ -104,6 +105,7 @@ options:
|
||||
qemu
|
||||
qemu-snp-experimental
|
||||
qemu-tdx-experimental
|
||||
stratovirt
|
||||
rootfs-image
|
||||
rootfs-image-tdx
|
||||
rootfs-initrd
|
||||
@ -515,6 +517,28 @@ install_clh_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_virtiofsd() {
|
||||
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_snp_experimental
|
||||
install_qemu_tdx_experimental
|
||||
install_stratovirt
|
||||
install_runk
|
||||
install_shimv2
|
||||
install_tdvf
|
||||
@ -791,6 +816,8 @@ handle_build() {
|
||||
|
||||
qemu-tdx-experimental) install_qemu_tdx_experimental ;;
|
||||
|
||||
stratovirt) install_stratovirt ;;
|
||||
|
||||
rootfs-image) install_image ;;
|
||||
|
||||
rootfs-image-tdx) install_image_tdx ;;
|
||||
@ -871,6 +898,7 @@ main() {
|
||||
log-parser-rs
|
||||
nydus
|
||||
qemu
|
||||
stratovirt
|
||||
rootfs-image
|
||||
rootfs-initrd
|
||||
rootfs-initrd-mariner
|
||||
|
@ -102,3 +102,16 @@ overhead:
|
||||
scheduling:
|
||||
nodeSelector:
|
||||
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"
|
||||
tag: "3b6a2b6b7466f6dea53243900b7516c3f29027b7"
|
||||
|
||||
stratovirt:
|
||||
description: "StratoVirt is an lightweight opensource VMM"
|
||||
url: "https://github.com/openeuler-mirror/stratovirt"
|
||||
version: "v2.3.0"
|
||||
|
||||
image:
|
||||
description: |
|
||||
Root filesystem disk image used to boot the guest virtual
|
||||
|
Loading…
Reference in New Issue
Block a user