mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
## Summary This PR resolves all CI failures following the migration to the new DataHaven Github & Docker Hub organizations, and correctly leverage self-hosted GitHub runners (`DH-runners` group) by eliminating sudo dependencies. ## Key Changes ### 🔧 **Eliminated sudo requirements across all workflows** - **Setup Environment**: Installed mold linker and system dependencies in userspace without sudo - **Tool Installation**: Replaced apt/system package installations with direct binary downloads: - Kurtosis: Direct binary download from GitHub releases (v1.10.3) - Taplo: Direct binary installation for Cargo.toml formatting - cargo-nextest: Using `cargo install` instead of GitHub action (v0.9.100) - **Runner Cleanup**: Skipped cleanup-runner action entirely on self-hosted runners (bare-metal manages disk space externally) ### 🏷️ **Workflow optimizations** - **Group-based targeting**: All heavy workloads (Rust builds, E2E tests) now run on `DH-runners` runners - **Dependency management**: Used `install-deps: false` flag instead of hardcoded runner detection Co-authored-by: Claude <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| chainspecs | ||
| charts | ||
| environments | ||
| README.md | ||
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