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", }, },