From d181710651e26e5030edf373e74a80457d155cec Mon Sep 17 00:00:00 2001 From: Matheus Pimenta Date: Thu, 22 Aug 2024 14:38:26 -0300 Subject: [PATCH] Introduce Bucket provider constants with the common part as a prefix Signed-off-by: Matheus Pimenta --- api/v1beta2/bucket_types.go | 17 +++++++++++++++++ internal/controller/bucket_controller.go | 4 ++-- internal/controller/bucket_controller_test.go | 2 +- pkg/minio/minio.go | 8 ++++---- 4 files changed, 24 insertions(+), 7 deletions(-) diff --git a/api/v1beta2/bucket_types.go b/api/v1beta2/bucket_types.go index fc665e881..d8ce704e7 100644 --- a/api/v1beta2/bucket_types.go +++ b/api/v1beta2/bucket_types.go @@ -33,17 +33,34 @@ const ( ) const ( + // BucketProviderGeneric for any S3 API compatible storage Bucket. + BucketProviderGeneric string = "generic" + // BucketProviderAmazon for an AWS S3 object storage Bucket. + // Provides support for retrieving credentials from the AWS EC2 service. + BucketProviderAmazon string = "aws" + // BucketProviderGoogle for a Google Cloud Storage Bucket. + // Provides support for authentication using a workload identity. + BucketProviderGoogle string = "gcp" + // BucketProviderAzure for an Azure Blob Storage Bucket. + // Provides support for authentication using a Service Principal, + // Managed Identity or Shared Key. + BucketProviderAzure string = "azure" + // GenericBucketProvider for any S3 API compatible storage Bucket. + // Deprecated: use BucketProviderGeneric. GenericBucketProvider string = "generic" // AmazonBucketProvider for an AWS S3 object storage Bucket. // Provides support for retrieving credentials from the AWS EC2 service. + // Deprecated: use BucketProviderAmazon. AmazonBucketProvider string = "aws" // GoogleBucketProvider for a Google Cloud Storage Bucket. // Provides support for authentication using a workload identity. + // Deprecated: use BucketProviderGoogle. GoogleBucketProvider string = "gcp" // AzureBucketProvider for an Azure Blob Storage Bucket. // Provides support for authentication using a Service Principal, // Managed Identity or Shared Key. + // Deprecated: use BucketProviderAzure. AzureBucketProvider string = "azure" ) diff --git a/internal/controller/bucket_controller.go b/internal/controller/bucket_controller.go index b6a8937bf..4a677a6d4 100644 --- a/internal/controller/bucket_controller.go +++ b/internal/controller/bucket_controller.go @@ -441,7 +441,7 @@ func (r *BucketReconciler) reconcileSource(ctx context.Context, sp *patch.Serial // Construct provider client var provider BucketProvider switch obj.Spec.Provider { - case bucketv1.GoogleBucketProvider: + case bucketv1.BucketProviderGoogle: if err = gcp.ValidateSecret(secret); err != nil { e := serror.NewGeneric(err, sourcev1.AuthenticationFailedReason) conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, e.Reason, "%s", e) @@ -459,7 +459,7 @@ func (r *BucketReconciler) reconcileSource(ctx context.Context, sp *patch.Serial conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, e.Reason, "%s", e) return sreconcile.ResultEmpty, e } - case bucketv1.AzureBucketProvider: + case bucketv1.BucketProviderAzure: if err = azure.ValidateSecret(secret); err != nil { e := serror.NewGeneric(err, sourcev1.AuthenticationFailedReason) conditions.MarkTrue(obj, sourcev1.FetchFailedCondition, e.Reason, "%s", e) diff --git a/internal/controller/bucket_controller_test.go b/internal/controller/bucket_controller_test.go index 321e2155a..c5e1ff880 100644 --- a/internal/controller/bucket_controller_test.go +++ b/internal/controller/bucket_controller_test.go @@ -1314,7 +1314,7 @@ func TestBucketReconciler_reconcileSource_gcs(t *testing.T) { Spec: bucketv1.BucketSpec{ BucketName: tt.bucketName, Timeout: &metav1.Duration{Duration: timeout}, - Provider: bucketv1.GoogleBucketProvider, + Provider: bucketv1.BucketProviderGoogle, }, } diff --git a/pkg/minio/minio.go b/pkg/minio/minio.go index d9a3fbba8..7d2e8ae60 100644 --- a/pkg/minio/minio.go +++ b/pkg/minio/minio.go @@ -104,9 +104,9 @@ func NewClient(bucket *sourcev1.Bucket, opts ...Option) (*MinioClient, error) { switch bucketProvider := bucket.Spec.Provider; { case o.secret != nil: minioOpts.Creds = newCredsFromSecret(o.secret) - case bucketProvider == sourcev1.AmazonBucketProvider: + case bucketProvider == sourcev1.BucketProviderAmazon: minioOpts.Creds = newAWSCreds(bucket, o.proxyURL) - case bucketProvider == sourcev1.GenericBucketProvider: + case bucketProvider == sourcev1.BucketProviderGeneric: minioOpts.Creds = newGenericCreds(bucket, &o) } @@ -241,7 +241,7 @@ func ValidateSTSProvider(bucketProvider string, sts *sourcev1.BucketSTSSpec) err sts.Provider) switch bucketProvider { - case sourcev1.AmazonBucketProvider: + case sourcev1.BucketProviderAmazon: switch sts.Provider { case sourcev1.STSProviderAmazon: if sts.SecretRef != nil { @@ -254,7 +254,7 @@ func ValidateSTSProvider(bucketProvider string, sts *sourcev1.BucketSTSSpec) err default: return errProviderIncompatbility } - case sourcev1.GenericBucketProvider: + case sourcev1.BucketProviderGeneric: switch sts.Provider { case sourcev1.STSProviderLDAP: return nil