diff --git a/api/v1/databaseclaim_types.go b/api/v1/databaseclaim_types.go index a4d69e4..479cad2 100644 --- a/api/v1/databaseclaim_types.go +++ b/api/v1/databaseclaim_types.go @@ -152,6 +152,11 @@ type DatabaseClaimSpec struct { // +kubebuilder:default:=dsn.txt DSNName string `json:"dsnName"` + // AutoMinorVersionUpgrade enables automatic minor version upgrades. + // +optional + // +kubebuilder:default=true + AutoMinorVersionUpgrade *bool `json:"autoMinorVersionUpgrade,omitempty"` + // The optional Shape values are arbitrary and help drive instance selection // +optional Shape string `json:"shape"` diff --git a/api/v1/zz_generated.deepcopy.go b/api/v1/zz_generated.deepcopy.go index ba0664f..c20a707 100644 --- a/api/v1/zz_generated.deepcopy.go +++ b/api/v1/zz_generated.deepcopy.go @@ -137,6 +137,11 @@ func (in *DatabaseClaimSpec) DeepCopyInto(out *DatabaseClaimSpec) { *out = new(bool) **out = **in } + if in.AutoMinorVersionUpgrade != nil { + in, out := &in.AutoMinorVersionUpgrade, &out.AutoMinorVersionUpgrade + *out = new(bool) + **out = **in + } if in.EnableReplicationRole != nil { in, out := &in.EnableReplicationRole, &out.EnableReplicationRole *out = new(bool) diff --git a/config/crd/bases/persistance.atlas.infoblox.com_databaseclaims.yaml b/config/crd/bases/persistance.atlas.infoblox.com_databaseclaims.yaml index bceaa6b..eac2788 100644 --- a/config/crd/bases/persistance.atlas.infoblox.com_databaseclaims.yaml +++ b/config/crd/bases/persistance.atlas.infoblox.com_databaseclaims.yaml @@ -70,6 +70,11 @@ spec: description: Specifies an indentifier for the application using the database. type: string + autoMinorVersionUpgrade: + default: true + description: AutoMinorVersionUpgrade enables automatic minor version + upgrades. + type: boolean backupPolicy: description: BackupPolicy specifies the duration at which db backups are taken diff --git a/pkg/databaseclaim/awsprovider.go b/pkg/databaseclaim/awsprovider.go index 486acf5..0fc6107 100644 --- a/pkg/databaseclaim/awsprovider.go +++ b/pkg/databaseclaim/awsprovider.go @@ -3,6 +3,7 @@ package databaseclaim import ( "context" "fmt" + crossplaneaws "github.com/crossplane-contrib/provider-aws/apis/rds/v1alpha1" xpv1 "github.com/crossplane/crossplane-runtime/apis/common/v1" "github.com/go-logr/logr" @@ -146,6 +147,7 @@ func (r *DatabaseClaimReconciler) manageDBClusterAWS(ctx context.Context, dbHost EnableCloudwatchLogsExports: reqInfo.EnableCloudwatchLogsExport, IOPS: nil, PreferredMaintenanceWindow: dbClaim.Spec.PreferredMaintenanceWindow, + AutoMinorVersionUpgrade: dbClaim.Spec.AutoMinorVersionUpgrade, }, ResourceSpec: xpv1.ResourceSpec{ WriteConnectionSecretToReference: &dbSecretCluster, @@ -292,6 +294,7 @@ func (r *DatabaseClaimReconciler) managePostgresDBInstanceAWS(ctx context.Contex StorageType: ¶ms.StorageType, Port: ¶ms.Port, PreferredMaintenanceWindow: dbClaim.Spec.PreferredMaintenanceWindow, + AutoMinorVersionUpgrade: dbClaim.Spec.AutoMinorVersionUpgrade, }, ResourceSpec: xpv1.ResourceSpec{ WriteConnectionSecretToReference: &dbSecretInstance, @@ -354,6 +357,7 @@ func (r *DatabaseClaimReconciler) updateDBClusterAWS(ctx context.Context, reqInf } dbCluster.Spec.ForProvider.StorageType = &reqInfo.HostParams.StorageType dbCluster.Spec.DeletionPolicy = reqInfo.HostParams.DeletionPolicy + dbCluster.Spec.ForProvider.AutoMinorVersionUpgrade = dbClaim.Spec.AutoMinorVersionUpgrade // Compute a json patch based on the changed RDSInstance dbClusterPatchData, err := patchDBCluster.Data(dbCluster) @@ -432,6 +436,7 @@ func (r *DatabaseClaimReconciler) manageAuroraDBInstance(ctx context.Context, re EnablePerformanceInsights: &reqInfo.EnablePerfInsight, EnableCloudwatchLogsExports: nil, PreferredMaintenanceWindow: dbClaim.Spec.PreferredMaintenanceWindow, + AutoMinorVersionUpgrade: dbClaim.Spec.AutoMinorVersionUpgrade, }, ResourceSpec: xpv1.ResourceSpec{ ProviderConfigReference: &providerConfigReference, @@ -864,6 +869,7 @@ func (r *DatabaseClaimReconciler) updateDBInstance(ctx context.Context, reqInfo // Update DBInstance dbClaim.Spec.Tags = r.configureBackupPolicy(dbClaim.Spec.BackupPolicy, dbClaim.Spec.Tags) dbInstance.Spec.ForProvider.Tags = ReplaceOrAddTag(DBClaimTags(dbClaim.Spec.Tags).DBTags(), OperationalStatusTagKey, OperationalStatusActiveValue) + dbInstance.Spec.ForProvider.AutoMinorVersionUpgrade = dbClaim.Spec.AutoMinorVersionUpgrade params := &reqInfo.HostParams if dbClaim.Spec.Type == v1.Postgres { multiAZ := basefun.GetMultiAZEnabled(r.Config.Viper)