feat(aws-rds): add ability to specify PreferredMaintenanceWindow to RDS cluster database instances #29032
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Issue # (if applicable)
Closes #16954
Reason for this change
Noticed that we were able to specify preferredMaintenanceWindow for a cluster, but unable to do so for the instances created under the cluster. Instead, AWS (semi-)randomly assigns a maintenance window (doc) for the instances, which leads to things being out of sync b/w the cluster and its child instances
There are some workarounds as mentioned in the issue above, but those are a little hacky (imo) and I figured adding the preferredMaintenanceWindow as an instance prop is a better long-term solution. Also, it might be hard for other developers to find the workarounds as they are only mentioned in the above issue and aren't available through normal channels (Stack overflow/official CDK docs)
Description of changes
Added optional preferredMaintenanceWindow field under
InstanceProps
, and passed that field in during the creation of theCfnDBInstance
. Also added a quick unit testDescription of how you validated changes
Added a unit test, did not add integ tests. Ran
yarn build
andyarn test
Callout: I was unable to run integration tests locally, kept getting errors with
yarn integ --directory packages/aws-cdk-lib/aws-rds
andyarn integ-runner --directory packages/aws-cdk-lib/aws-rds
-Error: Cannot find module './integ-runner.js'
, not sure if I'm missing somethingChecklist
No breaking changes
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license