Repository navigation
Add aztec-node chart - #131
Merged
Merged
Conversation
added 5 commits
October 7, 2025 15:45
- 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.
added 10 commits
October 7, 2025 17:01
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.
added 3 commits
October 7, 2025 18:59
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 <jd@obol.tech>
OisinKyne
previously approved these changes
Oct 21, 2025
OisinKyne
previously approved these changes
Nov 5, 2025
* feat: add external Kubernetes secret support for aztec-node attesterPrivateKey Add support for referencing pre-existing Kubernetes secrets for the sequencer's attesterPrivateKey, enabling better secrets management for production deployments on GKE and other platforms. Changes: - Add sequencer.attesterPrivateKeySecretName field in values.yaml - Make Secret resource creation conditional based on configuration method - Update StatefulSet volume to support both inline and external secrets - Enhance validation to enforce exactly one secret method (not both, not neither) - Add comprehensive documentation with usage examples in README The implementation uses a single field (attesterPrivateKeySecretName) and assumes the secret key is always "keystore.json" to keep the configuration lean. Users create secrets with: kubectl create secret --from-file=keystore.json=keystore.json This maintains full backward compatibility with the existing inline private key approach while providing a production-ready path for external secret management. * chore: cleanup * chore: cleanup * chore: cleanup * docs: restore external secrets section in README and add reference in Install section * docs: re-add external secrets documentation section The section was removed during merge, restoring it to ensure the link in the Install a Sequencer section works correctly. * docs: move external secrets documentation to README.md.gotmpl template Move the external secrets documentation from manually-edited README.md into the README.md.gotmpl template to ensure it persists when helm-docs regenerates the documentation. This prevents the content from being lost during future documentation generation runs. * feat: add sequencer mainnet example --------- Co-authored-by: bussyjd <bussyjd@users.noreply.github.com>
#153) * feat: simplify Aztec node storage configuration by using built-in defaults Remove hardcoded storage map size defaults from values.yaml and make environment variables conditional in the template. This reduces configuration complexity while allowing power users to override when needed. Changes: - Remove dataStoreMapSize and worldStateMapSize defaults from values.yaml (Aztec uses 128GB by default) - Make DATA_STORE_MAP_SIZE_KB and WS_DB_MAP_SIZE_KB env vars conditional in statefulset template - Add documentation comments explaining Aztec's built-in defaults - Update sequencer-mainnet example to use pinned image tag 2.1.5 - Examples still include storage config for advanced users who need custom tuning This aligns with Aztec's official documentation which doesn't surface these configuration parameters, letting the node use sensible defaults. * feat: simplify Aztec node storage configuration by using built-in defaults Remove hardcoded storage map size defaults from values.yaml and make environment variables conditional in the template. This reduces configuration complexity while allowing power users to override when needed. Changes: - Remove dataStoreMapSize and worldStateMapSize defaults from values.yaml (Aztec uses 128GB by default) - Make DATA_STORE_MAP_SIZE_KB and WS_DB_MAP_SIZE_KB env vars conditional in statefulset template - Add documentation comments explaining Aztec's built-in defaults - Update sequencer-mainnet example to use pinned image tag 2.1.5 - Examples still include storage config for advanced users who need custom tuning This aligns with Aztec's official documentation which doesn't surface these configuration parameters, letting the node use sensible defaults.
#153) * feat: simplify Aztec node storage configuration by using built-in defaults Remove hardcoded storage map size defaults from values.yaml and make environment variables conditional in the template. This reduces configuration complexity while allowing power users to override when needed. Changes: - Remove dataStoreMapSize and worldStateMapSize defaults from values.yaml (Aztec uses 128GB by default) - Make DATA_STORE_MAP_SIZE_KB and WS_DB_MAP_SIZE_KB env vars conditional in statefulset template - Add documentation comments explaining Aztec's built-in defaults - Update sequencer-mainnet example to use pinned image tag 2.1.5 - Examples still include storage config for advanced users who need custom tuning This aligns with Aztec's official documentation which doesn't surface these configuration parameters, letting the node use sensible defaults. * feat: simplify Aztec node storage configuration by using built-in defaults Remove hardcoded storage map size defaults from values.yaml and make environment variables conditional in the template. This reduces configuration complexity while allowing power users to override when needed. Changes: - Remove dataStoreMapSize and worldStateMapSize defaults from values.yaml (Aztec uses 128GB by default) - Make DATA_STORE_MAP_SIZE_KB and WS_DB_MAP_SIZE_KB env vars conditional in statefulset template - Add documentation comments explaining Aztec's built-in defaults - Update sequencer-mainnet example to use pinned image tag 2.1.5 - Examples still include storage config for advanced users who need custom tuning This aligns with Aztec's official documentation which doesn't surface these configuration parameters, letting the node use sensible defaults.
… into feature/aztec-node
bussyjd
force-pushed
the
feature/aztec-node
branch
from
November 16, 2025 17:50
43edcaf to
6805268
Compare
Update chart version from 0.1.0 to 0.2.0 for minor release with: - Simplified storage configuration (using Aztec built-in defaults) - Updated Aztec image from 2.0.2 to 2.1.5 - Conditional storage environment variables in templates Changes: - Chart version: 0.1.0 -> 0.2.0 - App version: 2.0.2 -> 2.1.5 - README badges updated to reflect new versions
agaskrobot
approved these changes
Nov 16, 2025
OisinKyne
approved these changes
Nov 16, 2025
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.
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