feat(chart): add external node ha mode#27
Merged
Conversation
ccd9f59 to
2e6ee17
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What changed
Adds an opt-in HA mode for the
abstract-nodeHelm 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. Settingha.treeApi.enabled=falserenders the exactcore,tree,tree_fetchercore 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-secrethelm template abstract charts/abstract-node --set database.secretName=db-secret --set ha.enabled=true --set ha.api.replicaCount=3ha.treeApi.enabled=false, and HA rendering withshutdownWrapper.enabled=true.PR-Codex overview
This PR focuses on enhancing the high-availability (HA) features of the
abstract-nodeHelm chart, including the addition of HA services, updates to configurations, and improvements in deployment templates.Detailed summary
versioninChart.yamlfrom0.1.39to0.1.40.pdb.yaml,service.yaml, andservice-core.yaml.statefulset.yamlto conditionally set names and args based on HA.deployment-api.yamlwith HA configurations.values.yamlto include HA settings and parameters._helpers.tplfor HA component names.