mirror of
https://github.com/datahaven-xyz/datahaven
synced 2026-05-24 09:50:01 +00:00
This PR contains improvements to the DataHaven deployment infrastructure: 1. Directory restructure: Moved from `deployment/` to `deploy/` (more common for K8s / Helm -based deployment configs). 2. Added **local environment** support: updated CLI to support deploying to a local K8s cluster. 3. Manual deployment script: `deploy/scripts/deploy.sh` for manual deployments. 4. Environment-specific configurations: Structured values files for each environment. 5. Chart organization: Renamed bridges-common-relay to relay for clarity. --------- Co-authored-by: Gonza Montiel <gon.montiel@gmail.com> Co-authored-by: Gonza Montiel <gonzamontiel@users.noreply.github.com>
233 lines
No EOL
9.6 KiB
YAML
233 lines
No EOL
9.6 KiB
YAML
{{ $fullname := include "node.fullname" . }}
|
|
{{ $selectorLabels := include "node.selectorLabels" . }}
|
|
{{ $serviceLabels := include "node.serviceLabels" . }}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $fullname }}
|
|
{{- with .Values.node.serviceAnnotations }}
|
|
annotations:
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
labels:
|
|
{{- $serviceLabels | nindent 4 }}
|
|
spec:
|
|
type: ClusterIP
|
|
clusterIP: None
|
|
selector:
|
|
{{- $selectorLabels | nindent 4 }}
|
|
ports:
|
|
{{- if $.Values.node.substrateApiSidecar.enabled }}
|
|
- port: 8080
|
|
name: api-sidecar
|
|
targetPort: api-sidecar
|
|
{{- end }}
|
|
{{- if $.Values.node.legacyRpcFlags }}
|
|
- port: 9933
|
|
name: http-rpc
|
|
targetPort: http-rpc
|
|
- port: 9944
|
|
name: websocket-rpc
|
|
targetPort: websocket-rpc
|
|
{{- else }}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.rpcPort | int }}
|
|
name: rpc
|
|
targetPort: rpc
|
|
{{- /* Legacy RPC port, to be removed in the next major chart version */}}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.httpPort | int }}
|
|
name: http-rpc
|
|
targetPort: rpc
|
|
{{- /* Legacy RPC port, to be removed in the next major chart version */}}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.wsPort | int }}
|
|
name: websocket-rpc
|
|
targetPort: rpc
|
|
{{- end }}
|
|
{{- if and $.Values.node.serviceMonitor.enabled (not $.Values.node.perNodeServices.apiService.enabled) }}
|
|
- port: {{ .Values.node.prometheus.port | int }}
|
|
name: prometheus
|
|
targetPort: prometheus
|
|
{{- end }}
|
|
{{- if and $.Values.node.collatorRelayChain.prometheus.enabled (not $.Values.node.perNodeServices.apiService.enabled) }}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.relayChainPrometheusPort | int }}
|
|
name: prom-relaychain
|
|
targetPort: prom-relaychain
|
|
{{- end }}
|
|
{{- if or .Values.node.enableSidecarReadinessProbe .Values.node.enableSidecarLivenessProbe }}
|
|
- port: 8001
|
|
name: http-ws-he
|
|
targetPort: http-ws-he
|
|
{{- end }}
|
|
{{- with .Values.node.serviceExtraPorts }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
---
|
|
{{range $i := until (max .Values.autoscaling.maxReplicas .Values.node.replicas | int) }}
|
|
{{- if $.Values.node.perNodeServices.apiService.enabled }}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $fullname }}-{{ $i }}
|
|
labels:
|
|
{{- $serviceLabels | nindent 4 }}
|
|
node: {{ $fullname }}-{{ $i }}
|
|
instance: {{ $fullname }}-{{ $i }}
|
|
annotations:
|
|
{{- if $.Values.node.perNodeServices.apiService.externalDns.enabled }}
|
|
{{- if $.Values.node.perNodeServices.apiService.externalDns.customPrefix }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $.Values.node.perNodeServices.apiService.externalDns.customPrefix }}-{{ $i }}.{{ $.Values.node.perNodeServices.apiService.externalDns.hostname }}
|
|
{{- else }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $fullname }}-{{ $i }}.{{ $.Values.node.perNodeServices.apiService.externalDns.hostname }}
|
|
{{- end }}
|
|
external-dns.alpha.kubernetes.io/ttl: {{ $.Values.node.perNodeServices.apiService.externalDns.ttl | squote }}
|
|
{{- end }}
|
|
{{- with $.Values.node.perNodeServices.apiService.annotations }}
|
|
{{ toYaml . | indent 4}}
|
|
{{- end }}
|
|
spec:
|
|
{{- if eq $.Values.node.perNodeServices.apiService.type "ClusterIP" }}
|
|
type: ClusterIP
|
|
clusterIP: None
|
|
{{- else if eq $.Values.node.perNodeServices.apiService.type "NodePort" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.apiService.externalTrafficPolicy }}
|
|
type: NodePort
|
|
{{- else if eq $.Values.node.perNodeServices.apiService.type "LoadBalancer" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.apiService.externalTrafficPolicy }}
|
|
type: LoadBalancer
|
|
{{- end }}
|
|
selector:
|
|
{{- $selectorLabels | nindent 4 }}
|
|
statefulset.kubernetes.io/pod-name: {{ $fullname }}-{{ $i }}
|
|
ports:
|
|
{{- if $.Values.node.legacyRpcFlags }}
|
|
- port: 9933
|
|
name: http-rpc
|
|
targetPort: http-rpc
|
|
- port: 9944
|
|
name: websocket-rpc
|
|
targetPort: websocket-rpc
|
|
{{- else }}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.rpcPort | int }}
|
|
name: rpc
|
|
targetPort: rpc
|
|
{{- /* Legacy RPC port, to be removed in the next major chart version */}}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.httpPort | int }}
|
|
name: http-rpc
|
|
targetPort: rpc
|
|
{{- /* Legacy RPC port, to be removed in the next major chart version */}}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.wsPort | int }}
|
|
name: websocket-rpc
|
|
targetPort: rpc
|
|
{{- end }}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.prometheusPort | int }}
|
|
name: prometheus
|
|
targetPort: prometheus
|
|
{{- if $.Values.node.collatorRelayChain.prometheus.enabled }}
|
|
- port: {{ $.Values.node.perNodeServices.apiService.relayChainPrometheusPort | int }}
|
|
name: prom-relaychain
|
|
targetPort: prom-relaychain
|
|
{{- end }}
|
|
{{- if $.Values.substrateApiSidecar.metrics.enabled }}
|
|
- port: {{ $.Values.substrateApiSidecar.metrics.port | int }}
|
|
name: prom-sidecar
|
|
targetPort: prom-sidecar
|
|
{{- end }}
|
|
{{- with $.Values.node.perNodeServices.apiService.extraPorts }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{- if and $.Values.node.perNodeServices.relayP2pService.enabled (include "node.hasRelaychain" $) }}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $fullname }}-{{ $i }}-relay-chain-p2p
|
|
labels:
|
|
{{- $serviceLabels | nindent 4 }}
|
|
annotations:
|
|
{{- if $.Values.node.perNodeServices.relayP2pService.externalDns.enabled }}
|
|
{{- if $.Values.node.perNodeServices.relayP2pService.externalDns.customPrefix }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $.Values.node.perNodeServices.relayP2pService.externalDns.customPrefix }}-{{ $i }}.{{ $.Values.node.perNodeServices.relayP2pService.externalDns.hostname }}
|
|
{{- else }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $fullname }}-{{ $i }}.{{ $.Values.node.perNodeServices.relayP2pService.externalDns.hostname }}
|
|
{{- end }}
|
|
external-dns.alpha.kubernetes.io/ttl: {{ $.Values.node.perNodeServices.relayP2pService.externalDns.ttl | squote }}
|
|
{{- end }}
|
|
{{- with merge $.Values.node.perNodeServices.relayP2pService.annotations $.Values.node.perNodeServices.paraP2pService.annotations }}
|
|
{{ toYaml . | indent 4}}
|
|
{{- end }}
|
|
spec:
|
|
{{- if eq $.Values.node.perNodeServices.relayP2pService.type "ClusterIP" }}
|
|
type: ClusterIP
|
|
{{- else if eq $.Values.node.perNodeServices.relayP2pService.type "NodePort" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.relayP2pService.externalTrafficPolicy }}
|
|
type: NodePort
|
|
{{- else if eq $.Values.node.perNodeServices.relayP2pService.type "LoadBalancer" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.relayP2pService.externalTrafficPolicy }}
|
|
type: LoadBalancer
|
|
{{- end }}
|
|
publishNotReadyAddresses: {{ $.Values.node.perNodeServices.relayP2pService.publishUnreadyAddresses }}
|
|
selector:
|
|
{{- $selectorLabels | nindent 4 }}
|
|
statefulset.kubernetes.io/pod-name: {{ $fullname }}-{{ $i }}
|
|
ports:
|
|
- name: p2p
|
|
port: {{ $.Values.node.perNodeServices.relayP2pService.port | int }}
|
|
targetPort: p2p
|
|
{{- if $.Values.node.perNodeServices.relayP2pService.ws.enabled }}
|
|
- name: ws
|
|
port: {{ $.Values.node.perNodeServices.relayP2pService.ws.port | int }}
|
|
targetPort: p2p-ws
|
|
{{- end }}
|
|
{{- with $.Values.node.perNodeServices.relayP2pService.extraPorts }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{- if and $.Values.node.isParachain $.Values.node.perNodeServices.paraP2pService.enabled }}
|
|
apiVersion: v1
|
|
kind: Service
|
|
metadata:
|
|
name: {{ $fullname }}-{{ $i }}-para-chain-p2p
|
|
labels:
|
|
{{- $serviceLabels | nindent 4 }}
|
|
annotations:
|
|
{{- if $.Values.node.perNodeServices.paraP2pService.externalDns.enabled }}
|
|
{{- if $.Values.node.perNodeServices.paraP2pService.externalDns.customPrefix }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $.Values.node.perNodeServices.paraP2pService.externalDns.customPrefix }}-{{ $i }}.{{ $.Values.node.perNodeServices.paraP2pService.externalDns.hostname }}
|
|
{{- else }}
|
|
external-dns.alpha.kubernetes.io/hostname: {{ $fullname }}-{{ $i }}.{{ $.Values.node.perNodeServices.paraP2pService.externalDns.hostname }}
|
|
{{- end }}
|
|
external-dns.alpha.kubernetes.io/ttl: {{ $.Values.node.perNodeServices.paraP2pService.externalDns.ttl | squote }}
|
|
{{- end }}
|
|
{{- with merge $.Values.node.perNodeServices.relayP2pService.annotations $.Values.node.perNodeServices.paraP2pService.annotations }}
|
|
{{ toYaml . | indent 4}}
|
|
{{- end }}
|
|
spec:
|
|
{{- if eq $.Values.node.perNodeServices.paraP2pService.type "ClusterIP" }}
|
|
type: ClusterIP
|
|
{{- else if eq $.Values.node.perNodeServices.paraP2pService.type "NodePort" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.paraP2pService.externalTrafficPolicy }}
|
|
type: NodePort
|
|
{{- else if eq $.Values.node.perNodeServices.paraP2pService.type "LoadBalancer" }}
|
|
externalTrafficPolicy: {{ $.Values.node.perNodeServices.paraP2pService.externalTrafficPolicy }}
|
|
type: LoadBalancer
|
|
{{- end }}
|
|
publishNotReadyAddresses: {{ $.Values.node.perNodeServices.paraP2pService.publishUnreadyAddresses }}
|
|
selector:
|
|
{{- $selectorLabels | nindent 4 }}
|
|
statefulset.kubernetes.io/pod-name: {{ $fullname }}-{{ $i }}
|
|
ports:
|
|
- name: p2p
|
|
port: {{ $.Values.node.perNodeServices.paraP2pService.port | int }}
|
|
targetPort: para-p2p
|
|
{{- if $.Values.node.perNodeServices.paraP2pService.ws.enabled }}
|
|
- name: ws
|
|
port: {{ $.Values.node.perNodeServices.paraP2pService.ws.port | int }}
|
|
targetPort: para-p2p-ws
|
|
{{- end }}
|
|
{{- with $.Values.node.perNodeServices.paraP2pService.extraPorts }}
|
|
{{- toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
---
|
|
{{ end }} |