Files
universe/k8s/lux-explorer/indexer-all-chains.yaml
T

1096 lines
26 KiB
YAML

---
###############################################################################
# Lux Indexer - All chains (mainnet)
# Image: ghcr.io/luxfi/indexer:0.1.0 (Go, multi-arch)
# Cluster: lux-k8s (do-sfo3-lux-k8s)
#
# Chains: C (96369), P, X, A, B, Q, T, K, Z
# Zoo (200200), Hanzo (36963), SPC (36911), Pars (494949)
#
# All indexers share a single PostgreSQL instance (indexer-postgres).
# Database: indexer (user: indexer, pass: indexer-lux-2026)
###############################################################################
###############################################################################
# PostgreSQL for indexers
###############################################################################
---
apiVersion: v1
kind: Secret
metadata:
name: indexer-postgres-secret
namespace: lux-explorer
labels:
app: indexer-postgres
type: Opaque
stringData:
POSTGRES_USER: indexer
POSTGRES_PASSWORD: indexer-lux-2026
POSTGRES_DB: indexer
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: indexer-postgres
namespace: lux-explorer
labels:
app: indexer-postgres
spec:
serviceName: indexer-postgres
replicas: 1
selector:
matchLabels:
app: indexer-postgres
template:
metadata:
labels:
app: indexer-postgres
spec:
terminationGracePeriodSeconds: 30
containers:
- name: postgres
image: postgres:16-alpine
ports:
- containerPort: 5432
name: postgres
env:
- name: POSTGRES_USER
valueFrom:
secretKeyRef:
name: indexer-postgres-secret
key: POSTGRES_USER
- name: POSTGRES_PASSWORD
valueFrom:
secretKeyRef:
name: indexer-postgres-secret
key: POSTGRES_PASSWORD
- name: POSTGRES_DB
valueFrom:
secretKeyRef:
name: indexer-postgres-secret
key: POSTGRES_DB
- name: PGDATA
value: /var/lib/postgresql/data/pgdata
volumeMounts:
- name: data
mountPath: /var/lib/postgresql/data
resources:
requests:
cpu: 250m
memory: 512Mi
limits:
cpu: "2"
memory: 4Gi
readinessProbe:
exec:
command: [pg_isready, -U, indexer]
initialDelaySeconds: 5
periodSeconds: 5
timeoutSeconds: 3
livenessProbe:
exec:
command: [pg_isready, -U, indexer]
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 5
volumeClaimTemplates:
- metadata:
name: data
spec:
accessModes: [ReadWriteOnce]
storageClassName: do-block-storage
resources:
requests:
storage: 20Gi
---
apiVersion: v1
kind: Service
metadata:
name: indexer-postgres
namespace: lux-explorer
labels:
app: indexer-postgres
spec:
type: ClusterIP
selector:
app: indexer-postgres
ports:
- name: postgres
port: 5432
targetPort: 5432
protocol: TCP
###############################################################################
# C-Chain Indexer (chain ID 96369)
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-cchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: cchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: cchain
template:
metadata:
labels:
app: lux-indexer
chain: cchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=cchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/C/rpc"
- "-port=4000"
- "-poll=15s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
- name: CHAIN_ID
value: "96369"
- name: CHAIN_NAME
value: "Lux C-Chain"
ports:
- name: http
containerPort: 4000
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-cchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: cchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: cchain
ports:
- name: http
port: 4000
targetPort: 4000
###############################################################################
# P-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-pchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: pchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: pchain
template:
metadata:
labels:
app: lux-indexer
chain: pchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=pchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/P"
- "-port=4100"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4100
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-pchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: pchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: pchain
ports:
- name: http
port: 4100
targetPort: 4100
###############################################################################
# X-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-xchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: xchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: xchain
template:
metadata:
labels:
app: lux-indexer
chain: xchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=xchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/X"
- "-port=4200"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4200
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-xchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: xchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: xchain
ports:
- name: http
port: 4200
targetPort: 4200
###############################################################################
# A-Chain (Asset) Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-achain
namespace: lux-explorer
labels:
app: lux-indexer
chain: achain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: achain
template:
metadata:
labels:
app: lux-indexer
chain: achain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=achain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/A"
- "-port=4500"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4500
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-achain
namespace: lux-explorer
labels:
app: lux-indexer
chain: achain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: achain
ports:
- name: http
port: 4500
targetPort: 4500
###############################################################################
# B-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-bchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: bchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: bchain
template:
metadata:
labels:
app: lux-indexer
chain: bchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=bchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/B"
- "-port=4600"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4600
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-bchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: bchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: bchain
ports:
- name: http
port: 4600
targetPort: 4600
###############################################################################
# T-Chain (Transaction) Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-tchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: tchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: tchain
template:
metadata:
labels:
app: lux-indexer
chain: tchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=tchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/T"
- "-port=4700"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4700
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-tchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: tchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: tchain
ports:
- name: http
port: 4700
targetPort: 4700
###############################################################################
# Q-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-qchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: qchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: qchain
template:
metadata:
labels:
app: lux-indexer
chain: qchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=qchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/Q"
- "-port=4300"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4300
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-qchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: qchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: qchain
ports:
- name: http
port: 4300
targetPort: 4300
###############################################################################
# Z-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-zchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: zchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: zchain
template:
metadata:
labels:
app: lux-indexer
chain: zchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=zchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/Z"
- "-port=4400"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4400
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-zchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: zchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: zchain
ports:
- name: http
port: 4400
targetPort: 4400
###############################################################################
# K-Chain Indexer
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-kchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: kchain
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: kchain
template:
metadata:
labels:
app: lux-indexer
chain: kchain
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=kchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/K"
- "-port=4900"
- "-poll=30s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
ports:
- name: http
containerPort: 4900
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-kchain
namespace: lux-explorer
labels:
app: lux-indexer
chain: kchain
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: kchain
ports:
- name: http
port: 4900
targetPort: 4900
###############################################################################
# Zoo app chain EVM Indexer (chain ID 200200, blockchain ID 2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp)
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-zoo
namespace: lux-explorer
labels:
app: lux-indexer
chain: zoo
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: zoo
template:
metadata:
labels:
app: lux-indexer
chain: zoo
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=cchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp/rpc"
- "-port=4000"
- "-poll=15s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
- name: CHAIN_ID
value: "200200"
- name: CHAIN_NAME
value: "Zoo"
ports:
- name: http
containerPort: 4000
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-zoo
namespace: lux-explorer
labels:
app: lux-indexer
chain: zoo
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: zoo
ports:
- name: http
port: 4000
targetPort: 4000
###############################################################################
# Hanzo app chain EVM Indexer (chain ID 36963, blockchain ID 2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F)
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-hanzo
namespace: lux-explorer
labels:
app: lux-indexer
chain: hanzo
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: hanzo
template:
metadata:
labels:
app: lux-indexer
chain: hanzo
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=cchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F/rpc"
- "-port=4000"
- "-poll=15s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
- name: CHAIN_ID
value: "36963"
- name: CHAIN_NAME
value: "Hanzo"
ports:
- name: http
containerPort: 4000
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-hanzo
namespace: lux-explorer
labels:
app: lux-indexer
chain: hanzo
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: hanzo
ports:
- name: http
port: 4000
targetPort: 4000
###############################################################################
# SPC app chain EVM Indexer (chain ID 36911, blockchain ID rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ)
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-spc
namespace: lux-explorer
labels:
app: lux-indexer
chain: spc
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: spc
template:
metadata:
labels:
app: lux-indexer
chain: spc
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=cchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ/rpc"
- "-port=4000"
- "-poll=15s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
- name: CHAIN_ID
value: "36911"
- name: CHAIN_NAME
value: "SPC"
ports:
- name: http
containerPort: 4000
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-spc
namespace: lux-explorer
labels:
app: lux-indexer
chain: spc
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: spc
ports:
- name: http
port: 4000
targetPort: 4000
###############################################################################
# Pars app chain EVM Indexer (chain ID 494949, blockchain ID 2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F)
###############################################################################
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: lux-indexer-pars
namespace: lux-explorer
labels:
app: lux-indexer
chain: pars
spec:
replicas: 1
selector:
matchLabels:
app: lux-indexer
chain: pars
template:
metadata:
labels:
app: lux-indexer
chain: pars
spec:
imagePullSecrets:
- name: ghcr-luxfi
containers:
- name: indexer
image: ghcr.io/luxfi/indexer:0.1.0
imagePullPolicy: Always
args:
- "-chain=cchain"
- "-rpc=http://luxd-headless.lux-mainnet.svc.cluster.local:9630/v1/chain/2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F/rpc"
- "-port=4000"
- "-poll=15s"
env:
- name: DATABASE_URL
value: "postgres://explorer:[email protected]:5432/indexer?sslmode=disable"
- name: CHAIN_ID
value: "494949"
- name: CHAIN_NAME
value: "Pars"
ports:
- name: http
containerPort: 4000
resources:
requests:
cpu: 100m
memory: 256Mi
limits:
memory: 1Gi
---
apiVersion: v1
kind: Service
metadata:
name: lux-indexer-pars
namespace: lux-explorer
labels:
app: lux-indexer
chain: pars
spec:
type: ClusterIP
selector:
app: lux-indexer
chain: pars
ports:
- name: http
port: 4000
targetPort: 4000
###############################################################################
# IngressRoutes for indexer APIs
###############################################################################
---
apiVersion: hanzo.ai/v1alpha1
kind: IngressRoute
metadata:
name: lux-indexer-api
namespace: lux-explorer
labels:
app: lux-indexer
spec:
entryPoints:
- websecure
routes:
# C-Chain (main indexer API)
- kind: Rule
match: Host(`api-indexer.lux.network`)
services:
- name: lux-indexer-cchain
port: 4000
# P-Chain
- kind: Rule
match: Host(`api-indexer-pchain.lux.network`)
services:
- name: lux-indexer-pchain
port: 4100
# X-Chain
- kind: Rule
match: Host(`api-indexer-xchain.lux.network`)
services:
- name: lux-indexer-xchain
port: 4200
# A-Chain
- kind: Rule
match: Host(`api-indexer-achain.lux.network`)
services:
- name: lux-indexer-achain
port: 4500
# B-Chain
- kind: Rule
match: Host(`api-indexer-bchain.lux.network`)
services:
- name: lux-indexer-bchain
port: 4600
# Q-Chain
- kind: Rule
match: Host(`api-indexer-qchain.lux.network`)
services:
- name: lux-indexer-qchain
port: 4300
# T-Chain
- kind: Rule
match: Host(`api-indexer-tchain.lux.network`)
services:
- name: lux-indexer-tchain
port: 4700
# Z-Chain
- kind: Rule
match: Host(`api-indexer-zchain.lux.network`)
services:
- name: lux-indexer-zchain
port: 4400
# K-Chain
- kind: Rule
match: Host(`api-indexer-kchain.lux.network`)
services:
- name: lux-indexer-kchain
port: 4900
# Zoo app chain EVM
- kind: Rule
match: Host(`api-indexer-zoo.lux.network`)
services:
- name: lux-indexer-zoo
port: 4000
# Hanzo app chain EVM
- kind: Rule
match: Host(`api-indexer-hanzo.lux.network`)
services:
- name: lux-indexer-hanzo
port: 4000
# SPC app chain EVM
- kind: Rule
match: Host(`api-indexer-spc.lux.network`)
services:
- name: lux-indexer-spc
port: 4000
# Pars app chain EVM
- kind: Rule
match: Host(`api-indexer-pars.lux.network`)
services:
- name: lux-indexer-pars
port: 4000
tls:
certResolver: letsencrypt