Commit 1dfe7bd
authored
handle asynchronous updates for DBInstance by requeueing (#65)
Issue [#1156](aws-controllers-k8s/community#1156)
Description of changes:
* During DBInstance update, when `ModifyDBInstance` call returns success then the ACK reconciler marks the resource as Synced and the reconciliation stops. However asynchronous update of DBInstance happens on server side and the ACK reconciler does not sync them.
* Add two new hooks, one to requeue after successful update and another to handle delta for non-late-initialized fields.
* I did not use the `requeueOnSuccessSeconds` construct because it will cause the reconciliation to go forever and for some amount of time, the resource condition will be synced, even when the DBInstance is in modifying state.
* Do not set Synced condition true inside post_read_many hook, but depend on `ensureConditions` method
**Test Updates**
* Update test manifest to use smaller storage to improve the test time and use engine version 14.1 because engine version 13.2 was throwing unsupported errors
* Added e2e test for 'MultiAZ' field update as mentioned in the issue [#1156](aws-controllers-k8s/community#1156)
* Updated the test to wait for Synced condition and then assert DBInstance fields using AWS API calls
By submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.1 parent 9634b96 commit 1dfe7bd
File tree
11 files changed
+93
-21
lines changed- apis/v1alpha1
- pkg/resource/db_instance
- templates/hooks/db_instance
- test/e2e
- resources
- tests
11 files changed
+93
-21
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
| 2 | + | |
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | | - | |
| 10 | + | |
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
125 | 127 | | |
126 | 128 | | |
| 129 | + | |
| 130 | + | |
127 | 131 | | |
128 | 132 | | |
129 | 133 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
122 | 122 | | |
123 | 123 | | |
124 | 124 | | |
| 125 | + | |
| 126 | + | |
125 | 127 | | |
126 | 128 | | |
| 129 | + | |
| 130 | + | |
127 | 131 | | |
128 | 132 | | |
129 | 133 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
90 | 90 | | |
91 | 91 | | |
92 | 92 | | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
| 96 | + | |
| 97 | + | |
| 98 | + | |
93 | 99 | | |
94 | 100 | | |
95 | 101 | | |
| |||
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
Lines changed: 1 addition & 3 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
2 | 2 | | |
3 | 3 | | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | | - | |
| 5 | + | |
8 | 6 | | |
Lines changed: 7 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
Lines changed: 3 additions & 2 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3 | 3 | | |
4 | 4 | | |
5 | 5 | | |
6 | | - | |
| 6 | + | |
7 | 7 | | |
8 | 8 | | |
9 | 9 | | |
10 | 10 | | |
11 | 11 | | |
12 | | - | |
| 12 | + | |
13 | 13 | | |
14 | 14 | | |
15 | 15 | | |
16 | 16 | | |
17 | 17 | | |
| 18 | + | |
0 commit comments