mirror of
https://github.com/kata-containers/kata-containers.git
synced 2025-09-16 14:28:35 +00:00
runtime: Re-added hypervisor annotations
- Add support for setting the sandbox name and namespace in the hypervisor config, which is needed in the remote hypervisor implementation to get the pod name and namespace for the remote pod create request Fixes: #7588 Co-authored-by: Pradipta Banerjee <pradipta.banerjee@gmail.com> Co-authored-by: Yohei Ueda <yohei@jp.ibm.com> Signed-off-by: stevenhorsman <steven@uk.ibm.com>
This commit is contained in:
@@ -25,6 +25,8 @@ import (
|
|||||||
|
|
||||||
v1 "github.com/containerd/cgroups/stats/v1"
|
v1 "github.com/containerd/cgroups/stats/v1"
|
||||||
v2 "github.com/containerd/cgroups/v2/stats"
|
v2 "github.com/containerd/cgroups/v2/stats"
|
||||||
|
cri "github.com/containerd/containerd/pkg/cri/annotations"
|
||||||
|
crio "github.com/containers/podman/v4/pkg/annotations"
|
||||||
specs "github.com/opencontainers/runtime-spec/specs-go"
|
specs "github.com/opencontainers/runtime-spec/specs-go"
|
||||||
"github.com/pkg/errors"
|
"github.com/pkg/errors"
|
||||||
"github.com/sirupsen/logrus"
|
"github.com/sirupsen/logrus"
|
||||||
@@ -609,6 +611,8 @@ func newSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor
|
|||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setHypervisorConfigAnnotations(&sandboxConfig)
|
||||||
|
|
||||||
coldPlugVFIO, err := s.coldOrHotPlugVFIO(&sandboxConfig)
|
coldPlugVFIO, err := s.coldOrHotPlugVFIO(&sandboxConfig)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -638,6 +642,23 @@ func newSandbox(ctx context.Context, sandboxConfig SandboxConfig, factory Factor
|
|||||||
return s, nil
|
return s, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func setHypervisorConfigAnnotations(sandboxConfig *SandboxConfig) {
|
||||||
|
if len(sandboxConfig.Containers) > 0 {
|
||||||
|
// These values are required by remote hypervisor
|
||||||
|
for _, a := range []string{cri.SandboxName, crio.SandboxName} {
|
||||||
|
if value, ok := sandboxConfig.Containers[0].Annotations[a]; ok {
|
||||||
|
sandboxConfig.HypervisorConfig.SandboxName = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, a := range []string{cri.SandboxNamespace, crio.Namespace} {
|
||||||
|
if value, ok := sandboxConfig.Containers[0].Annotations[a]; ok {
|
||||||
|
sandboxConfig.HypervisorConfig.SandboxNamespace = value
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func (s *Sandbox) coldOrHotPlugVFIO(sandboxConfig *SandboxConfig) (bool, error) {
|
func (s *Sandbox) coldOrHotPlugVFIO(sandboxConfig *SandboxConfig) (bool, error) {
|
||||||
// If we have a confidential guest we need to cold-plug the PCIe VFIO devices
|
// If we have a confidential guest we need to cold-plug the PCIe VFIO devices
|
||||||
// until we have TDISP/IDE PCIe support.
|
// until we have TDISP/IDE PCIe support.
|
||||||
|
Reference in New Issue
Block a user