Skip to content

Commit ee9a4f2

Browse files
authored
Merge pull request #2292 from crossplane-contrib/backport-2267-to-release-0.57
[Backport release-0.57] feat(docdb/dbinstance):Adding preferred maintainence window into status at provider
2 parents 27f2d1a + e6343b2 commit ee9a4f2

6 files changed

Lines changed: 46 additions & 2 deletions

File tree

apis/docdb/v1alpha1/custom_types.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,9 @@ type CustomDBInstanceParameters struct {
6262
}
6363

6464
// CustomDBInstanceObservation for DBInstance
65-
type CustomDBInstanceObservation struct{}
65+
type CustomDBInstanceObservation struct {
66+
PreferredMaintenanceWindow *string `json:"preferredMaintenanceWindow,omitempty"`
67+
}
6668

6769
// CustomDBSubnetGroupParameters for DBSubnetGroupParameters
6870
type CustomDBSubnetGroupParameters struct {

apis/docdb/v1alpha1/zz_generated.deepcopy.go

Lines changed: 6 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

examples/docdb/instance.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,3 +13,21 @@ spec:
1313
value: "my-cluster"
1414
providerConfigRef:
1515
name: example
16+
---
17+
apiVersion: docdb.aws.crossplane.io/v1alpha1
18+
kind: DBInstance
19+
metadata:
20+
name: sample-test-docdb
21+
spec:
22+
deletionPolicy: Delete
23+
forProvider:
24+
autoMinorVersionUpgrade: true
25+
dbClusterIdentifier: sample-test
26+
dbInstanceClass: db.t3.medium
27+
engine: docdb
28+
preferredMaintenanceWindow: wed:12:46-wed:13:16
29+
region: ap-south-1
30+
managementPolicies:
31+
- '*'
32+
providerConfigRef:
33+
name: aws-local

package/crds/docdb.aws.crossplane.io_dbinstances.yaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -592,6 +592,8 @@ spec:
592592
Specifies the daily time range during which automated backups are created
593593
if automated backups are enabled, as determined by the BackupRetentionPeriod.
594594
type: string
595+
preferredMaintenanceWindow:
596+
type: string
595597
publiclyAccessible:
596598
description: |-
597599
Not supported. Amazon DocumentDB does not currently support public endpoints.

pkg/controller/docdb/dbinstance/setup.go

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,10 @@ func postObserve(_ context.Context, cr *svcapitypes.DBInstance, resp *svcsdk.Des
106106
return managed.ExternalObservation{}, err
107107
}
108108

109+
if len(resp.DBInstances) > 0 {
110+
cr.Status.AtProvider.PreferredMaintenanceWindow = resp.DBInstances[0].PreferredMaintenanceWindow
111+
}
112+
109113
switch pointer.StringValue(cr.Status.AtProvider.DBInstanceStatus) {
110114
case svcapitypes.DocDBInstanceStateAvailable:
111115
cr.Status.SetConditions(xpv1.Available())

pkg/controller/docdb/dbinstance/setup_test.go

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -158,6 +158,12 @@ func withPreferredMaintenanceWindow(value string) docDBModifier {
158158
}
159159
}
160160

161+
func withStatusPreferredMaintenanceWindow(value string) docDBModifier {
162+
return func(o *svcapitypes.DBInstance) {
163+
o.Status.AtProvider.PreferredMaintenanceWindow = pointer.ToOrNilIfZeroValue(value)
164+
}
165+
}
166+
161167
func withPromotionTier(value int) docDBModifier {
162168
return func(o *svcapitypes.DBInstance) {
163169
o.Spec.ForProvider.PromotionTier = pointer.ToIntAsInt64(value)
@@ -501,6 +507,7 @@ func TestObserve(t *testing.T) {
501507
withExternalName(testDBIdentifier),
502508
withDBIdentifier(testDBIdentifier),
503509
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
510+
withStatusPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
504511
),
505512
},
506513
want: want{
@@ -515,6 +522,7 @@ func TestObserve(t *testing.T) {
515522
Port: pointer.ToIntAsInt64(testPort),
516523
}),
517524
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
525+
withStatusPreferredMaintenanceWindow(testPreferredMaintenanceWindow),
518526
),
519527
result: managed.ExternalObservation{
520528
ResourceExists: true,
@@ -1013,6 +1021,7 @@ func TestObserve(t *testing.T) {
10131021
withExternalName(testDBIdentifier),
10141022
withDBIdentifier(testDBIdentifier),
10151023
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
1024+
withStatusPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
10161025
),
10171026
},
10181027
want: want{
@@ -1026,6 +1035,7 @@ func TestObserve(t *testing.T) {
10261035
Port: pointer.ToIntAsInt64(testPort),
10271036
}),
10281037
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
1038+
withStatusPreferredMaintenanceWindow(testPreferredMaintenanceWindow),
10291039
),
10301040
result: managed.ExternalObservation{
10311041
ResourceExists: true,
@@ -1526,6 +1536,7 @@ func TestObserve(t *testing.T) {
15261536
withExternalName(testDBIdentifier),
15271537
withDBIdentifier(testDBIdentifier),
15281538
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
1539+
withStatusPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
15291540
),
15301541
},
15311542
want: want{
@@ -1539,6 +1550,7 @@ func TestObserve(t *testing.T) {
15391550
Port: pointer.ToIntAsInt64(testPort),
15401551
}),
15411552
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
1553+
withStatusPreferredMaintenanceWindow(testPreferredMaintenanceWindow),
15421554
),
15431555
result: managed.ExternalObservation{
15441556
ResourceExists: true,
@@ -2052,6 +2064,7 @@ func TestObserve(t *testing.T) {
20522064
Port: pointer.ToIntAsInt64(testPort),
20532065
}),
20542066
withPreferredMaintenanceWindow(testOtherPreferredMaintenanceWindow),
2067+
withStatusPreferredMaintenanceWindow(testPreferredMaintenanceWindow),
20552068
),
20562069
result: managed.ExternalObservation{
20572070
ResourceExists: true,

0 commit comments

Comments
 (0)