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 <pradipta.banerjee@gmail.com>
This commit is contained in:
Pradipta Banerjee
2023-06-20 11:49:12 +05:30
parent 128f0282e1
commit 004f07f076
2 changed files with 6 additions and 0 deletions

View File

@@ -1147,6 +1147,7 @@ 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,
}, nil
}

View File

@@ -8,12 +8,14 @@ import (
"fmt"
"net"
"os"
"strconv"
"time"
cri "github.com/containerd/containerd/pkg/cri/annotations"
"github.com/containerd/ttrpc"
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"
@@ -74,6 +76,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,