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>
146 lines
3.9 KiB
YAML
146 lines
3.9 KiB
YAML
# -- Number of replicas for the pod
|
|
|
|
replicaCount: 1
|
|
|
|
image:
|
|
# -- Image repository
|
|
repository: paritytech/substrate-relay
|
|
# -- Image pull policy
|
|
pullPolicy: Always
|
|
# -- Image tag
|
|
tag: latest
|
|
|
|
# -- Reference to one or more secrets to be used when pulling images.
|
|
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/pull-image-private-registry/
|
|
imagePullSecrets: []
|
|
# -- Provide a name in place of node for `app:` labels
|
|
nameOverride: ""
|
|
# -- Provide a name to substitute for the full names of resources
|
|
fullnameOverride: ""
|
|
# -- Additional common labels on pods and services
|
|
extraLabels: {}
|
|
|
|
relayData:
|
|
# -- (string) Path on the volume to store relay data
|
|
storagePath: "/relay-data"
|
|
# -- Storage class to use for persistent volume
|
|
storageClass: ""
|
|
# -- Size of the volume for relay data
|
|
volumeSize: 10Gi
|
|
# -- Annotations to add to the volumeClaimTemplates
|
|
annotations: {}
|
|
|
|
# -- Service account for the node to use.
|
|
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/configure-service-account/
|
|
serviceAccount:
|
|
# -- Enable creation of a Service Account for the main container
|
|
create: true
|
|
# -- Annotations to add to the Service Account
|
|
annotations: {}
|
|
# -- Service Account name
|
|
name: ""
|
|
|
|
params: []
|
|
|
|
# -- Config file
|
|
config:
|
|
# -- Config name
|
|
name: ""
|
|
|
|
# -- Secrets will be mounted to pod /secrets/{key}
|
|
secrets: {}
|
|
# bridge-hub-wococo-signer-file: //Charlie
|
|
|
|
# -- Override secrets with already existing secret name.
|
|
existingSecretName: ""
|
|
|
|
# -- Set environment variables
|
|
env: {}
|
|
# RUST_LOG: 'runtime=trace'
|
|
|
|
# -- Set extra command line arguments
|
|
extraArgs: []
|
|
|
|
# -- Annotations to add to the Pod
|
|
podAnnotations: {}
|
|
|
|
# -- SecurityContext holds pod-level security attributes and common container settings.
|
|
# ref: https://kubernetes.io/docs/tasks/configure-pod-container/security-context/
|
|
podSecurityContext: {}
|
|
# fsGroup: 2000
|
|
|
|
# -- SecurityContext holds pod-level security attributes and common container settings.
|
|
securityContext: {}
|
|
# capabilities:
|
|
# drop:
|
|
# - ALL
|
|
# readOnlyRootFilesystem: true
|
|
# runAsNonRoot: true
|
|
# runAsUser: 1000
|
|
|
|
# -- Service
|
|
service:
|
|
# -- Service type
|
|
type: ClusterIP
|
|
# -- Service port
|
|
port: 80
|
|
|
|
# -- Resource limits & requests
|
|
resources: {}
|
|
# limits:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
# requests:
|
|
# cpu: 100m
|
|
# memory: 128Mi
|
|
|
|
# -- Define which Nodes the Pods are scheduled on
|
|
nodeSelector: {}
|
|
|
|
# -- Tolerations for use with node taints
|
|
tolerations: []
|
|
|
|
# -- Assign custom affinity rules
|
|
affinity: {}
|
|
|
|
# -- Expose metrics via Prometheus format in /metrics endpoint.
|
|
prometheus:
|
|
# -- Expose Prometheus metrics
|
|
enabled: false
|
|
# -- The port for exposed Prometheus metrics
|
|
port: 9615
|
|
|
|
# -- Service Monitor of Prometheus-Operator
|
|
# ref: https://github.com/prometheus-operator/prometheus-operator/blob/main/Documentation/user-guides/getting-started.md#include-servicemonitors
|
|
serviceMonitor:
|
|
# -- Enables Service Monitor
|
|
enabled: false
|
|
# -- Namespace to deploy Service Monitor. If not set deploys in the same namespace with the chart
|
|
namespace:
|
|
# -- Scrape interval
|
|
interval: 30s
|
|
# -- Scrape timeout
|
|
scrapeTimeout: 10s
|
|
# -- Labels to scrape
|
|
targetLabels:
|
|
- node
|
|
# -- Relabelings config
|
|
relabelings: []
|
|
# -- Metric relabelings config
|
|
metricRelabelings: []
|
|
|
|
# -- CronJobs to automatically claim relayer rewards
|
|
rewards: {}
|
|
# - name: rococoToWestendRelayer
|
|
# # -- cron schedule
|
|
# schedule: "00 01 * * *"
|
|
# # -- Public address of the relayer
|
|
# address: "5Fxxx"
|
|
# # -- Bridge Hub RPC URL to use
|
|
# rpc_url: "wss://example.com"
|
|
# # -- Bridge line ID
|
|
# lane_id: "0x00000002"
|
|
# # -- Bridged Chain ID, for example [rococo](https://github.com/paritytech/polkadot-sdk/blob/7241a8db7b3496816503c6058dae67f66c666b00/bridges/testing/environments/rococo-westend/bridges_rococo_westend.sh#L349).
|
|
# bridged_chain_id: "0x62687764"
|
|
# # -- Secret name of the seed phrase of the relayer
|
|
# seed_phrase_secret_name: "bridge-hub-rococo-signer-file"
|