Add reconciler sharding capability based on label selector #365
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.
The new
--watch-label-selector
lets operators provide a label to the controller manager which in turn uses it to reconcile only those resources (ImageRepositories
andImagePolicies
) that match the given label.This way operators can deploy multiple instances of IRC, each reconciling a distinct set of resources based on their labels and effectively scale IRC horizontally.
If sharding is enabled, all
ImagePolicy
resources can only refer to thoseImageRepository
resources that are captured by the exact same label selector as theImagePolicies
, otherwise theImagePolicies
will not become ready.Example
Given two Deployments with different shard keys:
image-reflector-controller-1
with--watch-label-selector=sharding.fluxcd.io/shard=shard1
image-reflector-controller-2
with--watch-label-selector=sharding.fluxcd.io/shard=shard2
An
ImageRepository
like this:An
ImagePolicy
like this:The
ImagePolicy
will successfully be reconciled.If the
ImagePolicy
would have the labelsharding.fluxcd.io/shard: shard2
reconciliation would fail because it would be referring to anImageRepository
from a different shard.closes #364