mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
This PR enhances the Helm-based deployment system with several key improvements organized into the following areas: ## New Features ### Ingress Management - **Ingress per replica**: Added `ingress-per-replica` chart template that automatically generates an ingress for each node replica, exposing individual pod instances - **Traefik integration**: Added chart values to deploy Traefik as the ingress controller for local K8s clusters, enabling proper ingress testing (requires adding names to `/etc/hosts`) ### Solochain Support - **New relay chart**: Added dedicated Helm chart for Solochain relay deployment - **CLI integration**: Updated DataHaven CLI to deploy both Execution and Solochain relayers ## Configuration Improvements ### Environment Structure - **Modular configs**: Refactored environmental configurations from single `values.yaml` files into separate component-specific overrides for better organization ### Node Configuration - **Base config updates**: Improved base configurations for bootnode and validator nodes - **Network protocol**: Reverted from litep2p back to libp2p to resolve node communication issues on Stagenet - **Archive node routing**: In Stagenet, relayers now connect to the bootnode (configured as archive node) instead of validator nodes ## Storage & Deployment ### Persistent Storage - **Relayer database**: Added support for persistent volumes to store relayer databases instead of using ephemeral storage ### Deployment Scripts - **Documentation cleanup**: Removed obsolete test deploy.sh script and updated the deployment README with clearer instructions These changes provide a more robust, scalable, and maintainable deployment system for DataHaven infrastructure. <!-- This is an auto-generated comment: release notes by coderabbit.ai --> ## Summary by CodeRabbit * **New Features** * Added support for deploying new relayer types: Solochain and Execution relayers, with dedicated configuration and secret management. * Introduced per-replica ingress configuration for node deployments, allowing each replica to have its own ingress resource and hostname. * Added persistent storage options for relay data, configurable via storage path, class, and size. * Added new deployment configuration files for local and stagenet environments, including Traefik ingress controller setup. * Introduced a new relay category, "Solochain Relayers," for standalone chain operations and cross-chain communication. * **Improvements** * Updated deployment configurations to use container-specific environment YAML files for more granular control. * Enhanced relay and node configurations with new flags and backend options, including dynamic peer ID generation and automatic bootnode discovery. * Updated relayer endpoints to consistently use the bootnode for connections. * Refined relay configuration files for improved structure, clarity, and endpoint management. * **Bug Fixes** * Corrected deployment logic to reference the correct environment-specific configuration files during Helm deployments. * **Documentation** * Simplified and updated deployment documentation to focus on CLI-based deployment, removing outdated manual instructions and adding a concise overview of components and relayer types. * **Chores** * Removed deprecated deployment scripts and outdated configuration files to streamline the deployment process. <!-- end of auto-generated comment: release notes by coderabbit.ai --> --------- Co-authored-by: Claude <noreply@anthropic.com>
2.9 KiB
2.9 KiB
DataHaven Deployment
This directory contains all the necessary files and configurations for deploying DataHaven to various environments.
Directory Structure
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
Prerequisites
- Kubernetes cluster
- kubectl configured
- Helm 3.x installed
Deployment
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 testing
Environment Details
Local
- Single replica
- Minimal resources (256Mi memory, 100m CPU)
- Local image tags
- Small persistence size
Stagenet
- 2 replicas
- Medium resources (512Mi memory, 200m CPU)
- Stagenet image tags
- 20Gi persistence size
Configuration Structure
The configuration is organized in layers, with later layers overriding earlier ones:
-
Base Configurations (
charts/node/datahaven/):- Base configurations for DataHaven nodes
- Default values for bootnode and validator
-
Environment-Specific Configurations (
environments/<env>/values.yaml):- Environment-specific settings
- Resource configurations
- Image tags
- Replica counts
- Storage configurations
The deployment process:
- Loads base configurations from the respective chart directories
- Applies environment-specific overrides from
environments/<env>/values.yaml - Deploys the components with the merged configuration
Components
Nodes
- Bootnode: Entry point for the network
- Validator: Validates transactions and produces blocks
Relays
- Snowbridge Relays: Handle cross-chain communication with Ethereum
- Beacon Relay: Relays Ethereum beacon chain data
- BEEFY Relay: Relays BEEFY consensus data for finality
- Execution Relay: Relays Ethereum execution layer data
- Solochain Relayers: Handle standalone chain operations and cross-chain communication