Removed eks_addon lifecycle dependency on managed node lifecycle #145
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.
This PR is very simple, what it does is basically in the title - it removes K8s add-ons lifecycle dependency on managed node lifecycle.
This dependency is useful on initial deployment, as it ensures faster deployment and everything is ordered (nodes are provisioned first, and then apps on top, ensuring everything is ready for clean app provisioning).
This is, however, not useful if lifecycle operations need to be performed later on, eg configuration change of managed node group(s).
The system then runs into 'catch 22' type of a problem: configuration change triggers node group re-deployment, which in turn triggers eks_addons re-deployment, but since addons contain critical apps (CNI, DNS etc.) to complete node group re-deployment, the provisioning fails.
While this solution is far from ideal, there is an ongoing effort to re-write addons module into individual resources, which would also enable the usage of lifecycle meta argument.
Other points-of-view are welcome.