Files
explore/deploy/k8s/explore-fe/deployments-testnet.yaml
T
zeekayandHanzo Dev e471fb7641 explore v1.1.4: native all-chains wallet-connect, login/menu fixes, correct chain manifest
- wallet: brandFamilyChains derives sibling networks (Lux mainnet/testnet/devnet)
  from the multi-tenant chain registry so connect/add presents EVERY registered
  network for the brand, not just the env chain; dedupe by id.
- login/menu: useProvider queryFn returns null (react-query v5 forbids undefined)
  + callers switched from '= {}' destructure default to '?? {}' so a null result
  no longer crashes the wallet hooks (the busted-menu root cause).
- manifest: fix Pars chainId 7070 -> 494949 (regression) and drop the forbidden
  'Subnet' term from sovereign L1 network names (-> '<Brand> Network').
- Validators page + /api/pchain proxy present; rebuild makes the live 5-validator
  view visible on explore.lux.network.

Co-authored-by: Hanzo Dev <[email protected]>
2026-07-08 11:44:04 -07:00

245 lines
7.1 KiB
YAML

---
# Lux Testnet — canonical brand image + env from ConfigMap.
apiVersion: apps/v1
kind: Deployment
metadata:
name: explore-fe-lux
namespace: lux-testnet
labels: {app: explore-fe, brand: lux, network: testnet}
spec:
replicas: 2
selector:
matchLabels: {app: explore-fe, brand: lux, network: testnet}
strategy:
type: RollingUpdate
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
template:
metadata:
labels: {app: explore-fe, brand: lux, network: testnet}
spec:
imagePullSecrets: [{name: ghcr-luxfi}]
containers:
- name: explore
image: ghcr.io/luxfi/explore:v1.0.1
imagePullPolicy: IfNotPresent
ports: [{containerPort: 3000, name: ui}]
env:
- {name: PORT, value: "3000"}
envFrom:
- configMapRef: {name: explore-env-lux}
resources:
requests: {cpu: 100m, memory: 256Mi}
limits: {cpu: 1, memory: 2Gi}
startupProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 30
readinessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 10
failureThreshold: 6
livenessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 5
---
apiVersion: v1
kind: Service
metadata:
name: explore-fe-lux
namespace: lux-testnet
labels: {app: explore-fe, brand: lux, network: testnet}
spec:
type: ClusterIP
selector: {app: explore-fe, brand: lux, network: testnet}
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
---
# Zoo Testnet
apiVersion: apps/v1
kind: Deployment
metadata:
name: explore-fe-zoo
namespace: lux-testnet
labels: {app: explore-fe, brand: zoo, network: testnet}
spec:
replicas: 2
selector:
matchLabels: {app: explore-fe, brand: zoo, network: testnet}
strategy:
type: RollingUpdate
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
template:
metadata:
labels: {app: explore-fe, brand: zoo, network: testnet}
spec:
imagePullSecrets: [{name: ghcr-luxfi}]
containers:
- name: explore
image: ghcr.io/zooai/explore:v1.0.1
imagePullPolicy: IfNotPresent
ports: [{containerPort: 3000, name: ui}]
env:
- {name: PORT, value: "3000"}
envFrom:
- configMapRef: {name: explore-env-zoo}
resources:
requests: {cpu: 100m, memory: 256Mi}
limits: {cpu: 1, memory: 2Gi}
startupProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 30
readinessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 10
failureThreshold: 6
livenessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 5
---
apiVersion: v1
kind: Service
metadata:
name: explore-fe-zoo
namespace: lux-testnet
labels: {app: explore-fe, brand: zoo, network: testnet}
spec:
type: ClusterIP
selector: {app: explore-fe, brand: zoo, network: testnet}
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
---
# Hanzo Testnet
apiVersion: apps/v1
kind: Deployment
metadata:
name: explore-fe-hanzo
namespace: lux-testnet
labels: {app: explore-fe, brand: hanzo, network: testnet}
spec:
replicas: 2
selector:
matchLabels: {app: explore-fe, brand: hanzo, network: testnet}
strategy:
type: RollingUpdate
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
template:
metadata:
labels: {app: explore-fe, brand: hanzo, network: testnet}
spec:
imagePullSecrets: [{name: ghcr-luxfi}]
containers:
- name: explore
image: ghcr.io/hanzoai/explore:v1.0.1
imagePullPolicy: IfNotPresent
ports: [{containerPort: 3000, name: ui}]
env:
- {name: PORT, value: "3000"}
envFrom:
- configMapRef: {name: explore-env-hanzo}
resources:
requests: {cpu: 100m, memory: 256Mi}
limits: {cpu: 1, memory: 2Gi}
startupProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 30
readinessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 10
failureThreshold: 6
livenessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 5
---
apiVersion: v1
kind: Service
metadata:
name: explore-fe-hanzo
namespace: lux-testnet
labels: {app: explore-fe, brand: hanzo, network: testnet}
spec:
type: ClusterIP
selector: {app: explore-fe, brand: hanzo, network: testnet}
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]
---
# Pars Testnet
apiVersion: apps/v1
kind: Deployment
metadata:
name: explore-fe-pars
namespace: lux-testnet
labels: {app: explore-fe, brand: pars, network: testnet}
spec:
replicas: 2
selector:
matchLabels: {app: explore-fe, brand: pars, network: testnet}
strategy:
type: RollingUpdate
rollingUpdate: {maxUnavailable: 1, maxSurge: 1}
template:
metadata:
labels: {app: explore-fe, brand: pars, network: testnet}
spec:
imagePullSecrets: [{name: ghcr-luxfi}]
containers:
- name: explore
image: ghcr.io/parsdao/explore:v1.0.1
imagePullPolicy: IfNotPresent
ports: [{containerPort: 3000, name: ui}]
env:
- {name: PORT, value: "3000"}
envFrom:
- configMapRef: {name: explore-env-pars}
resources:
requests: {cpu: 100m, memory: 256Mi}
limits: {cpu: 1, memory: 2Gi}
startupProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 15
periodSeconds: 10
timeoutSeconds: 10
failureThreshold: 30
readinessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 30
periodSeconds: 15
timeoutSeconds: 10
failureThreshold: 6
livenessProbe:
httpGet: {path: /, port: ui}
initialDelaySeconds: 90
periodSeconds: 60
timeoutSeconds: 10
failureThreshold: 5
---
apiVersion: v1
kind: Service
metadata:
name: explore-fe-pars
namespace: lux-testnet
labels: {app: explore-fe, brand: pars, network: testnet}
spec:
type: ClusterIP
selector: {app: explore-fe, brand: pars, network: testnet}
ports: [{name: http, port: 80, targetPort: 3000, protocol: TCP}]