services

package
v0.54.0-rc.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Jun 1, 2022 License: Apache-2.0 Imports: 31 Imported by: 10

Documentation

Index

Constants

View Source
const (
	CAP_NET_BIND_SERVICE = "NET_BIND_SERVICE"
	CAP_NET_RAW          = "NET_RAW"
	CAP_SYS_ADMIN        = "SYS_ADMIN"
	CAP_SYS_NICE         = "SYS_NICE"
	CAP_SYS_PTRACE       = "SYS_PTRACE"
)
View Source
const (
	VirtLauncherMonitorOverhead = "25Mi" // The `ps` RSS for virt-launcher-monitor
	VirtLauncherOverhead        = "75Mi" // The `ps` RSS for the virt-launcher process
	VirtlogdOverhead            = "17Mi" // The `ps` RSS for virtlogd
	LibvirtdOverhead            = "33Mi" // The `ps` RSS for libvirtd
	QemuOverhead                = "30Mi" // The `ps` RSS for qemu, minus the RAM of its (stressed) guest, minus the virtual page table
)
View Source
const ENV_VAR_LIBVIRT_DEBUG_LOGS = "LIBVIRT_DEBUG_LOGS"
View Source
const ENV_VAR_POD_NAME = "POD_NAME"
View Source
const ENV_VAR_VIRTIOFSD_DEBUG_LOGS = "VIRTIOFSD_DEBUG_LOGS"
View Source
const ENV_VAR_VIRT_LAUNCHER_LOG_VERBOSITY = "VIRT_LAUNCHER_LOG_VERBOSITY"
View Source
const EXT_LOG_VERBOSITY_THRESHOLD = 5

extensive log verbosity threshold after which libvirt debug logs will be enabled

View Source
const ISTIO_KUBEVIRT_ANNOTATION = "traffic.sidecar.istio.io/kubevirtInterfaces"

Istio list of virtual interfaces whose inbound traffic (from VM) will be treated as outbound traffic in envoy

View Source
const IntelVendorName = "Intel"
View Source
const KvmDevice = "devices.kubevirt.io/kvm"
View Source
const LibvirtStartupDelay = 10

LibvirtStartupDelay is added to custom liveness and readiness probes initial delay value. Libvirt needs roughly 10 seconds to start.

View Source
const MULTUS_DEFAULT_NETWORK_CNI_ANNOTATION = "v1.multus-cni.io/default-network"
View Source
const MULTUS_RESOURCE_NAME_ANNOTATION = "k8s.v1.cni.cncf.io/resourceName"
View Source
const MultusNetworksAnnotation = "k8s.v1.cni.cncf.io/networks"
View Source
const NFD_CPU_FEATURE_PREFIX = "cpu-feature.node.kubevirt.io/"
View Source
const NFD_CPU_MODEL_PREFIX = "cpu-model.node.kubevirt.io/"

These perfixes for node feature discovery, are used in a NodeSelector on the pod to match a VirtualMachineInstance CPU model(Family) and/or features to nodes that support them.

View Source
const NFD_KVM_INFO_PREFIX = "hyperv.node.kubevirt.io/"
View Source
const SevDevice = "devices.kubevirt.io/sev"
View Source
const TunDevice = "devices.kubevirt.io/tun"
View Source
const VELERO_POSTBACKUP_HOOK_COMMAND_ANNOTATION = "post.hook.backup.velero.io/command"
View Source
const VELERO_POSTBACKUP_HOOK_CONTAINER_ANNOTATION = "post.hook.backup.velero.io/container"
View Source
const VELERO_PREBACKUP_HOOK_COMMAND_ANNOTATION = "pre.hook.backup.velero.io/command"
View Source
const VELERO_PREBACKUP_HOOK_CONTAINER_ANNOTATION = "pre.hook.backup.velero.io/container"
View Source
const VhostNetDevice = "devices.kubevirt.io/vhost-net"

Variables

This section is empty.

Functions

func CPUFeatureLabelsFromCPUFeatures added in v0.15.0

func CPUFeatureLabelsFromCPUFeatures(vmi *v1.VirtualMachineInstance) []string

func CPUModelLabelFromCPUModel added in v0.11.1

func CPUModelLabelFromCPUModel(vmi *v1.VirtualMachineInstance) (label string, err error)

func GetMemoryOverhead added in v0.47.0

func GetMemoryOverhead(vmi *v1.VirtualMachineInstance, cpuArch string) *resource.Quantity

