@@ -2,6 +2,7 @@ package tests
22
33import (
44 "context"
5+ "encoding/json"
56 "fmt"
67 "strings"
78 "time"
@@ -10,13 +11,15 @@ import (
1011 "k8s.io/utils/strings/slices"
1112 "kubevirt.io/client-go/kubecli"
1213 "kubevirt.io/kubevirt-velero-plugin/tests/framework"
14+ "kubevirt.io/kubevirt-velero-plugin/tests/patch"
1315
1416 . "github.com/onsi/ginkgo/v2"
1517 . "github.com/onsi/gomega"
1618 velerov1api "github.com/vmware-tanzu/velero/pkg/apis/velero/v1"
1719 v1 "k8s.io/api/core/v1"
1820 apierrs "k8s.io/apimachinery/pkg/api/errors"
1921 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
22+ "k8s.io/apimachinery/pkg/types"
2023 kvv1 "kubevirt.io/api/core/v1"
2124 cdiv1 "kubevirt.io/containerized-data-importer-api/pkg/apis/core/v1beta1"
2225 . "kubevirt.io/kubevirt-velero-plugin/tests/framework/matcher"
@@ -2651,8 +2654,14 @@ var _ = Describe("Resource excludes", func() {
26512654 retryOnceOnErr (
26522655 func () error {
26532656 pod := framework .FindLauncherPod (f .K8sClient , f .Namespace .Name , vmName )
2654- pod .SetLabels (addExcludeLabel (pod .GetLabels ()))
2655- _ , err := f .K8sClient .CoreV1 ().Pods (f .Namespace .Name ).Update (context .TODO (), & pod , metav1.UpdateOptions {})
2657+ newLabels := addExcludeLabel (pod .GetLabels ())
2658+ patchData , err := patch .New (
2659+ patch .WithReplace ("/metadata/labels" , newLabels ),
2660+ ).GeneratePayload ()
2661+ if err != nil {
2662+ return err
2663+ }
2664+ _ , err = f .K8sClient .CoreV1 ().Pods (f .Namespace .Name ).Patch (context .TODO (), pod .Name , types .JSONPatchType , patchData , metav1.PatchOptions {})
26562665 return err
26572666 }).Should (BeNil ())
26582667 }
@@ -3465,7 +3474,13 @@ func updateVm(kvClient kubecli.KubevirtClient, namespace string, name string,
34653474 }
34663475 vm = update (vm )
34673476
3468- _ , err = kvClient .VirtualMachine (namespace ).Update (context .Background (), vm , metav1.UpdateOptions {})
3477+ patchData , err := patch .New (
3478+ patch .WithReplace ("/metadata/labels" , vm .Labels ),
3479+ ).GeneratePayload ()
3480+ if err != nil {
3481+ return err
3482+ }
3483+ _ , err = kvClient .VirtualMachine (namespace ).Patch (context .Background (), vm .Name , types .JSONPatchType , patchData , metav1.PatchOptions {})
34693484 return err
34703485 }
34713486}
@@ -3479,7 +3494,13 @@ func updateVmi(kvClient kubecli.KubevirtClient, namespace string, name string,
34793494 }
34803495 vmi = update (vmi )
34813496
3482- _ , err = kvClient .VirtualMachineInstance (namespace ).Update (context .Background (), vmi , metav1.UpdateOptions {})
3497+ patchData , err := patch .New (
3498+ patch .WithReplace ("/metadata/labels" , vmi .Labels ),
3499+ ).GeneratePayload ()
3500+ if err != nil {
3501+ return err
3502+ }
3503+ _ , err = kvClient .VirtualMachineInstance (namespace ).Patch (context .Background (), vmi .Name , types .JSONPatchType , patchData , metav1.PatchOptions {})
34833504 return err
34843505 }
34853506}
@@ -3493,7 +3514,13 @@ func updatePvc(client *kubernetes.Clientset, namespace string, name string,
34933514 }
34943515 pvc = update (pvc )
34953516
3496- _ , err = client .CoreV1 ().PersistentVolumeClaims (namespace ).Update (context .TODO (), pvc , metav1.UpdateOptions {})
3517+ patchData , err := patch .New (
3518+ patch .WithReplace ("/metadata/labels" , pvc .Labels ),
3519+ ).GeneratePayload ()
3520+ if err != nil {
3521+ return err
3522+ }
3523+ _ , err = client .CoreV1 ().PersistentVolumeClaims (namespace ).Patch (context .TODO (), pvc .Name , types .JSONPatchType , patchData , metav1.PatchOptions {})
34973524 return err
34983525 }
34993526}
@@ -3506,7 +3533,13 @@ func updateDataVolume(kvClient kubecli.KubevirtClient, namespace string, name st
35063533 }
35073534 dv = update (dv )
35083535
3509- _ , err = kvClient .CdiClient ().CdiV1beta1 ().DataVolumes (namespace ).Update (context .TODO (), dv , metav1.UpdateOptions {})
3536+ patchData , err := patch .New (
3537+ patch .WithReplace ("/metadata/labels" , dv .Labels ),
3538+ ).GeneratePayload ()
3539+ if err != nil {
3540+ return err
3541+ }
3542+ _ , err = kvClient .CdiClient ().CdiV1beta1 ().DataVolumes (namespace ).Patch (context .TODO (), dv .Name , types .JSONPatchType , patchData , metav1.PatchOptions {})
35103543 return err
35113544 }
35123545}
0 commit comments