From 7b4d4c7275fac765f794863e4d60ee292f0ce9ce Mon Sep 17 00:00:00 2001 From: Xun Jiang Date: Tue, 4 Jul 2023 15:10:34 +0800 Subject: [PATCH] Limit label "velero.io/pvc-namespace-name" length to 63. 1. Limit label length. 2. Modify UT accordingly. 3. Remove unnecessary const variable. Signed-off-by: Xun Jiang --- pkg/apis/velero/v1/labels_annotations.go | 3 --- pkg/restore/dataupload_retrieve_action.go | 4 ++-- pkg/restore/dataupload_retrieve_action_test.go | 9 ++++++++- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/pkg/apis/velero/v1/labels_annotations.go b/pkg/apis/velero/v1/labels_annotations.go index defd564217..b35cd6c6fb 100644 --- a/pkg/apis/velero/v1/labels_annotations.go +++ b/pkg/apis/velero/v1/labels_annotations.go @@ -83,9 +83,6 @@ const ( // The format is /. PVCNamespaceNameLabel = "velero.io/pvc-namespace-name" - // DynamicPVRestoreLabel is the label key for dynamic PV restore - DynamicPVRestoreLabel = "velero.io/dynamic-pv-restore" - // ResourceUsageLabel is the label key to explain the Velero resource usage. ResourceUsageLabel = "velero.io/resource-usage" ) diff --git a/pkg/restore/dataupload_retrieve_action.go b/pkg/restore/dataupload_retrieve_action.go index f428373107..a691d653c5 100644 --- a/pkg/restore/dataupload_retrieve_action.go +++ b/pkg/restore/dataupload_retrieve_action.go @@ -84,8 +84,8 @@ func (d *DataUploadRetrieveAction) Execute(input *velero.RestoreItemActionExecut Namespace: dataUpload.Namespace, Labels: map[string]string{ velerov1api.RestoreUIDLabel: label.GetValidName(string(input.Restore.UID)), - velerov1api.PVCNamespaceNameLabel: dataUpload.Spec.SourceNamespace + "." + dataUpload.Spec.SourcePVC, - velerov1api.ResourceUsageLabel: string(velerov1api.VeleroResourceUsageDataUploadResult), + velerov1api.PVCNamespaceNameLabel: label.GetValidName(dataUpload.Spec.SourceNamespace + "." + dataUpload.Spec.SourcePVC), + velerov1api.ResourceUsageLabel: label.GetValidName(string(velerov1api.VeleroResourceUsageDataUploadResult)), }, }, Data: map[string]string{ diff --git a/pkg/restore/dataupload_retrieve_action_test.go b/pkg/restore/dataupload_retrieve_action_test.go index e04050e6de..be8c653681 100644 --- a/pkg/restore/dataupload_retrieve_action_test.go +++ b/pkg/restore/dataupload_retrieve_action_test.go @@ -31,6 +31,7 @@ import ( velerov1 "github.com/vmware-tanzu/velero/pkg/apis/velero/v1" velerov2alpha1 "github.com/vmware-tanzu/velero/pkg/apis/velero/v2alpha1" "github.com/vmware-tanzu/velero/pkg/builder" + "github.com/vmware-tanzu/velero/pkg/label" "github.com/vmware-tanzu/velero/pkg/plugin/velero" velerotest "github.com/vmware-tanzu/velero/pkg/test" ) @@ -49,6 +50,12 @@ func TestDataUploadRetrieveActionExectue(t *testing.T) { restore: builder.ForRestore("velero", "testRestore").ObjectMeta(builder.WithUID("testingUID")).Result(), expectedDataUploadResult: builder.ForConfigMap("velero", "").ObjectMeta(builder.WithGenerateName("testDU-"), builder.WithLabels(velerov1.PVCNamespaceNameLabel, "testNamespace.testPVC", velerov1.RestoreUIDLabel, "testingUID", velerov1.ResourceUsageLabel, string(velerov1.VeleroResourceUsageDataUploadResult))).Data("testingUID", `{"backupStorageLocation":"","sourceNamespace":"testNamespace"}`).Result(), }, + { + name: "Long source namespace and PVC name should also work", + dataUpload: builder.ForDataUpload("velero", "testDU").SourceNamespace("migre209d0da-49c7-45ba-8d5a-3e59fd591ec1").SourcePVC("kibishii-data-kibishii-deployment-0").Result(), + restore: builder.ForRestore("velero", "testRestore").ObjectMeta(builder.WithUID("testingUID")).Result(), + expectedDataUploadResult: builder.ForConfigMap("velero", "").ObjectMeta(builder.WithGenerateName("testDU-"), builder.WithLabels(velerov1.PVCNamespaceNameLabel, "migre209d0da-49c7-45ba-8d5a-3e59fd591ec1.kibishii-data-ki152333", velerov1.RestoreUIDLabel, "testingUID", velerov1.ResourceUsageLabel, string(velerov1.VeleroResourceUsageDataUploadResult))).Data("testingUID", `{"backupStorageLocation":"","sourceNamespace":"migre209d0da-49c7-45ba-8d5a-3e59fd591ec1"}`).Result(), + }, } for _, tc := range tests { @@ -76,7 +83,7 @@ func TestDataUploadRetrieveActionExectue(t *testing.T) { if tc.expectedDataUploadResult != nil { cmList, err := cmClient.CoreV1().ConfigMaps("velero").List(context.Background(), metav1.ListOptions{ - LabelSelector: fmt.Sprintf("%s=%s,%s=%s", velerov1.RestoreUIDLabel, "testingUID", velerov1.PVCNamespaceNameLabel, tc.dataUpload.Spec.SourceNamespace+"."+tc.dataUpload.Spec.SourcePVC), + LabelSelector: fmt.Sprintf("%s=%s,%s=%s", velerov1.RestoreUIDLabel, "testingUID", velerov1.PVCNamespaceNameLabel, label.GetValidName(tc.dataUpload.Spec.SourceNamespace+"."+tc.dataUpload.Spec.SourcePVC)), }) require.NoError(t, err) // debug