GetMemoryOverhead computes the estimation of total memory needed for the domain to operate properly. This includes the memory needed for the guest and memory for Qemu and OS overhead.

The return value is overhead memory quantity

Note: This is the best estimation we were able to come up with

and is still not 100% accurate

func HaveContainerDiskVolume added in v0.36.0

func HaveContainerDiskVolume(volumes []v1.Volume) bool

func HaveMasqueradeInterface added in v0.16.0

func HaveMasqueradeInterface(interfaces []v1.Interface) bool

func SetNodeAffinityForForbiddenFeaturePolicy added in v0.15.0

func SetNodeAffinityForForbiddenFeaturePolicy(vmi *v1.VirtualMachineInstance, pod *k8sv1.Pod)

Types

type ContainerSpecRenderer added in v0.54.0

type ContainerSpecRenderer struct {
	// contains filtered or unexported fields
}

func NewContainerSpecRenderer added in v0.54.0

func NewContainerSpecRenderer(containerName string, launcherImg string, imgPullPolicy k8sv1.PullPolicy, opts ...Option) *ContainerSpecRenderer

func (*ContainerSpecRenderer) Render added in v0.54.0

func (csr *ContainerSpecRenderer) Render(cmd []string) k8sv1.Container

type DataVolumeNotFoundError added in v0.47.0

type DataVolumeNotFoundError struct {
	Reason string
}

func (DataVolumeNotFoundError) Error added in v0.47.0

func (e DataVolumeNotFoundError) Error() string

type Option added in v0.54.0

type Option func(*ContainerSpecRenderer)

func WithArgs added in v0.54.0

func WithArgs(args []string) Option

func WithCapabilities added in v0.54.0

func WithCapabilities(vmi *v1.VirtualMachineInstance) Option

func WithLivelinessProbe added in v0.54.0

func WithLivelinessProbe(vmi *v1.VirtualMachineInstance) Option

func WithNonRoot added in v0.54.0

func WithNonRoot(userID int64) Option

func WithPorts added in v0.54.0

func WithPorts(vmi *v1.VirtualMachineInstance) Option

func WithPrivileged added in v0.54.0

func WithPrivileged() Option

func WithReadinessProbe added in v0.54.0

func WithReadinessProbe(vmi *v1.VirtualMachineInstance) Option

func WithResourceRequirements added in v0.54.0

func WithResourceRequirements(resources k8sv1.ResourceRequirements) Option

func WithVolumeDevices added in v0.54.0

func WithVolumeDevices(devices ...k8sv1.VolumeDevice) Option

func WithVolumeMounts added in v0.54.0

func WithVolumeMounts(mounts ...k8sv1.VolumeMount) Option

type PvcNotFoundError added in v0.9.0

type PvcNotFoundError struct {
	Reason string
}

func (PvcNotFoundError) Error added in v0.47.0

func (e PvcNotFoundError) Error() string

type TemplateService

type TemplateService interface {
	RenderMigrationManifest(vmi *v1.VirtualMachineInstance, sourcePod *k8sv1.Pod) (*k8sv1.Pod, error)
	RenderLaunchManifest(vmi *v1.VirtualMachineInstance) (*k8sv1.Pod, error)
	RenderHotplugAttachmentPodTemplate(volume []*v1.Volume, ownerPod *k8sv1.Pod, vmi *v1.VirtualMachineInstance, claimMap map[string]*k8sv1.PersistentVolumeClaim, tempPod bool) (*k8sv1.Pod, error)
	RenderHotplugAttachmentTriggerPodTemplate(volume *v1.Volume, ownerPod *k8sv1.Pod, vmi *v1.VirtualMachineInstance, pvcName string, isBlock bool, tempPod bool) (*k8sv1.Pod, error)
	RenderLaunchManifestNoVm(*v1.VirtualMachineInstance) (*k8sv1.Pod, error)
	GetLauncherImage() string
	IsPPC64() bool
	IsARM64() bool
}

func NewTemplateService

func NewTemplateService(launcherImage string,
	launcherQemuTimeout int,
	virtShareDir string,
	virtLibDir string,
	ephemeralDiskDir string,
	containerDiskDir string,
	hotplugDiskDir string,
	imagePullSecret string,
	persistentVolumeClaimCache cache.Store,
	virtClient kubecli.KubevirtClient,
	clusterConfig *virtconfig.ClusterConfig,
	launcherSubGid int64) TemplateService

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL