diff --git a/build/components/versions.yml b/build/components/versions.yml index cf2bde402c..6a20983d78 100644 --- a/build/components/versions.yml +++ b/build/components/versions.yml @@ -3,8 +3,10 @@ firmware: libvirt: v10.9.0 edk2: stable202411 core: - 3p-kubevirt: v1.6.2-v12n.5 - 3p-containerized-data-importer: v1.60.3-v12n.14 + #3p-kubevirt: v1.6.2-v12n.5 + #3p-containerized-data-importer: v1.60.3-v12n.14 + 3p-kubevirt: dvp/chore/add-heritage-label + 3p-containerized-data-importer: dvp/chore/add-heritage-label distribution: 2.8.3 package: acl: v2.3.1 diff --git a/images/virtualization-artifact/pkg/common/annotations/annotations.go b/images/virtualization-artifact/pkg/common/annotations/annotations.go index 420f530e5c..bd68e1eea6 100644 --- a/images/virtualization-artifact/pkg/common/annotations/annotations.go +++ b/images/virtualization-artifact/pkg/common/annotations/annotations.go @@ -180,6 +180,11 @@ const ( // QuotaDiscountMemory provides a constant for discount Memory from quota annotation. QuotaDiscountMemory = "resource-quota-overrides.deckhouse.io/discount-memory" + // HeritageLabel is the label to indicate Pod heritage. + HeritageLabel = "heritage" + // DeckhouseLabelValue is the value to indicate Pod is related to the deckhouse. + DeckhouseLabelValue = "deckhouse" + // InhibitNodeShutdownLabel is a label to prevent node shutdown is Pod with label is present. InhibitNodeShutdownLabel = "pod.deckhouse.io/inhibit-node-shutdown" diff --git a/images/virtualization-artifact/pkg/controller/bounder/bounder.go b/images/virtualization-artifact/pkg/controller/bounder/bounder.go index 4dffbcf623..bfe7270a8e 100644 --- a/images/virtualization-artifact/pkg/controller/bounder/bounder.go +++ b/images/virtualization-artifact/pkg/controller/bounder/bounder.go @@ -86,6 +86,9 @@ func (imp *Bounder) makeBounderPodSpec() (*corev1.Pod, error) { Annotations: map[string]string{ annotations.AnnCreatedBy: "yes", }, + Labels: map[string]string{ + annotations.HeritageLabel: annotations.DeckhouseLabelValue, + }, Finalizers: []string{ imp.PodSettings.Finalizer, }, diff --git a/images/virtualization-artifact/pkg/controller/importer/importer_pod.go b/images/virtualization-artifact/pkg/controller/importer/importer_pod.go index 2ba1faec67..859ae7ce82 100644 --- a/images/virtualization-artifact/pkg/controller/importer/importer_pod.go +++ b/images/virtualization-artifact/pkg/controller/importer/importer_pod.go @@ -122,6 +122,7 @@ func (imp *Importer) makeImporterPodSpec() (*corev1.Pod, error) { Name: imp.PodSettings.Name, Namespace: imp.PodSettings.Namespace, Labels: map[string]string{ + annotations.HeritageLabel: annotations.DeckhouseLabelValue, annotations.AppLabel: annotations.DVCRLabelValue, annotations.QuotaExcludeLabel: annotations.QuotaExcludeValue, }, diff --git a/images/virtualization-artifact/pkg/controller/uploader/uploader_pod.go b/images/virtualization-artifact/pkg/controller/uploader/uploader_pod.go index a6a9a96d7b..1d50a8e52f 100644 --- a/images/virtualization-artifact/pkg/controller/uploader/uploader_pod.go +++ b/images/virtualization-artifact/pkg/controller/uploader/uploader_pod.go @@ -95,6 +95,7 @@ func (p *Pod) makeSpec() (*corev1.Pod, error) { annotations.AnnCreatedBy: "yes", }, Labels: map[string]string{ + annotations.HeritageLabel: annotations.DeckhouseLabelValue, annotations.AppLabel: annotations.DVCRLabelValue, annotations.UploaderServiceLabel: p.PodSettings.ServiceName, annotations.QuotaExcludeLabel: annotations.QuotaExcludeValue, diff --git a/test/e2e/Taskfile.yaml b/test/e2e/Taskfile.yaml index 663e7bb90c..c3e58d77a2 100644 --- a/test/e2e/Taskfile.yaml +++ b/test/e2e/Taskfile.yaml @@ -60,7 +60,7 @@ tasks: {{if .TIMEOUT -}} --timeout={{ .TIMEOUT }} \ {{else -}} - --timeout=3h \ + --timeout=4h \ {{end -}} {{if .FOCUS -}} --focus "{{ .FOCUS }}" diff --git a/test/e2e/vm/volume_migration_storage_class_changed.go b/test/e2e/vm/volume_migration_storage_class_changed.go index 6c1f686407..270637850b 100644 --- a/test/e2e/vm/volume_migration_storage_class_changed.go +++ b/test/e2e/vm/volume_migration_storage_class_changed.go @@ -20,6 +20,7 @@ import ( "context" "fmt" "slices" + "strings" "time" . "github.com/onsi/ginkgo/v2" @@ -301,6 +302,20 @@ func getTargetStorageClass(f *framework.Framework, storageClass *storagev1.Stora if sc.Name == storageClass.Name { continue } + + // Ignore hdd-based storage classes for some developer clusters. + if strings.HasSuffix(sc.Name, "-hdd") { + GinkgoWriter.Printf("Skipping HDD-based storage class %s\n", sc.Name) + continue + } + // Temporarily disable NFS. + if sc.Provisioner == "nfs.csi.k8s.io" { + GinkgoWriter.Printf("Skipping NFS storage class %s\n", sc.Name) + continue + } + // TODO add storage class ignore with label. + // TODO: add support for allowedStorageClasses settings in ModuleConfig. + // TODO: Add support for storage classes using the local volume provisioner. // Temporarily disabled because the storage layer itself has stability problems. if sc.Provisioner == "local.csi.storage.deckhouse.io" {