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>
42 lines
1.2 KiB
YAML
42 lines
1.2 KiB
YAML
{{- if and .Values.ingress.enabled (not .Values.ingress.perReplica) -}}
|
|
{{- $fullName := include "node.fullname" . -}}
|
|
{{- if semverCompare ">=1.19-0" .Capabilities.KubeVersion.GitVersion -}}
|
|
apiVersion: networking.k8s.io/v1
|
|
{{- else if semverCompare ">=1.14-0 <1.19.0" .Capabilities.KubeVersion.GitVersion -}}
|
|
apiVersion: networking.k8s.io/v1beta1
|
|
{{- else -}}
|
|
apiVersion: extensions/v1beta1
|
|
{{- end }}
|
|
kind: Ingress
|
|
metadata:
|
|
name: {{ $fullName }}
|
|
labels:
|
|
{{- include "node.labels" . | nindent 4 }}
|
|
{{- with .Values.ingress.annotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
spec:
|
|
ingressClassName: {{ .Values.ingress.ingressClassName | quote }}
|
|
rules:
|
|
{{- if .Values.ingress.rules }}
|
|
{{- with .Values.ingress.rules }}
|
|
{{- (tpl (toYaml .) $) | nindent 6 }}
|
|
{{- end }}
|
|
{{- else }}
|
|
- host: "{{ tpl .Values.ingress.host . }}"
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: {{ $fullName }}
|
|
port:
|
|
number: {{ .Values.node.perNodeServices.apiService.rpcPort }}
|
|
{{- end }}
|
|
tls:
|
|
{{- with .Values.ingress.tls }}
|
|
{{- toYaml . | nindent 6 }}
|
|
{{- end }}
|
|
{{- end }}
|