You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add --watch-label-selector=<selector expression> flag to all Flux controller using the new watch package from fluxcd/pkg/runtime and wired the selector in each controller's cache manager.
This enables horizontal scaling of Flux controllers, where each controller can be deployed multiple times with a unique label selector which is used as the sharding key.
For example, to shard the reconciliation of HelmReleases in a cluster, user will deploy two extra helm-controller instances:
Deployment/helm-controller with --watch-label-selector=sharding.fluxcd.io/shard notin (shard1, shard2)
Deployment/helm-controller-1 with --watch-label-selector=sharding.fluxcd.io/shard=shard1
Deployment/helm-controller-2 with --watch-label-selector=sharding.fluxcd.io/shard=shard2
By labeling HelmReleases with sharding.fluxcd.io/shard, users can spread the load between helm-controller-1 and helm-controller-2 by setting the label value to shard1 or shard2. HelmReleases which don't have the sharding.fluxcd.io/shard label, will be reconcile by the helm-controller default instance.
Sharding source-controller works the same but users will have to create a matching Kubernetes Service for each SC deployment, then set the Service name in storage address flag. Example:
Add
--watch-label-selector=<selector expression>
flag to all Flux controller using the new watch package fromfluxcd/pkg/runtime
and wired the selector in each controller's cache manager.This enables horizontal scaling of Flux controllers, where each controller can be deployed multiple times with a unique label selector which is used as the sharding key.
For example, to shard the reconciliation of HelmReleases in a cluster, user will deploy two extra helm-controller instances:
--watch-label-selector=sharding.fluxcd.io/shard notin (shard1, shard2)
--watch-label-selector=sharding.fluxcd.io/shard=shard1
--watch-label-selector=sharding.fluxcd.io/shard=shard2
By labeling HelmReleases with
sharding.fluxcd.io/shard
, users can spread the load betweenhelm-controller-1
andhelm-controller-2
by setting the label value toshard1
orshard2
. HelmReleases which don't have thesharding.fluxcd.io/shard
label, will be reconcile by thehelm-controller
default instance.Sharding source-controller works the same but users will have to create a matching Kubernetes Service for each SC deployment, then set the Service name in storage address flag. Example:
Tasks:
The text was updated successfully, but these errors were encountered: