Skip to content

feat(charts): make the flyte-core executor replica count configurable - #8261

Merged
Sovietaced merged 1 commit into
flyteorg:mainfrom
earlybard:flyte-core-executor-replicas
Oct 28, 2026
Merged

Sovietaced merged 1 commit into
flyteorg:mainfrom
earlybard:flyte-core-executor-replicas

Conversation

@earlybard

Copy link
Copy Markdown
Contributor

Why are the changes needed?

The flyte-core executor Deployment hard-codes replicas: 1, so the controller is a single point of failure: a node drain, OOM or rollout stalls every run until a new pod schedules and syncs its caches.

The executor already copes with more than one replica, though. Reconcilers and the garbage collector run under controller-runtime leader election (configuration.executor.leaderElect), replicas adopt one shared webhook cert Secret, and the secret service fans cache invalidation out to every pod through the headless Service. The chart just doesn't let you ask for a second one.

What changes were proposed in this pull request?

  • Add components.executor.replicaCount, defaulting to 1.
  • Refuse to render more than one replica unless configuration.executor.leaderElect is on, since without it the replicas would reconcile the same TaskActions twice.

How was this patch tested?

helm lint, and helm template for the default, for 2 replicas without leader election (render fails) and for 2 with it. I also ran two replicas with leader election on our EKS cluster and deleted the leader partway through a fan-out run. The standby took the lease 17s later, and the run went on to launch its second wave and finish.

Labels

  • added

Check all the applicable boxes

  • I updated the documentation accordingly.
  • All new and existing tests passed.
  • All commits are signed-off.

AI disclosure: written with Claude Code as a code assistant, reviewed by me.

The executor Deployment hard-coded replicas: 1. The executor already
supports running more than one: reconcilers and the garbage collector run
under controller-runtime leader election, replicas share the webhook cert
Secret, and the secret service fans cache invalidation out to every pod
through the headless Service. A standby replica takes over from a failed
or rolling leader once its lease expires instead of waiting for a new pod
to schedule and sync its caches.

components.executor.replicaCount defaults to 1, and the chart refuses to
render more than one without configuration.executor.leaderElect.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Dylan Jenkins <dylan.jenkins@ga.gov.au>
@earlybard
earlybard marked this pull request as ready for review October 28, 2026 02:56
@Sovietaced
Sovietaced merged commit 594991f into flyteorg:main Oct 28, 2026
24 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants