From 7981fa21e32a5c54232672e288042faed4b24a04 Mon Sep 17 00:00:00 2001 From: shuijing198799 Date: Tue, 17 Mar 2020 15:01:16 +0800 Subject: [PATCH] fix bug of use KMS --- pkg/backup/backup/backup_cleaner.go | 2 +- pkg/backup/backup/backup_manager.go | 4 ++-- pkg/backup/restore/restore_manager.go | 4 ++-- pkg/backup/util/util.go | 14 +++++++++++--- 4 files changed, 16 insertions(+), 8 deletions(-) diff --git a/pkg/backup/backup/backup_cleaner.go b/pkg/backup/backup/backup_cleaner.go index dafa6f3e38..001406da15 100644 --- a/pkg/backup/backup/backup_cleaner.go +++ b/pkg/backup/backup/backup_cleaner.go @@ -112,7 +112,7 @@ func (bc *backupCleaner) makeCleanJob(backup *v1alpha1.Backup) (*batchv1.Job, st ns := backup.GetNamespace() name := backup.GetName() - storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.StorageProvider, bc.secretLister) + storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.UseKMS, backup.Spec.StorageProvider, bc.secretLister) if err != nil { return nil, reason, err } diff --git a/pkg/backup/backup/backup_manager.go b/pkg/backup/backup/backup_manager.go index 66f33a73c5..cf8d94e5f5 100644 --- a/pkg/backup/backup/backup_manager.go +++ b/pkg/backup/backup/backup_manager.go @@ -168,7 +168,7 @@ func (bm *backupManager) makeExportJob(backup *v1alpha1.Backup) (*batchv1.Job, s return nil, reason, err } - storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.StorageProvider, bm.secretLister) + storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.UseKMS, backup.Spec.StorageProvider, bm.secretLister) if err != nil { return nil, reason, fmt.Errorf("backup %s/%s, %v", ns, name, err) } @@ -260,7 +260,7 @@ func (bm *backupManager) makeBackupJob(backup *v1alpha1.Backup) (*batchv1.Job, s return nil, reason, err } - storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.StorageProvider, bm.secretLister) + storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, backup.Spec.UseKMS, backup.Spec.StorageProvider, bm.secretLister) if err != nil { return nil, reason, fmt.Errorf("backup %s/%s, %v", ns, name, err) } diff --git a/pkg/backup/restore/restore_manager.go b/pkg/backup/restore/restore_manager.go index e29c938c9a..cdbcec11e8 100644 --- a/pkg/backup/restore/restore_manager.go +++ b/pkg/backup/restore/restore_manager.go @@ -159,7 +159,7 @@ func (rm *restoreManager) makeImportJob(restore *v1alpha1.Restore) (*batchv1.Job return nil, reason, err } - storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, restore.Spec.StorageProvider, rm.secretLister) + storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, restore.Spec.UseKMS, restore.Spec.StorageProvider, rm.secretLister) if err != nil { return nil, reason, fmt.Errorf("restore %s/%s, %v", ns, name, err) } @@ -245,7 +245,7 @@ func (rm *restoreManager) makeRestoreJob(restore *v1alpha1.Restore) (*batchv1.Jo return nil, reason, err } - storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, restore.Spec.StorageProvider, rm.secretLister) + storageEnv, reason, err := backuputil.GenerateStorageCertEnv(ns, restore.Spec.UseKMS, restore.Spec.StorageProvider, rm.secretLister) if err != nil { return nil, reason, fmt.Errorf("restore %s/%s, %v", ns, name, err) } diff --git a/pkg/backup/util/util.go b/pkg/backup/util/util.go index 4cf3a8faf3..066609960b 100644 --- a/pkg/backup/util/util.go +++ b/pkg/backup/util/util.go @@ -39,7 +39,7 @@ func CheckAllKeysExistInSecret(secret *corev1.Secret, keys ...string) (string, b } // GenerateS3CertEnvVar generate the env info in order to access S3 compliant storage -func GenerateS3CertEnvVar(s3 *v1alpha1.S3StorageProvider) ([]corev1.EnvVar, string, error) { +func GenerateS3CertEnvVar(s3 *v1alpha1.S3StorageProvider, useKMS bool) ([]corev1.EnvVar, string, error) { var envVars []corev1.EnvVar switch s3.Provider { @@ -87,6 +87,14 @@ func GenerateS3CertEnvVar(s3 *v1alpha1.S3StorageProvider) ([]corev1.EnvVar, stri Value: s3.StorageClass, }, } + if useKMS { + envVars = append(envVars, []corev1.EnvVar{ + { + Name: "AWS_DEFAULT_REGION", + Value: s3.Region, + }, + }...) + } if s3.SecretName != "" { envVars = append(envVars, []corev1.EnvVar{ { @@ -152,7 +160,7 @@ func GenerateGcsCertEnvVar(gcs *v1alpha1.GcsStorageProvider) ([]corev1.EnvVar, s } // GenerateStorageCertEnv generate the env info in order to access backend backup storage -func GenerateStorageCertEnv(ns string, provider v1alpha1.StorageProvider, secretLister corelisters.SecretLister) ([]corev1.EnvVar, string, error) { +func GenerateStorageCertEnv(ns string, useKMS bool, provider v1alpha1.StorageProvider, secretLister corelisters.SecretLister) ([]corev1.EnvVar, string, error) { var certEnv []corev1.EnvVar var reason string var err error @@ -179,7 +187,7 @@ func GenerateStorageCertEnv(ns string, provider v1alpha1.StorageProvider, secret } } - certEnv, reason, err = GenerateS3CertEnvVar(provider.S3.DeepCopy()) + certEnv, reason, err = GenerateS3CertEnvVar(provider.S3.DeepCopy(), useKMS) if err != nil { return certEnv, reason, err }