mirror of
https://github.com/cozystack/cozystack.git
synced 2026-11-09 14:02:56 +09:00
Three leader-elected/served parts on metadata-only watches, so the operator never decodes the helm-controller status-patch firehose: - placement controller: singleton full-sync reconciler that rebuilds the tenant index from HelmRelease labels (restart-safe), records the assignment on the tenant namespace, self-heals HR labels and paces reassignments so a backfill never floods a target shard; - shard provisioner: reconciles helm-controller-shard<i> Deployments cloned from the flux-aio helm-controller container and sanitised (no host networking, no localhost cross-container wiring, per-shard watch-label-selector), prunes drained extra shards and retires the legacy flux-tenants Deployment once the tenants bucket is empty; - CREATE-only mutating webhook: stamps the tenant's recorded shard on newborn HelmReleases so each one is born on the correct shard; every miss is permissive and falls back to the placement controller. Co-Authored-By: Claude <noreply@anthropic.com> Signed-off-by: Andrei Kvapil <andrei.kvapil@aenix.io>