From f03e73bfc243319f0bcc08c2d2f4b778cfd618af Mon Sep 17 00:00:00 2001 From: Ming Date: Mon, 15 May 2023 01:51:52 +0000 Subject: [PATCH] Fix PluginConfigLabelSelector bugs Signed-off-by: Ming --- pkg/plugin/framework/common/plugin_config.go | 2 +- .../framework/common/plugin_config_test.go | 9 +++-- pkg/restore/change_image_name_action_test.go | 12 +++---- pkg/restore/change_pvc_node_selector_test.go | 12 +++---- .../change_storageclass_action_test.go | 36 +++++++++---------- 5 files changed, 35 insertions(+), 36 deletions(-) diff --git a/pkg/plugin/framework/common/plugin_config.go b/pkg/plugin/framework/common/plugin_config.go index f2cb133ec..58f9bafc6 100644 --- a/pkg/plugin/framework/common/plugin_config.go +++ b/pkg/plugin/framework/common/plugin_config.go @@ -27,7 +27,7 @@ import ( ) func PluginConfigLabelSelector(kind PluginKind, name string) string { - return fmt.Sprintf("velero.io/plugin-config=true,%s=%s", name, kind) + return fmt.Sprintf("velero.io/plugin-config,%s=%s", name, kind) } func GetPluginConfig(kind PluginKind, name string, client corev1client.ConfigMapInterface) (*corev1.ConfigMap, error) { diff --git a/pkg/plugin/framework/common/plugin_config_test.go b/pkg/plugin/framework/common/plugin_config_test.go index 107ff9591..3a69e1ef0 100644 --- a/pkg/plugin/framework/common/plugin_config_test.go +++ b/pkg/plugin/framework/common/plugin_config_test.go @@ -22,7 +22,6 @@ import ( corev1 "k8s.io/api/core/v1" metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" - "k8s.io/apimachinery/pkg/labels" "k8s.io/apimachinery/pkg/runtime" "k8s.io/client-go/kubernetes/fake" @@ -35,7 +34,7 @@ func TestGetPluginConfig(t *testing.T) { name string objects []runtime.Object } - pluginLabelsSet, _ := labels.ConvertSelectorToLabelsMap(PluginConfigLabelSelector(PluginKindRestoreItemAction, "foo")) + pluginLabelsMap := map[string]string{"velero.io/plugin-config": "", "foo": "RestoreItemAction"} testConfigMap := &corev1.ConfigMap{ TypeMeta: metav1.TypeMeta{ Kind: "ConfigMap", @@ -43,7 +42,7 @@ func TestGetPluginConfig(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "foo-config", Namespace: velerov1.DefaultNamespace, - Labels: pluginLabelsSet, + Labels: pluginLabelsMap, }, } tests := []struct { @@ -75,7 +74,7 @@ func TestGetPluginConfig(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "foo-config", Namespace: velerov1.DefaultNamespace, - Labels: pluginLabelsSet, + Labels: pluginLabelsMap, }, }, &corev1.ConfigMap{ @@ -85,7 +84,7 @@ func TestGetPluginConfig(t *testing.T) { ObjectMeta: metav1.ObjectMeta{ Name: "foo-config-duplicate", Namespace: velerov1.DefaultNamespace, - Labels: pluginLabelsSet, + Labels: pluginLabelsMap, }, }, }, diff --git a/pkg/restore/change_image_name_action_test.go b/pkg/restore/change_image_name_action_test.go index cc2c8ff66..d851e7c0d 100644 --- a/pkg/restore/change_image_name_action_test.go +++ b/pkg/restore/change_image_name_action_test.go @@ -55,7 +55,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "1.1.1.1:5000/abc:test", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("case1", "1.1.1.1:5000 , 2.2.2.2:3000"). Result(), freshedImageName: "2.2.2.2:3000/abc:test", @@ -70,7 +70,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "1.1.1.1:5000/abc:test", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("specific", "1.1.1.1:5000,2.2.2.2:3000"). Result(), freshedImageName: "2.2.2.2:3000/abc:test", @@ -85,7 +85,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "1.1.1.1:5000/abc:test", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("specific", "abc:test,myproject:latest"). Result(), freshedImageName: "1.1.1.1:5000/myproject:latest", @@ -100,7 +100,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "1.1.1.1:5000/abc:test", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("specific", "5000,3333"). Result(), freshedImageName: "1.1.1.1:5000/abc:test", @@ -115,7 +115,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "1.1.1.1:5000/abc:test", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("specific", "test,latest"). Result(), freshedImageName: "1.1.1.1:5000/abc:test", @@ -130,7 +130,7 @@ func TestChangeImageRepositoryActionExecute(t *testing.T) { Image: "dev/image1:dev", }).Result(), configMap: builder.ForConfigMap("velero", "change-image-name"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-image-name", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-image-name", "RestoreItemAction")). Data("specific", "dev/,test/"). Result(), freshedImageName: "dev/image1:dev", diff --git a/pkg/restore/change_pvc_node_selector_test.go b/pkg/restore/change_pvc_node_selector_test.go index faca154ae..7cfbd170c 100644 --- a/pkg/restore/change_pvc_node_selector_test.go +++ b/pkg/restore/change_pvc_node_selector_test.go @@ -57,7 +57,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { builder.WithAnnotations("volume.kubernetes.io/selected-node", "source-node"), ).Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-pvc-node-selector", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-pvc-node-selector", "RestoreItemAction")). Data("source-node", "dest-node"). Result(), newNode: builder.ForNode("dest-node").Result(), @@ -73,7 +73,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { builder.WithAnnotations("volume.kubernetes.io/selected-node", "source-node"), ).Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/some-other-plugin", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/some-other-plugin", "RestoreItemAction")). Data("source-noed", "dest-node"). Result(), want: builder.ForPersistentVolumeClaim("source-ns", "pvc-1").Result(), @@ -85,7 +85,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { builder.WithAnnotations("volume.kubernetes.io/selected-node", "source-node"), ).Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-pvc-node-selector", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-pvc-node-selector", "RestoreItemAction")). Result(), want: builder.ForPersistentVolumeClaim("source-ns", "pvc-1").Result(), }, @@ -96,7 +96,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { builder.WithAnnotations("volume.kubernetes.io/selected-node", "source-node"), ).Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-pvc-node-selector", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-pvc-node-selector", "RestoreItemAction")). Result(), // MAYANK TODO node: builder.ForNode("source-node").Result(), @@ -109,7 +109,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { name: "when persistent volume claim has no node selector, the item is returned as-is", pvc: builder.ForPersistentVolumeClaim("source-ns", "pvc-1").Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-pvc-node-selector", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-pvc-node-selector", "RestoreItemAction")). Data("source-node", "dest-node"). Result(), want: builder.ForPersistentVolumeClaim("source-ns", "pvc-1").Result(), @@ -121,7 +121,7 @@ func TestChangePVCNodeSelectorActionExecute(t *testing.T) { builder.WithAnnotations("volume.kubernetes.io/selected-node", "source-node"), ).Result(), configMap: builder.ForConfigMap("velero", "change-pvc-node"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-pvc-node-selector", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-pvc-node-selector", "RestoreItemAction")). Data("source-node-1", "dest-node"). Result(), want: builder.ForPersistentVolumeClaim("source-ns", "pvc-1").Result(), diff --git a/pkg/restore/change_storageclass_action_test.go b/pkg/restore/change_storageclass_action_test.go index 65de052db..7f701a0d6 100644 --- a/pkg/restore/change_storageclass_action_test.go +++ b/pkg/restore/change_storageclass_action_test.go @@ -53,7 +53,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "a valid mapping for a persistent volume is applied correctly", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), storageClass: builder.ForStorageClass("storageclass-2").Result(), @@ -63,7 +63,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "a valid mapping for a persistent volume claim is applied correctly", pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), storageClass: builder.ForStorageClass("storageclass-2").Result(), @@ -73,7 +73,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when no config map exists for the plugin, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/some-other-plugin", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/some-other-plugin", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), @@ -82,7 +82,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when no storage class mappings exist in the plugin config map, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Result(), want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), }, @@ -90,7 +90,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume has no storage class, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), want: builder.ForPersistentVolume("pv-1").Result(), @@ -99,7 +99,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume claim has no storage class, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), want: builder.ForPersistentVolumeClaim("velero", "pvc-1").Result(), @@ -108,7 +108,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume's storage class has no mapping in the config map, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-3", "storageclass-4"). Result(), want: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), @@ -117,7 +117,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume claim's storage class has no mapping in the config map, the item is returned as-is", pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-3", "storageclass-4"). Result(), want: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), @@ -126,7 +126,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume's storage class is mapped to a nonexistent storage class, an error is returned", pvOrPvcOrSTS: builder.ForPersistentVolume("pv-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "nonexistent-storage-class"). Result(), wantErr: errors.New("error getting storage class nonexistent-storage-class from API: storageclasses.storage.k8s.io \"nonexistent-storage-class\" not found"), @@ -135,7 +135,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume claim's storage class is mapped to a nonexistent storage class, an error is returned", pvOrPvcOrSTS: builder.ForPersistentVolumeClaim("velero", "pvc-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "nonexistent-storage-class"). Result(), wantErr: errors.New("error getting storage class nonexistent-storage-class from API: storageclasses.storage.k8s.io \"nonexistent-storage-class\" not found"), @@ -144,7 +144,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when statefulset's VolumeClaimTemplates has only one pvc, a valid mapping for a statefulset is applied correctly", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), storageClass: builder.ForStorageClass("storageclass-2").Result(), @@ -154,7 +154,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when statefulset's VolumeClaimTemplates has more than one same pvc's storageClassName, a valid mapping for a statefulset is applied correctly", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1", "storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-2", "storageclass-3", "storageclass-4"). Result(), storageClass: builder.ForStorageClass("storageclass-2").Result(), @@ -164,7 +164,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when statefulset's VolumeClaimTemplates has more than one different pvc's storageClassName, a valid mapping for a statefulset is applied correctly", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1", "storageclass-2", "storageclass-3").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "storageclass-a", "storageclass-2", "storageclass-b", "storageclass-3", "storageclass-c"). Result(), storageClassSlice: builder.ForStorageClassSlice("storageclass-a", "storageclass-b", "storageclass-c").SliceResult(), @@ -174,7 +174,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when no config map exists for the plugin, the statefulset item is returned as-is", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/some-other-plugin", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/some-other-plugin", "RestoreItemAction")). Data("storageclass-1", "storageclass-2"). Result(), want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), @@ -183,7 +183,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when no storage class mappings exist in the plugin config map, the statefulset item is returned as-is", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Result(), want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), }, @@ -191,7 +191,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when persistent volume claim has no storage class, the statefulset item is returned as-is", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Result(), want: builder.ForStatefulSet("velero", "sts-1").Result(), }, @@ -199,7 +199,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when statefulset's storage class has no mapping in the config map, the item is returned as-is", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-3", "storageclass-4"). Result(), want: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), @@ -208,7 +208,7 @@ func TestChangeStorageClassActionExecute(t *testing.T) { name: "when statefulset's storage class is mapped to a nonexistent storage class, an error is returned", pvOrPvcOrSTS: builder.ForStatefulSet("velero", "sts-1").StorageClass("storageclass-1").Result(), configMap: builder.ForConfigMap("velero", "change-storage-classs"). - ObjectMeta(builder.WithLabels("velero.io/plugin-config", "true", "velero.io/change-storage-class", "RestoreItemAction")). + ObjectMeta(builder.WithLabels("velero.io/plugin-config", "", "velero.io/change-storage-class", "RestoreItemAction")). Data("storageclass-1", "nonexistent-storage-class"). Result(), wantErr: errors.New("error getting storage class nonexistent-storage-class from API: storageclasses.storage.k8s.io \"nonexistent-storage-class\" not found"),