Files
zeekay 121a85162f k8s(financial): bump lux-financial to v1.2.0
Expanded solutions (10 new industries) and products (Compliance & Data
section) to cover full docs.lux.financial capability surface.
2026-04-20 22:33:19 -07:00

203 lines
4.6 KiB
YAML

---
# Lux Bootnode API - Node provisioning backend
# Cluster: lux-k8s
apiVersion: apps/v1
kind: Deployment
metadata:
name: bootnode-api
namespace: lux-cloud
labels:
app: bootnode-api
app.kubernetes.io/name: bootnode-api
app.kubernetes.io/component: api
app.kubernetes.io/part-of: lux-cloud
app.kubernetes.io/managed-by: kubectl
spec:
replicas: 3
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: bootnode-api
cluster: lux-k8s
template:
metadata:
labels:
app: bootnode-api
cluster: lux-k8s
app.kubernetes.io/name: bootnode-api
app.kubernetes.io/component: api
app.kubernetes.io/part-of: lux-cloud
spec:
imagePullSecrets:
- name: ghcr-secret
containers:
- name: bootnode-api
image: ghcr.io/hanzoai/bootnode-api:0.1.0
imagePullPolicy: Always
ports:
- name: http
containerPort: 3000
protocol: TCP
envFrom:
- secretRef:
name: bootnode-secrets
readinessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
livenessProbe:
httpGet:
path: /health
port: 3000
initialDelaySeconds: 30
periodSeconds: 15
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: 2000m
memory: 2Gi
---
apiVersion: v1
kind: Service
metadata:
name: bootnode-api
namespace: lux-cloud
labels:
app: bootnode-api
app.kubernetes.io/name: bootnode-api
app.kubernetes.io/part-of: lux-cloud
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 3000
protocol: TCP
name: http
selector:
app: bootnode-api
cluster: lux-k8s
---
# Lux Cloud Web - Cloud management frontend
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-cloud-web
namespace: lux-cloud
labels:
app: lux-cloud-web
app.kubernetes.io/name: lux-cloud-web
app.kubernetes.io/component: web
app.kubernetes.io/part-of: lux-cloud
app.kubernetes.io/managed-by: kubectl
spec:
replicas: 2
strategy:
type: RollingUpdate
rollingUpdate:
maxSurge: 1
maxUnavailable: 0
selector:
matchLabels:
app: lux-cloud-web
template:
metadata:
labels:
app: lux-cloud-web
app.kubernetes.io/name: lux-cloud-web
app.kubernetes.io/component: web
app.kubernetes.io/part-of: lux-cloud
spec:
imagePullSecrets:
- name: ghcr-secret
containers:
- name: lux-cloud-web
image: ghcr.io/hanzoai/lux-cloud-web:0.1.0
imagePullPolicy: Always
ports:
- name: http
containerPort: 3000
protocol: TCP
readinessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 10
periodSeconds: 5
livenessProbe:
httpGet:
path: /
port: 3000
initialDelaySeconds: 15
periodSeconds: 15
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
cpu: 500m
memory: 512Mi
---
apiVersion: v1
kind: Service
metadata:
name: lux-cloud-web
namespace: lux-cloud
labels:
app: lux-cloud-web
app.kubernetes.io/name: lux-cloud-web
app.kubernetes.io/part-of: lux-cloud
spec:
type: ClusterIP
ports:
- port: 80
targetPort: 3000
protocol: TCP
name: http
selector:
app: lux-cloud-web
---
# Ingress for cloud.lux.network
apiVersion: networking.k8s.io/v1
kind: Ingress
metadata:
name: lux-cloud
namespace: lux-cloud
labels:
app: lux-cloud
app.kubernetes.io/name: lux-cloud
app.kubernetes.io/part-of: lux-cloud
annotations:
cert-manager.io/cluster-issuer: letsencrypt-prod
spec:
ingressClassName: ingress
tls:
- hosts:
- cloud.lux.network
secretName: cloud-lux-network-tls
rules:
- host: cloud.lux.network
http:
paths:
- path: /api
pathType: Prefix
backend:
service:
name: bootnode-api
port:
number: 80
- path: /
pathType: Prefix
backend:
service:
name: lux-cloud-web
port:
number: 80