Add pause reconciliation support for Device and associated resources#183
Open
felix-kaestner wants to merge 4 commits intomainfrom
Open
Add pause reconciliation support for Device and associated resources#183felix-kaestner wants to merge 4 commits intomainfrom
felix-kaestner wants to merge 4 commits intomainfrom
Conversation
8b1d5bb to
04147ea
Compare
0ac30a1 to
b981f25
Compare
Introduce the ability to pause reconciliation for Devices and their associated resources. This is useful for maintenance scenarios where network device configuration should be temporarily frozen. Pausing can be enabled via: - Setting `spec.paused: true` on a Device (pauses Device and all associated resources) - Adding the `networking.metal.ironcore.dev/paused` annotation to any individual resource When paused, controllers will skip reconciliation and log an info message indicating the resource is paused.
This patch adds a manager argument that can be used to restrict the resources being reconciled by the manager to a particular namespace. This option can be used independently or together with the already present watch-filter label to fine tune the number of resources being targeted by the operator deployment.
This patch updates the watches of each controller to trigger a reconciliation of a resource once a resource linked in a ProviderConfigRef gets updated.
While a shorter requeue-interval is useful for local development and tiny fabrics to quickly observe and correct configuration drift it's not appropriate for production environments where a large fleet of devices are already in a desired state but just require a constant sync loop every hour. Therefore the defaults are adjusted. Users of the network-operator can still configure a custom value through specifying the respective container arg in their helm deployment to fine tune the requeue-interval to their respective needs.
b981f25 to
6c1ae39
Compare
Merging this branch changes the coverage (2 decrease, 1 increase)
Coverage by fileChanged files (no unit tests)
Please note that the "Total", "Covered", and "Missed" counts above refer to code statements instead of lines of code. The value in brackets refers to the test coverage of that file in the old version of the code. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Introduce the ability to pause reconciliation for Devices and their associated resources. This is useful for maintenance scenarios where network device configuration should be temporarily frozen.
Pausing can be enabled via:
spec.paused: trueon a Device (pauses Device and all associated resources)networking.metal.ironcore.dev/pausedannotation to any individual resourceWhen paused, controllers will skip reconciliation and log an info message indicating the resource is paused.