Skip to content

High Availability

The controller uses controller-runtime leader election (a coordination.k8s.io/Lease in the release namespace), so it is safe to run more than one replica. Only the leader reconciles; standbys idle until the lease expires.

Enable HA by raising the replica count:

helm upgrade --install scale-sentry oci://ghcr.io/ethan-kane-ops/charts/scale-sentry \
  --set controller.replicaCount=2

With replicaCount > 1 the chart also renders a PodDisruptionBudget (minAvailable: 1) and zone topologySpreadConstraints.

Tradeoff

HA adds one Lease object and a brief reconcile gap on failover. When the leader pod dies, a standby acquires the lease within the renew window (~15s default) before resuming.

A single replica is fine for non-prod. Set --leader-elect=false (or controller.leaderElect=false) for local single-node dev to skip the Lease entirely.