From 20a1118acfade509fdfb49c701b223bb8084ca86 Mon Sep 17 00:00:00 2001 From: Anshul Ahuja Date: Thu, 26 Oct 2023 15:30:21 +0530 Subject: [PATCH] Make configmapref check case insensitive (#6804) * Make configmapref check case insensitive Signed-off-by: Anshul Ahuja * update resourcemodfier test case to validate case Signed-off-by: Anshul Ahuja --------- Signed-off-by: Anshul Ahuja Signed-off-by: Anshul Ahuja Co-authored-by: Anshul Ahuja --- pkg/controller/backup_controller.go | 3 ++- pkg/controller/restore_controller.go | 3 ++- pkg/controller/restore_controller_test.go | 3 ++- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/pkg/controller/backup_controller.go b/pkg/controller/backup_controller.go index 0e53121f0..613261783 100644 --- a/pkg/controller/backup_controller.go +++ b/pkg/controller/backup_controller.go @@ -21,6 +21,7 @@ import ( "context" "fmt" "os" + "strings" "time" snapshotv1api "github.com/kubernetes-csi/external-snapshotter/client/v4/apis/volumesnapshot/v1" @@ -476,7 +477,7 @@ func (b *backupReconciler) prepareBackupRequest(backup *velerov1api.Backup, logg request.Status.ValidationErrors = append(request.Status.ValidationErrors, "encountered labelSelector as well as orLabelSelectors in backup spec, only one can be specified") } - if request.Spec.ResourcePolicy != nil && request.Spec.ResourcePolicy.Kind == resourcepolicies.ConfigmapRefType { + if request.Spec.ResourcePolicy != nil && strings.EqualFold(request.Spec.ResourcePolicy.Kind, resourcepolicies.ConfigmapRefType) { policiesConfigmap := &corev1api.ConfigMap{} err := b.kbClient.Get(context.Background(), kbclient.ObjectKey{Namespace: request.Namespace, Name: request.Spec.ResourcePolicy.Name}, policiesConfigmap) if err != nil { diff --git a/pkg/controller/restore_controller.go b/pkg/controller/restore_controller.go index 0e11d7ced..5d6ed505e 100644 --- a/pkg/controller/restore_controller.go +++ b/pkg/controller/restore_controller.go @@ -25,6 +25,7 @@ import ( "io" "os" "sort" + "strings" "time" "github.com/pkg/errors" @@ -376,7 +377,7 @@ func (r *restoreReconciler) validateAndComplete(restore *api.Restore) (backupInf } var resourceModifiers *resourcemodifiers.ResourceModifiers = nil - if restore.Spec.ResourceModifier != nil && restore.Spec.ResourceModifier.Kind == resourcemodifiers.ConfigmapRefType { + if restore.Spec.ResourceModifier != nil && strings.EqualFold(restore.Spec.ResourceModifier.Kind, resourcemodifiers.ConfigmapRefType) { ResourceModifierConfigMap := &corev1api.ConfigMap{} err := r.kbClient.Get(context.Background(), client.ObjectKey{Namespace: restore.Namespace, Name: restore.Spec.ResourceModifier.Name}, ResourceModifierConfigMap) if err != nil { diff --git a/pkg/controller/restore_controller_test.go b/pkg/controller/restore_controller_test.go index e3ffaf4df..b7f6fbd25 100644 --- a/pkg/controller/restore_controller_test.go +++ b/pkg/controller/restore_controller_test.go @@ -781,7 +781,8 @@ func TestValidateAndCompleteWithResourceModifierSpecified(t *testing.T) { Spec: velerov1api.RestoreSpec{ BackupName: "backup-1", ResourceModifier: &corev1.TypedLocalObjectReference{ - Kind: resourcemodifiers.ConfigmapRefType, + // intentional to ensure case insensitivity works as expected + Kind: "confIGMaP", Name: "test-configmap-invalid", }, },