From 39e8c842697c933f7d20c9c86a9781596ccde79e Mon Sep 17 00:00:00 2001 From: Pradipta Banerjee Date: Tue, 20 Jun 2023 11:49:12 +0530 Subject: [PATCH] runtime: Add support for key annotations to remote hyp In order to support different pod VM instance type via remote hypervisor implementation (cloud-api-adaptor), we need to pass machine_type, default_vcpus and default_memory annotations to cloud-api-adaptor. The cloud-api-adaptor then uses these annotations to spin up the appropriate cloud instance. Reference PR for cloud-api-adaptor https://github.com/confidential-containers/cloud-api-adaptor/pull/1088 Fixes: #7140 Signed-off-by: Pradipta Banerjee (based on commit 004f07f076830601102b141041b807c690e560cf) --- src/runtime/pkg/katautils/config.go | 2 ++ src/runtime/virtcontainers/remote.go | 5 +++++ 2 files changed, 7 insertions(+) diff --git a/src/runtime/pkg/katautils/config.go b/src/runtime/pkg/katautils/config.go index 46d89a41f8..f7782ed1f0 100644 --- a/src/runtime/pkg/katautils/config.go +++ b/src/runtime/pkg/katautils/config.go @@ -1268,6 +1268,8 @@ func newRemoteHypervisorConfig(h hypervisor) (vc.HypervisorConfig, error) { // No valid value so avoid to append block device to list in kata_agent.appendDevices BlockDeviceDriver: "dummy", + EnableAnnotations: h.EnableAnnotations, + GuestHookPath: h.guestHookPath(), }, nil } diff --git a/src/runtime/virtcontainers/remote.go b/src/runtime/virtcontainers/remote.go index f79a21f3ff..edb77cd953 100644 --- a/src/runtime/virtcontainers/remote.go +++ b/src/runtime/virtcontainers/remote.go @@ -7,11 +7,13 @@ import ( "context" "fmt" "os" + "strconv" "time" cri "github.com/containerd/containerd/pkg/cri/annotations" persistapi "github.com/kata-containers/kata-containers/src/runtime/pkg/hypervisors" pb "github.com/kata-containers/kata-containers/src/runtime/protocols/hypervisor" + hypannotations "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/pkg/annotations" "github.com/kata-containers/kata-containers/src/runtime/virtcontainers/types" "github.com/pkg/errors" "github.com/sirupsen/logrus" @@ -72,6 +74,9 @@ func (rh *remoteHypervisor) CreateVM(ctx context.Context, id string, network Net annotations := map[string]string{} annotations[cri.SandboxName] = hypervisorConfig.SandboxName annotations[cri.SandboxNamespace] = hypervisorConfig.SandboxNamespace + annotations[hypannotations.MachineType] = hypervisorConfig.HypervisorMachineType + annotations[hypannotations.DefaultVCPUs] = strconv.FormatUint(uint64(hypervisorConfig.NumVCPUs()), 10) + annotations[hypannotations.DefaultMemory] = strconv.FormatUint(uint64(hypervisorConfig.MemorySize), 10) req := &pb.CreateVMRequest{ Id: id,