Files
zeekay 0aa9c4e346 feat: add Explorer + MPC product pages, fleet management, operator, Helm charts, and CI/CD
- Add Explorer product page with branded block explorer deployment, contract
  verification, Etherscan-compatible API, and multi-chain support
- Add MPC product page with deep Lux MPC integration: CGGMP21 (ECDSA),
  FROST (EdDSA), LSS resharing, 15+ chain support, threshold signing API
- Update landing page with 6-product grid (Node, Data, Wallets, Explorer,
  MPC, Rollups) and 8 API cards including Explorer API and MPC Signing
- Update navbar and command menu with Explorer and MPC products
- Add Lux fleet management dashboard, observability, and services pages
- Add AI chat component and unified navigation with org switcher
- Add Kubernetes operator (Rust) for multi-chain node lifecycle management
- Add Lux Helm charts with genesis configs for devnet/testnet/mainnet
- Add docker-release.yml CI/CD pipeline for automated DOKS deployment
- Add monitoring, network policies, web deployments, and ingress updates
- Refactor API: fleet management, billing tracker, observability endpoints
- Update brand config, API client, and infrastructure manifests
2026-03-12 14:48:40 -07:00

86 lines
2.2 KiB
YAML

{{- $network := index .Values.networks .Values.network }}
{{- $namespace := $network.namespace }}
{{- $stakingPort := $network.stakingPort }}
{{- $httpPort := $network.httpPort }}
# Headless service for StatefulSet DNS resolution
apiVersion: v1
kind: Service
metadata:
name: luxd-headless
namespace: {{ $namespace }}
labels:
app: luxd
lux-network: {{ .Values.network }}
spec:
clusterIP: None
publishNotReadyAddresses: true
selector:
app: luxd
lux-network: {{ .Values.network }}
ports:
- name: http
port: {{ $httpPort }}
- name: staking
port: {{ $stakingPort }}
{{- if .Values.nodeServices.enabled }}
---
# Main LoadBalancer service (round-robin across all pods)
apiVersion: v1
kind: Service
metadata:
name: luxd
namespace: {{ $namespace }}
labels:
app: luxd
lux-network: {{ .Values.network }}
annotations:
service.beta.kubernetes.io/do-loadbalancer-name: "k8s-luxd-{{ .Values.network }}"
{{- with .Values.nodeServices.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ .Values.nodeServices.type }}
selector:
app: luxd
lux-network: {{ .Values.network }}
ports:
- name: http
port: {{ $httpPort }}
targetPort: {{ $httpPort }}
- name: staking
port: {{ $stakingPort }}
targetPort: {{ $stakingPort }}
# Individual LoadBalancer services per pod for stable external IPs
# CRITICAL for P2P: each validator needs its own public IP
{{- range $i := until (int .Values.replicas) }}
---
apiVersion: v1
kind: Service
metadata:
name: luxd-{{ $i }}
namespace: {{ $namespace }}
labels:
app: luxd
lux-network: {{ $.Values.network }}
pod-index: "{{ $i }}"
annotations:
service.beta.kubernetes.io/do-loadbalancer-name: "k8s-luxd-{{ $.Values.network }}-{{ $i }}"
{{- with $.Values.nodeServices.annotations }}
{{- toYaml . | nindent 4 }}
{{- end }}
spec:
type: {{ $.Values.nodeServices.type }}
selector:
app: luxd
lux-network: {{ $.Values.network }}
statefulset.kubernetes.io/pod-name: luxd-{{ $i }}
ports:
- name: http
port: {{ $httpPort }}
targetPort: {{ $httpPort }}
- name: staking
port: {{ $stakingPort }}
targetPort: {{ $stakingPort }}
{{- end }}
{{- end }}