Skip to content

feat(chart): add external node ha mode#27

Merged
coffeexcoin merged 2 commits into
mainfrom
feat/helm-ha-multicomponent
Jun 3, 2026
Merged

feat(chart): add external node ha mode#27
coffeexcoin merged 2 commits into
mainfrom
feat/helm-ha-multicomponent

Conversation

@coffeexcoin
Copy link
Copy Markdown
Contributor

@coffeexcoin coffeexcoin commented Jun 3, 2026

What changed

Adds an opt-in HA mode for the abstract-node Helm chart. HA mode splits the external node into a singleton core StatefulSet running the stateful components and an API Deployment that can scale from one to many replicas.

The default HA core component set runs core,tree,tree_fetcher,tree_api, so API replicas can proxy tree-backed proof calls to the core pod. Setting ha.treeApi.enabled=false renders the exact core,tree,tree_fetcher core component list. The existing non-HA path remains the default for backwards compatibility.

Impact

Existing chart consumers continue to get the current single StatefulSet behavior unless they set ha.enabled=true.

When HA mode is enabled, the public service selects API replicas for load balancing, while a separate headless core service supports StatefulSet DNS, health, metrics, consensus ports, and tree API routing.

Validation

  • helm lint charts/abstract-node --set database.secretName=db-secret
  • helm template abstract charts/abstract-node --set database.secretName=db-secret --set ha.enabled=true --set ha.api.replicaCount=3
  • Previously verified default rendering, HA rendering with ha.treeApi.enabled=false, and HA rendering with shutdownWrapper.enabled=true.

PR-Codex overview

This PR focuses on enhancing the high-availability (HA) features of the abstract-node Helm chart, including the addition of HA services, updates to configurations, and improvements in deployment templates.

Detailed summary

  • Updated version in Chart.yaml from 0.1.39 to 0.1.40.
  • Added HA support in pdb.yaml, service.yaml, and service-core.yaml.
  • Introduced new templates for HA core and API services.
  • Modified statefulset.yaml to conditionally set names and args based on HA.
  • Enhanced deployment-api.yaml with HA configurations.
  • Updated values.yaml to include HA settings and parameters.
  • Added helper functions in _helpers.tpl for HA component names.
  • Adjusted readiness and liveness probes to support HA scenarios.

✨ Ask PR-Codex anything about this PR by commenting with /codex {your question}

@coffeexcoin coffeexcoin force-pushed the feat/helm-ha-multicomponent branch from ccd9f59 to 2e6ee17 Compare June 3, 2026 12:40
@coffeexcoin coffeexcoin marked this pull request as ready for review June 3, 2026 12:40
@coffeexcoin coffeexcoin merged commit 85641be into main Jun 3, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant