deploy/README.md
This directory contains Helm charts and configurations for deploying DataHaven nodes and relayers to Kubernetes clusters across various environments (local development, staging, production).
deploy/
├── charts/ # Helm charts
│ ├── node/ # Node chart
│ │ └── datahaven/ # DataHaven-specific node configurations
│ │ ├── dh-bootnode.yaml
│ │ └── dh-validator.yaml
│ └── relay/ # Relay chart
│ └── snowbridge/ # Snowbridge-specific relay configurations
│ ├── dh-beacon-relay.yaml # Beacon chain relay
│ ├── dh-beefy-relay.yaml # BEEFY consensus relay
│ └── dh-execution-relay.yaml # Execution layer relay
├── environments/ # Environment-specific configurations
│ ├── local/ # Local development environment
│ │ └── values.yaml
│ ├── stagenet/ # Staging environment
│ └── values.yaml
└── scripts/ # Deployment scripts
The recommended way to deploy is using the DataHaven CLI with the deploy command:
cd test && bun cli deploy --e <environment>
Example:
cd test && bun cli deploy --e local
Available environments:
local: Local development environment (minimal resources)stagenet: Staging environment for pre-release testingdatahavenxyz/datahaven:local)The configuration is organized in layers, with later layers overriding earlier ones:
Base Configurations (charts/node/datahaven/):
Environment-Specific Configurations (environments/<env>/values.yaml):
The deployment process:
environments/<env>/values.yamlThese relayers enable trustless bidirectional token and message passing between Ethereum and DataHaven.
Local Testing:
cd test
bun cli launch # Starts local network without K8s
K8s Deployment:
cd test
bun cli deploy --e local
Building Local Images:
cd test
bun build:docker:operator # Builds datahavenxyz/datahaven:local
Updating Configurations:
environments/<env>/values.yaml for environment-specific changescharts/ for structural changesbun cli deploy --e <env>kubectl logs <pod-name>kubectl get sckubectl get svcFor more detailed deployment and testing workflows, see the test directory.