-
Notifications
You must be signed in to change notification settings - Fork 6
Add aztec-node chart #131
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
bussyjd
wants to merge
21
commits into
main
Choose a base branch
from
feature/aztec-node
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Add aztec-node chart #131
Conversation
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
- Add aztec-node to main repository README chart list - Create README.md.gotmpl template for helm-docs generation - Update all namespace references from 'aztec' to 'aztec-testnet' - Generate complete documentation with helm-docs The aztec-node chart deploys Aztec network nodes in three roles: - Full Node: Syncs and validates blocks - Sequencer: Produces blocks and participates in consensus - Prover: Generates zero-knowledge proofs
Remove checks for "prover-node" and "prover-agent" roles from the main statefulset.yaml template. These are not valid role values according to the chart's role validation (_helpers.tpl). Valid roles are: fullnode, sequencer, prover The main statefulset.yaml only handles fullnode and sequencer roles. When role=prover is set, separate StatefulSet templates are used: - statefulset-prover-broker.yaml - statefulset-prover-node.yaml - statefulset-prover-agent.yaml This fixes template rendering and ensures role validation works correctly.
When persistence.existingClaim is set, the volumes section was missing the 'volumes:' key, causing incorrect YAML structure. This would prevent prover-node pods from starting when using an existing PVC. Added the missing 'volumes:' key to match the pattern used in the emptyDir case and align with the main statefulset template.
Update version badges in charon and charon-cluster READMEs to reflect current chart versions (v0.4.8 and v0.3.8) and appVersion (v1.6.1). These changes are automatically generated by helm-docs based on the Chart.yaml files.
Add a new pre-commit hook that lints Helm charts using the same logic as the CI workflow. This ensures charts are validated locally before pushing, catching issues early. Features: - Uses CI-specific values files when available - Skips charts listed in skip-charts.txt - Ignores harmless dependency warnings for charts with local dependencies - Provides clear summary of linted, skipped, and failed charts This matches the behavior of .github/workflows/release.yml to ensure consistency between local development and CI.
Add minimal CI values configuration for aztec-node chart to enable automated testing in the release workflow. Configuration: - Role: fullnode (simplest role for testing) - Network: testnet - Persistence: disabled (not needed for CI) - Minimal resource requests for fast testing
Regenerate README to reflect updated default role in values.yaml (changed from fullnode to sequencer) and other recent value updates including hostNetwork and nodePort configuration.
Fix NodePort service template to use separate nodePort field (30400) instead of P2P port (40400) to comply with Kubernetes port range restrictions (30000-32767). Configure hostNetwork: true as the recommended default for best P2P performance, matching tested production configuration. NodePort remains available as a fallback option. Changes: - Add service.p2p.nodePort field (default: 30400) - Set hostNetwork: true as default - Update svc.nodeport.yaml to use nodePort field - Update all values-examples to use hostNetwork - Update README with hostNetwork as default, NodePort as alternative - Add L1 RPC endpoints to default values.yaml Validation: - Tested all 3 roles (fullnode, sequencer, prover) - Verified role-based validation (required fields enforced) - Confirmed correct StatefulSet and Service generation
The StatefulSet was referencing the wrong service name. It pointed to
the regular ClusterIP service instead of the headless service, which
prevented pods from getting stable DNS names.
Changes:
- Updated serviceName from {{ fullname }} to {{ fullname }}-headless
- This connects the StatefulSet to the headless service (clusterIP: None)
- Enables stable pod DNS names: pod-0.service.namespace.svc.cluster.local
Also updated README to reflect current values.yaml defaults for L1 URLs.
Add clearer description to helm-docs hook explaining that if files are modified, the user needs to stage the changes and commit again. This prevents confusion when README.md is auto-regenerated.
Removed aztec-node from skip-charts.txt now that the chart is fully configured with CI values file and templates are fixed.
Changed from ((var++)) to var=$((var + 1)) syntax to avoid exit code 1 when incrementing from 0 with set -e enabled. Also added check to prevent iterating over empty skip_list array with set -u enabled.
BREAKING CHANGE: All Kubernetes resources now follow the naming pattern:
l2-{role}-node-{network}-{component}
Examples:
- Fullnode: l2-full-node-sepolia-node
- Sequencer: l2-sequencer-node-sepolia-node
- Prover: l2-prover-node-sepolia-{broker|node|agent}
This requires deletion of existing StatefulSets and Services before upgrade.
Changes:
- Add networkName field to values.yaml (default: sepolia)
- Create chart.resourceName helper for standardized naming
- Update all 13 template files to use new naming
- Update README with new service names and kubectl examples
- Update DNS references in prover components
- Update RBAC resource names
Updated README to use correct resource naming pattern:
l2-{role}-node-{networkName}-{component}
Examples now show:
- l2-full-node-sepolia-node (fullnode)
- l2-sequencer-node-sepolia-node (sequencer)
- l2-prover-node-sepolia-broker/node/agent (prover components)
This matches the actual resource names generated by chart.resourceName helper.
OisinKyne
previously approved these changes
Oct 9, 2025
OisinKyne
previously approved these changes
Oct 9, 2025
apham0001
previously approved these changes
Oct 9, 2025
Signed-off-by: JeanDaniel Bussy <[email protected]>
OisinKyne
approved these changes
Oct 21, 2025
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.
Summary
This PR integrates the new
aztec-nodeHelm chart.Changes:
aztectoaztec-testnetthroughout documentationprover-node,prover-agent) from main statefulsetREADME.md.gotmpltemplate and generated complete documentation with helm-docsChart Overview:
The
aztec-nodechart deploys Aztec network nodes in three distinct roles:Role Architecture:
When
role: proveris set, the chart deploys 3 separate StatefulSets:statefulset-prover-broker.yaml- Manages job queuestatefulset-prover-node.yaml- Creates jobs and publishes proofs to L1statefulset-prover-agent.yaml- Executes proof generation (scalable)The main
statefulset.yamlonly handlesfullnodeandsequencerroles.Test Plan
Deployment Examples
Full Node:
Sequencer:
helm install aztec-sequencer ./charts/aztec-node \ -f charts/aztec-node/values-examples/sequencer.yaml \ --set sequencer.attesterPrivateKey="0xYOUR_KEY" \ -n aztec-testnet --create-namespaceProver:
helm install aztec-prover ./charts/aztec-node \ -f charts/aztec-node/values-examples/prover.yaml \ --set prover.node.publisherPrivateKey="0xYOUR_KEY" \ -n aztec-testnet --create-namespaceticket: none