diff --git a/.werf/defines/images.tmpl b/.werf/defines/images.tmpl index 86f19cf68b..51152c5e52 100644 --- a/.werf/defines/images.tmpl +++ b/.werf/defines/images.tmpl @@ -46,4 +46,4 @@ Result: {{- end }} {{- end -}} {{- end }} -{{ end }} \ No newline at end of file +{{ end }} diff --git a/build/components/versions.yml b/build/components/versions.yml index 14060aa565..9b97376680 100644 --- a/build/components/versions.yml +++ b/build/components/versions.yml @@ -3,8 +3,8 @@ firmware: libvirt: v10.9.0 edk2: stable202411 core: - 3p-kubevirt: v1.3.1-v12n.11 - 3p-containerized-data-importer: v1.60.3-v12n.9 + 3p-kubevirt: v1.3.1-v12n.12 + 3p-containerized-data-importer: v1.60.3-v12n.10 distribution: 2.8.3 package: acl: v2.3.1 diff --git a/images/virtualization-artifact/pkg/audit/events/vm/vm_control.go b/images/virtualization-artifact/pkg/audit/events/vm/vm_control.go index a58c3fe818..4f5ef8abe6 100644 --- a/images/virtualization-artifact/pkg/audit/events/vm/vm_control.go +++ b/images/virtualization-artifact/pkg/audit/events/vm/vm_control.go @@ -25,6 +25,7 @@ import ( "github.com/deckhouse/deckhouse/pkg/log" "github.com/deckhouse/virtualization-controller/pkg/audit/events" "github.com/deckhouse/virtualization-controller/pkg/audit/util" + vmutil "github.com/deckhouse/virtualization-controller/pkg/common/vm" ) func NewVMControl(options events.EventLoggerOptions) *VMControl { @@ -73,7 +74,7 @@ func (m *VMControl) Fill() error { var terminatedStatuses string for _, status := range pod.Status.ContainerStatuses { - if status.Name == "compute" && status.State.Terminated != nil { + if vmutil.IsComputeContainer(status.Name) && status.State.Terminated != nil { terminatedStatuses = status.State.Terminated.Message } } diff --git a/images/virtualization-artifact/pkg/audit/events/vm/vm_control_test.go b/images/virtualization-artifact/pkg/audit/events/vm/vm_control_test.go index 87e81d9744..8c41e18abf 100644 --- a/images/virtualization-artifact/pkg/audit/events/vm/vm_control_test.go +++ b/images/virtualization-artifact/pkg/audit/events/vm/vm_control_test.go @@ -86,7 +86,7 @@ var _ = Describe("VMOP Events", func() { Spec: corev1.PodSpec{ Containers: []corev1.Container{ { - Name: "compute", + Name: "d8v-compute", Image: "test-image", }, }, @@ -95,7 +95,7 @@ var _ = Describe("VMOP Events", func() { Status: corev1.PodStatus{ ContainerStatuses: []corev1.ContainerStatus{ { - Name: "compute", + Name: "d8v-compute", State: corev1.ContainerState{Terminated: &corev1.ContainerStateTerminated{Message: "guest-shutdown"}}, }, }, diff --git a/images/virtualization-artifact/pkg/common/consts.go b/images/virtualization-artifact/pkg/common/consts.go index 8aedc71927..1a78a19bf3 100644 --- a/images/virtualization-artifact/pkg/common/consts.go +++ b/images/virtualization-artifact/pkg/common/consts.go @@ -23,11 +23,11 @@ const ( OwnerUID = "OWNER_UID" // BounderContainerName provides a constant to use as a name for bounder Container - BounderContainerName = "bounder" + BounderContainerName = "d8v-dvcr-bounder" // ImporterContainerName provides a constant to use as a name for importer Container - ImporterContainerName = "importer" + ImporterContainerName = "d8v-dvcr-importer" // UploaderContainerName provides a constant to use as a name for uploader Container - UploaderContainerName = "uploader" + UploaderContainerName = "d8v-dvcr-uploader" // UploaderPortName provides a constant to use as a port name for uploader Service UploaderPortName = "uploader" // UploaderPort provides a constant to use as a port for uploader Service diff --git a/images/virtualization-artifact/pkg/common/vm/vm.go b/images/virtualization-artifact/pkg/common/vm/vm.go index 4eeca7b6ce..d246617be7 100644 --- a/images/virtualization-artifact/pkg/common/vm/vm.go +++ b/images/virtualization-artifact/pkg/common/vm/vm.go @@ -17,9 +17,15 @@ limitations under the License. package vm import ( + "strings" + virtv2 "github.com/deckhouse/virtualization/api/core/v1alpha2" ) +// VMContainerNameSuffix - a name suffix for container with virt-launcher, libvirt and qemu processes. +// Container name is "d8v-compute", but previous versions may have "compute" container. +const VMContainerNameSuffix = "compute" + // CalculateCoresAndSockets calculates the number of sockets and cores per socket needed to achieve // the desired total number of CPU cores. // The function tries to minimize the number of sockets while ensuring the desired core count. @@ -59,3 +65,7 @@ func ApprovalMode(vm *virtv2.VirtualMachine) virtv2.RestartApprovalMode { } return vm.Spec.Disruptions.RestartApprovalMode } + +func IsComputeContainer(name string) bool { + return strings.HasSuffix(name, VMContainerNameSuffix) +} diff --git a/images/virtualization-artifact/pkg/controller/powerstate/shutdown_reason.go b/images/virtualization-artifact/pkg/controller/powerstate/shutdown_reason.go index a06fec4d32..cbc49ae3bc 100644 --- a/images/virtualization-artifact/pkg/controller/powerstate/shutdown_reason.go +++ b/images/virtualization-artifact/pkg/controller/powerstate/shutdown_reason.go @@ -22,14 +22,13 @@ import ( corev1 "k8s.io/api/core/v1" kvv1 "kubevirt.io/api/core/v1" + + vmutil "github.com/deckhouse/virtualization-controller/pkg/common/vm" ) type GuestSignalReason string const ( - // DefaultVMContainerName - a container name with virt-launcher, libvirt and qemu processes. - DefaultVMContainerName = "compute" - // GuestResetReason - a reboot command was issued from inside the VM. GuestResetReason GuestSignalReason = "guest-reset" @@ -65,10 +64,9 @@ func ShutdownReason(kvvmi *kvv1.VirtualMachineInstance, kvPods *corev1.PodList) return ShutdownInfo{} } - // Extract termination mesage from the "compute" container. + // Extract termination message from the container with VM. for _, contStatus := range recentPod.Status.ContainerStatuses { - // "compute" is a default container name for VM Pod. - if contStatus.Name != DefaultVMContainerName { + if !vmutil.IsComputeContainer(contStatus.Name) { continue } msg := "" diff --git a/images/virtualization-artifact/pkg/controller/vm/internal/statistic.go b/images/virtualization-artifact/pkg/controller/vm/internal/statistic.go index 4c4a4e672b..15d0e293ef 100644 --- a/images/virtualization-artifact/pkg/controller/vm/internal/statistic.go +++ b/images/virtualization-artifact/pkg/controller/vm/internal/statistic.go @@ -125,7 +125,7 @@ func (h *StatisticHandler) syncResources(changed *virtv2.VirtualMachine, } var ctr corev1.Container for _, container := range pod.Spec.Containers { - if container.Name == "compute" { + if vm.IsComputeContainer(container.Name) { ctr = container } } diff --git a/images/virtualization-artifact/pkg/controller/vm/internal/statistic_test.go b/images/virtualization-artifact/pkg/controller/vm/internal/statistic_test.go index 05a0340518..a68885634a 100644 --- a/images/virtualization-artifact/pkg/controller/vm/internal/statistic_test.go +++ b/images/virtualization-artifact/pkg/controller/vm/internal/statistic_test.go @@ -89,7 +89,7 @@ var _ = Describe("TestStatisticHandler", func() { NodeName: nodeName, Containers: []corev1.Container{ { - Name: "compute", + Name: "d8v-compute", Resources: corev1.ResourceRequirements{ Requests: corev1.ResourceList{ corev1.ResourceCPU: resource.MustParse(requestCPU),