Own the Lux services, and only those
Zoo's cloud and its exchange services were declared here as well as in Zoo's own repo, and the files had drifted apart. The copy here rendered a pod from a cluster that is gone; Zoo's serves the site from files and is the one that syncs clean. Zoo's wins because Zoo's is Zoo's. Hanzo's operator and zen-gateway were declared here against Hanzo's own declarations of both. Hanzo's are the ones running. cert-manager was a third copy of one cluster-scoped install. liquid-docs put a white-label site on a Lux host. It does not run and does not belong in this repo. The pre-phase-a backup went with it: a snapshot of a cluster that no longer exists, carrying the same aliases. The e2e annotation that named that app says the same thing without it. deploy/hanzo and deploy/hanzo-zt stay. lux-admin, lux-blog, lux-invest, lux-safe-cgw and lux-zt-router are Lux services that sit in a namespace someone named hanzo. The namespace is the thing worth renaming, not the owner.
This commit is contained in:
@@ -1,47 +0,0 @@
|
||||
# Generated from the live cert-manager/cert-manager-cainjector Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: cainjector
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: cainjector
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-cainjector
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: cainjector
|
||||
args:
|
||||
- --v=2
|
||||
- --leader-election-namespace=kube-system
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager-cainjector
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
|
||||
# Enforcement switch, read by the lux-fleet ApplicationSet's templatePatch --
|
||||
# not by the chart. selfHeal returns a hand-edited object to what is written
|
||||
# here; prune stays off, so nothing is ever deleted.
|
||||
cd:
|
||||
automated: false
|
||||
@@ -1,79 +0,0 @@
|
||||
# Generated from the live cert-manager/cert-manager-webhook Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: webhook
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: webhook
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-webhook
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: webhook
|
||||
args:
|
||||
- --v=2
|
||||
- --secure-port=10250
|
||||
- --dynamic-serving-ca-secret-namespace=$(POD_NAMESPACE)
|
||||
- --dynamic-serving-ca-secret-name=cert-manager-webhook-ca
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE)
|
||||
- --dynamic-serving-dns-names=cert-manager-webhook.$(POD_NAMESPACE).svc
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /livez
|
||||
port: 6080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 60
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 6080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
ports:
|
||||
- containerPort: 10250
|
||||
name: https
|
||||
servicePort: 443
|
||||
targetPort: https
|
||||
- containerPort: 6080
|
||||
name: healthcheck
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager-webhook
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
# Live runs this pod with these settings and the chart renders only fsGroup
|
||||
# unless podSecurityContext is set, so omitting them is a silent drop to uid 0
|
||||
# (or to seccomp Unconfined) on the first server-side sync.
|
||||
podSecurityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
@@ -1,66 +0,0 @@
|
||||
# Generated from the live cert-manager/cert-manager Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/component: controller
|
||||
app.kubernetes.io/instance: cert-manager
|
||||
app.kubernetes.io/name: cert-manager
|
||||
containerName: cert-manager-controller
|
||||
image:
|
||||
repository: quay.io/jetstack/cert-manager-controller
|
||||
tag: v1.13.3
|
||||
pullPolicy: IfNotPresent
|
||||
component: controller
|
||||
args:
|
||||
- --v=2
|
||||
- --cluster-resource-namespace=$(POD_NAMESPACE)
|
||||
- --leader-election-namespace=kube-system
|
||||
- --acme-http01-solver-image=quay.io/jetstack/cert-manager-acmesolver:v1.13.3
|
||||
- --max-concurrent-challenges=60
|
||||
env:
|
||||
- name: POD_NAMESPACE
|
||||
valueFrom:
|
||||
fieldRef:
|
||||
apiVersion: v1
|
||||
fieldPath: metadata.namespace
|
||||
resources: {}
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
# The port name was `tcp-prometheus-servicemonitor`, 29 characters, and this file
|
||||
# could not render at all: the chart's values.schema.json caps a port name at 15,
|
||||
# which is correct — a CONTAINER port name is validated as an IANA_SVC_NAME (<=15),
|
||||
# while a SERVICE port name is a DNS-1123 label (<=63). One values entry feeds
|
||||
# both, so the longest legal name is 15. Live proved the asymmetry: the Service
|
||||
# port carried the 29-char name while the container port next to it was
|
||||
# `http-metrics`. Using the container's own name is therefore the only expressible
|
||||
# answer, and it is free: there is no ServiceMonitor CRD on either cluster and
|
||||
# nothing anywhere references the long name.
|
||||
ports:
|
||||
- containerPort: 9402
|
||||
name: http-metrics
|
||||
- containerPort: 9403
|
||||
name: http-healthz
|
||||
nodeSelector:
|
||||
kubernetes.io/os: linux
|
||||
serviceAccountName: cert-manager
|
||||
enableServiceLinks: false
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
defaultReadinessProbe: false
|
||||
imagePullSecrets: []
|
||||
# Live runs this pod with these settings and the chart renders only fsGroup
|
||||
# unless podSecurityContext is set, so omitting them is a silent drop to uid 0
|
||||
# (or to seccomp Unconfined) on the first server-side sync.
|
||||
podSecurityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
@@ -1,77 +0,0 @@
|
||||
# Generated from the live hanzo-operator-system/hanzo-operator-controller-manager Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 0
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: hanzo-operator
|
||||
control-plane: controller-manager
|
||||
containerName: manager
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/operator
|
||||
tag: sha-81a43b0
|
||||
pullPolicy: Always
|
||||
partOf: hanzo-universe
|
||||
component: hanzo-operator
|
||||
labels:
|
||||
control-plane: controller-manager
|
||||
command:
|
||||
- /hanzo-operator
|
||||
args:
|
||||
- --leader-elect
|
||||
- --health-probe-bind-address=:8081
|
||||
- --metrics-bind-address=:8443
|
||||
- --metrics-secure=true
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 10m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 20
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /readyz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
securityContext:
|
||||
allowPrivilegeEscalation: false
|
||||
capabilities:
|
||||
drop:
|
||||
- ALL
|
||||
readOnlyRootFilesystem: true
|
||||
ports:
|
||||
- containerPort: 8081
|
||||
name: health
|
||||
- containerPort: 8443
|
||||
name: metrics
|
||||
serviceAccountName: hanzo-operator-controller-manager
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 10
|
||||
imagePullSecrets: []
|
||||
# Live runs this pod with these settings and the chart renders only fsGroup
|
||||
# unless podSecurityContext is set, so omitting them is a silent drop to uid 0
|
||||
# (or to seccomp Unconfined) on the first server-side sync.
|
||||
podSecurityContext:
|
||||
runAsNonRoot: true
|
||||
seccompProfile:
|
||||
type: RuntimeDefault
|
||||
@@ -1,64 +0,0 @@
|
||||
# Generated from the live liquid-docs/liquid-docs Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: liquid-docs
|
||||
containerName: spa
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/liquid-docs
|
||||
digest: sha256:175b4e05fbe324aee176e520a41c75c4caaf82c1c175944c6648eb829afba48b
|
||||
pullPolicy: Always
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: SPA_ENV
|
||||
value: prod
|
||||
- name: SPA_API_HOST
|
||||
value: https://api.lux.network
|
||||
resources:
|
||||
limits:
|
||||
cpu: 200m
|
||||
memory: 128Mi
|
||||
requests:
|
||||
cpu: 20m
|
||||
memory: 32Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
targetPort: http
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- liquid.lux.network
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -1,83 +0,0 @@
|
||||
# Generated from the live zen/zen-gateway Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app.kubernetes.io/name: zen-gateway
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/llm
|
||||
tag: latest
|
||||
digest: sha256:c73d6366de0647a16a4b9cdf84192d922bf8d50896a467f321a3d9afc1ae51da
|
||||
pullPolicy: IfNotPresent
|
||||
partOf: hanzo
|
||||
component: llm-proxy
|
||||
args:
|
||||
- --config
|
||||
- /app/config.yaml
|
||||
- --port
|
||||
- '4100'
|
||||
- --num_workers
|
||||
- '4'
|
||||
env:
|
||||
- name: REDIS_HOST
|
||||
value: hanzo-kv.hanzo.svc.cluster.local
|
||||
- name: OTEL_EXPORTER_OTLP_ENDPOINT
|
||||
value: http://otel-collector.hanzo.svc:4318
|
||||
- name: OTEL_SERVICE_NAME
|
||||
value: zen-gateway
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: zen-secrets
|
||||
resources:
|
||||
limits:
|
||||
cpu: '2'
|
||||
memory: 2Gi
|
||||
requests:
|
||||
cpu: 250m
|
||||
memory: 1Gi
|
||||
volumeMounts:
|
||||
- mountPath: /app/config.yaml
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: config.yaml
|
||||
- mountPath: /app/zen_identity.py
|
||||
name: config
|
||||
readOnly: true
|
||||
subPath: zen_identity.py
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health/liveliness
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 30
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 10
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health/readiness
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 15
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 5
|
||||
ports:
|
||||
- containerPort: 4100
|
||||
name: http
|
||||
targetPort: http
|
||||
volumes:
|
||||
- configMap:
|
||||
name: zen-gateway-config
|
||||
name: config
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
@@ -1,66 +0,0 @@
|
||||
# Generated from the live zoo-cloud/cloud Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: cloud
|
||||
image:
|
||||
repository: ghcr.io/luxfi/cloud-web
|
||||
tag: v1.5.5
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: zoo
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 3000
|
||||
scheme: HTTP
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
servicePort: 80
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
imagePullSecrets: []
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- zoo.cloud
|
||||
- www.zoo.cloud
|
||||
tls: true
|
||||
# The live certificate lives in this Secret. The chart would default to
|
||||
# <release>-tls, and cert-manager would then issue into a NEW empty Secret
|
||||
# while the host serves no cert at all until it succeeds.
|
||||
secretName: cloud-zoo-tls
|
||||
className: ingress
|
||||
|
||||
# Enforcement switch, read by the lux-fleet ApplicationSet's templatePatch --
|
||||
# not by the chart. selfHeal returns a hand-edited object to what is written
|
||||
# here; prune stays off, so nothing is ever deleted.
|
||||
cd:
|
||||
automated: false
|
||||
@@ -1,99 +0,0 @@
|
||||
# zoo.exchange's own market data.
|
||||
#
|
||||
# Zoo's brand.json pointed api.graphql at api-exchange.lux.network — LUX's
|
||||
# exchange-api — so a Zoo-branded site read Lux's factory and printed Lux's
|
||||
# number under a ZOO label: "Total ZOO TVL $125,998.38" against the Lux
|
||||
# factory's $125,998.82, to the cent. One deployment per chain is the fix, and
|
||||
# it is the shape the image was built for.
|
||||
#
|
||||
# NETWORK is the whole configuration. exchange-api's networks.ts is the one
|
||||
# table of "which chain + which contracts + which graph + which tokens", and it
|
||||
# now carries zoo: chainId 200200, the explorer's zoo/amm graph,
|
||||
# api.zoo.network for RPC, ZOO as the native coin, ZOO_TOKENS as the curated
|
||||
# registry. Restating any of that here would be a second copy free to drift from
|
||||
# the first.
|
||||
#
|
||||
# 2.3.15 is the floor for dropping them. graphql.ts defaulted its AMM graph to a
|
||||
# hardcoded cchain URL where subgraph.ts used the network's, so with the
|
||||
# override gone the shaped responses came from Zoo's graph and every raw query
|
||||
# went to Lux's — $126.0K of PROTOCOL TVL over a table of WLUX and LZOO.
|
||||
#
|
||||
# Before the zoo entry existed this ran NETWORK=mainnet with the URLs overridden by
|
||||
# hand, which declared chainId 96369 over a chain answering 200200: the markets
|
||||
# gate's chainId assertion fired on every poll and the router quoted against
|
||||
# Lux's V3 addresses. A rollback below 2.3.13 brings that back AND silently
|
||||
# resolves to Lux's graph, since an unknown NETWORK falls through to mainnet —
|
||||
# which is what the digest pin is for.
|
||||
#
|
||||
# The digest is not decoration for a second reason: ghcr.io/luxfi/exchange-api
|
||||
# carries TWO unrelated programs. This one (luxfi/exchange-api, TypeScript,
|
||||
# /v1/graphql with amm/dex routing, versions 2.x) and the older express
|
||||
# server.js that luxfi/exchange's release matrix pushes to the same package
|
||||
# under the SPA's 5.149.x versions. That one has no /v1/graphql route at all.
|
||||
cd:
|
||||
automated: false
|
||||
|
||||
replicas: 2
|
||||
image:
|
||||
repository: ghcr.io/luxfi/exchange-api
|
||||
tag: 2.3.34
|
||||
digest: sha256:3eae48ac6f4be340d94751d6b52c8fab0aeaddaff2a5b6c52e5c1305af3b3538
|
||||
pullPolicy: IfNotPresent
|
||||
env:
|
||||
- name: PORT
|
||||
value: '4000'
|
||||
- name: NETWORK
|
||||
value: zoo
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 4000
|
||||
scheme: HTTP
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 4000
|
||||
scheme: HTTP
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 4000
|
||||
# Only the two that exist in this namespace. lux-ns/exchange-api also names
|
||||
# ghcr-luxfi; there is no such Secret in zoo, and a named-but-absent pull secret
|
||||
# is a FailedToRetrieveImagePullSecret warning on every pod for nothing.
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi-fresh
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
topologySpread:
|
||||
enabled: false
|
||||
# exchange.zoo.cloud mirrors exchange.lux.cloud: a centralized service answers on
|
||||
# .cloud, and .network stays the chain's own decentralized surface. No CORS
|
||||
# annotation — the image already sends Access-Control-Allow-Origin itself, and an
|
||||
# edge that writes the header a second time is how a page renders empty with no
|
||||
# failed request to point at.
|
||||
#
|
||||
# The A record for this host is in k8s/dns/zoo-cloud.yaml. Nothing here creates
|
||||
# one: no external-dns runs on this cluster and the zone has no wildcard, so an
|
||||
# Ingress alone gets a valid certificate for a name that resolves to nothing.
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- exchange.zoo.cloud
|
||||
tls: true
|
||||
className: ingress
|
||||
@@ -1,103 +0,0 @@
|
||||
# Generated from the live zoo/status Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 1
|
||||
selectorLabels:
|
||||
app: status
|
||||
image:
|
||||
repository: ghcr.io/hanzoai/status
|
||||
# v1.1.17 reads `brand` from status-config and derives every mark from
|
||||
# /brands/<brand>/. Before it, the icons a browser fetches on its own —
|
||||
# /favicon.ico, /apple-touch-icon.png, the manifest icons — were files at the
|
||||
# web root of an image built for all five brands, so this page served the
|
||||
# Hanzo mark byte for byte while its own logo and title were Zoo's.
|
||||
#
|
||||
# status-config carries `brand: zoo` alongside the older logo/favicon keys, so
|
||||
# it is valid on both images: 1.1.6 has no brand field and v1.1.17 has no
|
||||
# logo/favicon field, and neither parser rejects a key it does not know.
|
||||
tag: v1.1.17
|
||||
pullPolicy: Always
|
||||
# One manifest under that tag, linux/amd64. A property of the image, so it lives
|
||||
# beside it: no effect on an all-amd64 cluster, and on a mixed one it stops the
|
||||
# pod binding to a node that has no manifest to run.
|
||||
nodeSelector:
|
||||
kubernetes.io/arch: amd64
|
||||
env:
|
||||
- name: GATUS_CONFIG_PATH
|
||||
value: /config/config.yaml
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 128Mi
|
||||
volumeMounts:
|
||||
- mountPath: /config
|
||||
name: config
|
||||
readOnly: true
|
||||
- mountPath: /data
|
||||
name: data
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: 8080
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 5
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: http
|
||||
servicePort: 80
|
||||
# Gatus writes its uptime history here, and the claim was the object
|
||||
# live2values.py could not reach: it reads the Deployment, and a claim a
|
||||
# Deployment only MOUNTS is not part of one. So the values named a volume nothing
|
||||
# declared, and the scheduler answered that no node is available — indefinitely,
|
||||
# without ever attempting a pull. 2Gi RWO matches the claim this page already has
|
||||
# wherever it runs; a request below an existing volume's capacity is refused.
|
||||
#
|
||||
# storageClass is deliberately absent: naming one would pin this file to a single
|
||||
# cluster's provisioner, while the default resolves to the block class in the
|
||||
# cloud and to local-path on k3s. One text, either place.
|
||||
claims:
|
||||
- name: status-data
|
||||
size: 2Gi
|
||||
accessModes:
|
||||
- ReadWriteOnce
|
||||
volumes:
|
||||
- configMap:
|
||||
name: status-config
|
||||
name: config
|
||||
- name: data
|
||||
persistentVolumeClaim:
|
||||
claimName: status-data
|
||||
imagePullSecrets:
|
||||
- name: ghcr-secret
|
||||
strategy: Recreate
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- status.zoo.network
|
||||
tls: true
|
||||
# The live certificate lives in this Secret. The chart would default to
|
||||
# <release>-tls, and cert-manager would then issue into a NEW empty Secret
|
||||
# while the host serves no cert at all until it succeeds.
|
||||
secretName: status-zoo-tls
|
||||
className: ingress
|
||||
@@ -1,102 +0,0 @@
|
||||
# Generated from the live zoo/zoo-exchange-testnet Deployment on do-sfo3-lux-k8s
|
||||
# by hack/live2values.py. Live is the source: a repo of hand-applied
|
||||
# manifests has unknown currency, the running fleet does not.
|
||||
replicas: 2
|
||||
selectorLabels:
|
||||
app: zoo-exchange-testnet
|
||||
containerName: spa
|
||||
# The same brand-neutral SPA every other exchange runs, configured for Zoo's
|
||||
# testnet by the SPA_* values below — one image, one build, one lineage.
|
||||
#
|
||||
# This pointed at ghcr.io/zooai/exchange:latest, which is a separately built
|
||||
# copy that has not been rebuilt since June and carries no version at all: that
|
||||
# package holds `sha-e9dc558` and `cache`, and no `latest` among them. A
|
||||
# floating tag names nothing a deployment can be held to.
|
||||
image:
|
||||
repository: ghcr.io/luxfi/exchange
|
||||
tag: 5.149.66
|
||||
pullPolicy: IfNotPresent
|
||||
labels:
|
||||
brand: zoo
|
||||
env: testnet
|
||||
env:
|
||||
- name: PORT
|
||||
value: '3000'
|
||||
- name: ROOT
|
||||
value: /public
|
||||
- name: SPA_BRAND_NAME
|
||||
value: Zoo Exchange (Testnet)
|
||||
- name: SPA_DEFAULT_CHAIN
|
||||
value: '200201'
|
||||
- name: SPA_RPC_HOST
|
||||
value: https://api.zoo-test.network
|
||||
- name: SPA_API_HOST
|
||||
value: https://api.zoo-test.network
|
||||
- name: SPA_GATEWAY_HOST
|
||||
value: https://api.zoo-test.network
|
||||
- name: SPA_IAM_HOST
|
||||
value: https://zoolabs.id
|
||||
- name: SPA_ID_HOST
|
||||
value: https://zoolabs.id
|
||||
- name: SPA_KMS_HOST
|
||||
value: https://kms.zoo.network
|
||||
- name: SPA_INSIGHTS_HOST
|
||||
value: https://insights.hanzo.ai
|
||||
envFrom:
|
||||
- secretRef:
|
||||
name: zoo-exchange-secrets
|
||||
resources:
|
||||
limits:
|
||||
cpu: 500m
|
||||
memory: 256Mi
|
||||
requests:
|
||||
cpu: 50m
|
||||
memory: 64Mi
|
||||
livenessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /health
|
||||
port: http
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 2
|
||||
periodSeconds: 5
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 1
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
name: http
|
||||
targetPort: http
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi-fresh
|
||||
- name: ghcr-zoo
|
||||
- name: ghcr-secret
|
||||
rollingUpdate:
|
||||
maxSurge: 1
|
||||
maxUnavailable: 0
|
||||
topologySpread:
|
||||
enabled: false
|
||||
lifecycle: null
|
||||
terminationGracePeriodSeconds: 30
|
||||
ingress:
|
||||
enabled: true
|
||||
hosts:
|
||||
- exchange.zoo-test.network
|
||||
- exchange-test.zoo.network
|
||||
tls: true
|
||||
className: ingress
|
||||
|
||||
# Enforcement switch, read by the lux-fleet ApplicationSet's templatePatch --
|
||||
# not by the chart. selfHeal returns a hand-edited object to what is written
|
||||
# here; prune stays off, so nothing is ever deleted.
|
||||
cd:
|
||||
automated: false
|
||||
@@ -1,37 +0,0 @@
|
||||
# zoo.exchange is files: one Middleware that serves them, one route that names it,
|
||||
# and the endpoint-less Service the route schema requires. No image, so the
|
||||
# chart renders no Deployment -- a static site is not a pod.
|
||||
#
|
||||
# The bundle at s3://hanzo-sites/lux/zoo-exchange is Zoo's own build, not a
|
||||
# re-skin of lux-exchange: its brand.json names Zoo Exchange, Zoo Labs Foundation
|
||||
# and zoo.exchange, so the brand travels as a file in the prefix rather than as a
|
||||
# mounted ConfigMap the pod had to remount at a subPath.
|
||||
cd:
|
||||
automated: true
|
||||
ports:
|
||||
- name: http
|
||||
containerPort: 80
|
||||
middlewares:
|
||||
- name: exchange
|
||||
spec:
|
||||
staticFiles:
|
||||
root: s3://hanzo-sites/lux/zoo-exchange
|
||||
spaMode: true
|
||||
spaIndex: index.html
|
||||
indexFiles:
|
||||
- index.html
|
||||
routes:
|
||||
- name: exchange
|
||||
spec:
|
||||
entryPoints:
|
||||
- websecure
|
||||
routes:
|
||||
- match: Host(`zoo.exchange`) || Host(`www.zoo.exchange`) || Host(`exchange.zoo.network`) || Host(`trade.zoo.exchange`)
|
||||
kind: Rule
|
||||
priority: 100
|
||||
middlewares:
|
||||
- name: exchange
|
||||
services:
|
||||
- name: zoo-exchange
|
||||
port: 80
|
||||
tls: {}
|
||||
@@ -168,7 +168,7 @@ test.describe('Lux — security-token swap flow', () => {
|
||||
test.info().annotations.push({
|
||||
type: 'pending',
|
||||
description:
|
||||
'OnboardingGate not yet deployed on lux.exchange; idHost not configured in LiquidApp.spec.config',
|
||||
'OnboardingGate not yet deployed on lux.exchange; idHost not configured',
|
||||
})
|
||||
return
|
||||
}
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
customresourcedefinition.apiextensions.k8s.io/luxmpcs.lux.network
|
||||
@@ -1,12 +0,0 @@
|
||||
customresourcedefinition.apiextensions.k8s.io/clustergenerators.secrets.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/kmsdynamicsecrets.secrets.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/kmspushsecrets.secrets.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/kmssecrets.secrets.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxchains.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxexplorers.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxgateways.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxindexers.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxmpcs.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/luxnetworks.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/passwords.secrets.lux.network
|
||||
customresourcedefinition.apiextensions.k8s.io/uuids.secrets.lux.network
|
||||
@@ -1,302 +0,0 @@
|
||||
apiVersion: v1
|
||||
items:
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"a-chain","lux.network/network":"mainnet"},"name":"a-chain","namespace":"lux-mainnet"},"spec":{"alias":"A","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/aivm:v0.1.0","chainConfig":{"cgo":false},"vmType":"aivm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:35Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: a-chain
|
||||
lux.network/network: mainnet
|
||||
name: a-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906643"
|
||||
uid: 54b30375-2210-45a6-9fb7-b6bdaaba4e51
|
||||
spec:
|
||||
alias: A
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/aivm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: aivm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"b-chain","lux.network/network":"mainnet"},"name":"b-chain","namespace":"lux-mainnet"},"spec":{"alias":"B","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/bridgevm:v0.1.0","chainConfig":{"cgo":false},"vmType":"bridgevm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: b-chain
|
||||
lux.network/network: mainnet
|
||||
name: b-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906646"
|
||||
uid: d1c5972b-326c-486f-a2d9-0b9f2cb7baa8
|
||||
spec:
|
||||
alias: B
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/bridgevm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: bridgevm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"d-chain","lux.network/network":"mainnet"},"name":"d-chain","namespace":"lux-mainnet"},"spec":{"alias":"D","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/dexvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"dexvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: d-chain
|
||||
lux.network/network: mainnet
|
||||
name: d-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906650"
|
||||
uid: 26629e55-b50a-4dec-9a9e-fa66655450ef
|
||||
spec:
|
||||
alias: D
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/dexvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: dexvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"g-chain","lux.network/network":"mainnet"},"name":"g-chain","namespace":"lux-mainnet"},"spec":{"alias":"G","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/graphvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"graphvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: g-chain
|
||||
lux.network/network: mainnet
|
||||
name: g-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906652"
|
||||
uid: d7a7f3b1-d71f-4ab0-a833-421a346aa6d5
|
||||
spec:
|
||||
alias: G
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/graphvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: graphvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"i-chain","lux.network/network":"mainnet"},"name":"i-chain","namespace":"lux-mainnet"},"spec":{"alias":"I","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/identityvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"identityvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: i-chain
|
||||
lux.network/network: mainnet
|
||||
name: i-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906654"
|
||||
uid: 3837654f-9b3b-48ae-a464-c41fb47bb2d6
|
||||
spec:
|
||||
alias: I
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/identityvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: identityvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"k-chain","lux.network/network":"mainnet"},"name":"k-chain","namespace":"lux-mainnet"},"spec":{"alias":"K","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/keyvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"keyvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: k-chain
|
||||
lux.network/network: mainnet
|
||||
name: k-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906657"
|
||||
uid: 5827070c-b133-4238-898b-0baae5d63442
|
||||
spec:
|
||||
alias: K
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/keyvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: keyvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"m-chain","lux.network/network":"mainnet"},"name":"m-chain","namespace":"lux-mainnet"},"spec":{"alias":"M","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/thresholdvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"thresholdvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: m-chain
|
||||
lux.network/network: mainnet
|
||||
name: m-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906660"
|
||||
uid: 1cf075b0-84fe-4aea-abfa-c2ea07634694
|
||||
spec:
|
||||
alias: M
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/thresholdvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: thresholdvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"o-chain","lux.network/network":"mainnet"},"name":"o-chain","namespace":"lux-mainnet"},"spec":{"alias":"O","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/oraclevm:v0.1.0","chainConfig":{"cgo":false},"vmType":"oraclevm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: o-chain
|
||||
lux.network/network: mainnet
|
||||
name: o-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906663"
|
||||
uid: fb8a8b1b-9958-4ce2-b57a-26fda4f2f371
|
||||
spec:
|
||||
alias: O
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/oraclevm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: oraclevm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"q-chain","lux.network/network":"mainnet"},"name":"q-chain","namespace":"lux-mainnet"},"spec":{"alias":"Q","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/quantumvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"quantumvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: q-chain
|
||||
lux.network/network: mainnet
|
||||
name: q-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906665"
|
||||
uid: d3dcf9de-8790-4923-8b56-9e4e760353fc
|
||||
spec:
|
||||
alias: Q
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/quantumvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: quantumvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"r-chain","lux.network/network":"mainnet"},"name":"r-chain","namespace":"lux-mainnet"},"spec":{"alias":"R","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/relayvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"relayvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:36Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: r-chain
|
||||
lux.network/network: mainnet
|
||||
name: r-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906670"
|
||||
uid: 283e3e3e-473b-4eac-90be-602a15f92edb
|
||||
spec:
|
||||
alias: R
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/relayvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: relayvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxChain
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxChain","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/chain":"z-chain","lux.network/network":"mainnet"},"name":"z-chain","namespace":"lux-mainnet"},"spec":{"alias":"Z","networkRef":"luxd","vm":{"binaryUrl":"ghcr.io/luxfi/zkvm:v0.1.0","chainConfig":{"cgo":false},"vmType":"zkvm"}}}
|
||||
creationTimestamp: "2026-04-30T19:53:37Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/chain: z-chain
|
||||
lux.network/network: mainnet
|
||||
name: z-chain
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62906673"
|
||||
uid: 019862ce-1682-4d0c-9006-5fe51fbe544c
|
||||
spec:
|
||||
alias: Z
|
||||
networkRef: luxd
|
||||
vm:
|
||||
binaryUrl: ghcr.io/luxfi/zkvm:v0.1.0
|
||||
chainConfig:
|
||||
cgo: false
|
||||
vmType: zkvm
|
||||
status:
|
||||
conditions: []
|
||||
phase: Pending
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
items: []
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,270 +0,0 @@
|
||||
apiVersion: v1
|
||||
items:
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxGateway
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxGateway","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/network":"devnet"},"name":"api-gateway","namespace":"lux-devnet"},"spec":{"autoRoutes":true,"cors":{"allowedHeaders":["Content-Type","Authorization"],"allowedMethods":["GET","POST","OPTIONS"],"allowedOrigins":["*"]},"customRoutes":[{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/2caKCdNop9C4oAPR1kYihN53HeSRDXD3JyMKS7ntfcpQYucmii/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/zoo/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/tecXMucYDxwN65mebPE6cvQ9GynG6Y5WEvwGFsY3xVDWHxiqT/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/hanzo/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/213ZsFLRCBSmrii4huQqa6S3SxYPP8ec6dPEn6ad4CtLk3RdXp/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/spc/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/MEGAgimfcodi7QaqCruFpTkNM6fqu7ZduLmWJJjGQwUg8uDPJ/rpc","timeout":30},{"backend":"http://luxd-headless.lux-devnet.svc:9650","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/pars/rpc","timeout":30}],"host":"api.devnet.lux.network","indexerRefs":["indexer-c","indexer-zoo","indexer-hanzo","indexer-spc","indexer-pars"],"networkRef":"luxd","port":8080,"rateLimit":{"burst":200,"requestsPerSecond":100},"replicas":1}}
|
||||
reconcile-at: "2026-03-02T06:44:35Z"
|
||||
creationTimestamp: "2026-03-02T06:26:33Z"
|
||||
generation: 2
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/network: devnet
|
||||
name: api-gateway
|
||||
namespace: lux-devnet
|
||||
resourceVersion: "74762068"
|
||||
uid: 7fbadf67-928a-4605-8f56-97f9e17c756e
|
||||
spec:
|
||||
autoRoutes: true
|
||||
cors:
|
||||
allowedHeaders:
|
||||
- Content-Type
|
||||
- Authorization
|
||||
allowedMethods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
allowedOrigins:
|
||||
- '*'
|
||||
customRoutes:
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/2caKCdNop9C4oAPR1kYihN53HeSRDXD3JyMKS7ntfcpQYucmii/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/zoo/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/tecXMucYDxwN65mebPE6cvQ9GynG6Y5WEvwGFsY3xVDWHxiqT/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/hanzo/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/213ZsFLRCBSmrii4huQqa6S3SxYPP8ec6dPEn6ad4CtLk3RdXp/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/spc/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/MEGAgimfcodi7QaqCruFpTkNM6fqu7ZduLmWJJjGQwUg8uDPJ/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-devnet.svc:9650
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/pars/rpc
|
||||
timeout: 30
|
||||
host: api.devnet.lux.network
|
||||
indexerRefs:
|
||||
- indexer-c
|
||||
- indexer-zoo
|
||||
- indexer-hanzo
|
||||
- indexer-spc
|
||||
- indexer-pars
|
||||
networkRef: luxd
|
||||
port: 8080
|
||||
rateLimit:
|
||||
burst: 200
|
||||
requestsPerSecond: 100
|
||||
replicas: 1
|
||||
status:
|
||||
chainRoutes: {}
|
||||
conditions: []
|
||||
externalEndpoint: https://api.devnet.lux.network
|
||||
phase: Ready
|
||||
readyReplicas: 2
|
||||
routeCount: 15
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxGateway
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxGateway","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/network":"mainnet"},"name":"api-gateway","namespace":"lux-mainnet"},"spec":{"autoRoutes":true,"cors":{"allowedHeaders":["Content-Type","Authorization"],"allowedMethods":["GET","POST","OPTIONS"],"allowedOrigins":["https://lux.network","https://explorer.lux.network","https://lux.exchange"]},"explorerRefs":["explorer"],"host":"api.lux.network","image":{"repository":"ghcr.io/luxfi/gateway","tag":"v0.1.0"},"indexerRefs":["lux-mainnet-indexer"],"networkRef":"luxd","port":8080,"rateLimit":{"burst":400,"requestsPerSecond":200},"replicas":3,"tls":{"certManager":true,"issuer":"letsencrypt-prod","secretName":"api-lux-network-tls"}}}
|
||||
reconcile-at: "2026-03-02T06:44:34Z"
|
||||
creationTimestamp: "2026-03-02T06:26:22Z"
|
||||
generation: 3
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/network: mainnet
|
||||
name: api-gateway
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "74762061"
|
||||
uid: f692fcd3-e1d4-4c13-bd94-cda4f6300b68
|
||||
spec:
|
||||
autoRoutes: true
|
||||
cors:
|
||||
allowedHeaders:
|
||||
- Content-Type
|
||||
- Authorization
|
||||
allowedMethods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
allowedOrigins:
|
||||
- https://lux.network
|
||||
- https://explorer.lux.network
|
||||
- https://lux.exchange
|
||||
explorerRefs:
|
||||
- explorer
|
||||
host: api.lux.network
|
||||
image:
|
||||
repository: ghcr.io/luxfi/gateway
|
||||
tag: v0.1.0
|
||||
indexerRefs:
|
||||
- lux-mainnet-indexer
|
||||
networkRef: luxd
|
||||
port: 8080
|
||||
rateLimit:
|
||||
burst: 400
|
||||
requestsPerSecond: 200
|
||||
replicas: 3
|
||||
tls:
|
||||
certManager: true
|
||||
issuer: letsencrypt-prod
|
||||
secretName: api-lux-network-tls
|
||||
status:
|
||||
chainRoutes: {}
|
||||
conditions: []
|
||||
externalEndpoint: https://api.lux.network
|
||||
phase: Ready
|
||||
readyReplicas: 2
|
||||
routeCount: 7
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxGateway
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxGateway","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/network":"testnet"},"name":"api-gateway","namespace":"lux-testnet"},"spec":{"autoRoutes":true,"cors":{"allowedHeaders":["Content-Type","Authorization"],"allowedMethods":["GET","POST","OPTIONS"],"allowedOrigins":["*"]},"customRoutes":[{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/zoo/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/hanzo/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/spc/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs/rpc","timeout":30},{"backend":"http://luxd-headless.lux-testnet.svc:9640","methods":["GET","POST","OPTIONS"],"path":"/v1/chain/pars/rpc","timeout":30}],"host":"api.testnet.lux.network","indexerRefs":["indexer-c","indexer-zoo","indexer-hanzo","indexer-spc","indexer-pars"],"networkRef":"luxd","port":8080,"rateLimit":{"burst":200,"requestsPerSecond":100},"replicas":1}}
|
||||
reconcile-at: "2026-03-02T06:44:34Z"
|
||||
creationTimestamp: "2026-03-02T06:26:33Z"
|
||||
generation: 2
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/network: testnet
|
||||
name: api-gateway
|
||||
namespace: lux-testnet
|
||||
resourceVersion: "69666567"
|
||||
uid: 83959cd0-af38-4167-9ba4-f19f2aa844d4
|
||||
spec:
|
||||
autoRoutes: true
|
||||
cors:
|
||||
allowedHeaders:
|
||||
- Content-Type
|
||||
- Authorization
|
||||
allowedMethods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
allowedOrigins:
|
||||
- '*'
|
||||
customRoutes:
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/zoo/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/hanzo/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/spc/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs/rpc
|
||||
timeout: 30
|
||||
- backend: http://luxd-headless.lux-testnet.svc:9640
|
||||
methods:
|
||||
- GET
|
||||
- POST
|
||||
- OPTIONS
|
||||
path: /v1/chain/pars/rpc
|
||||
timeout: 30
|
||||
host: api.testnet.lux.network
|
||||
indexerRefs:
|
||||
- indexer-c
|
||||
- indexer-zoo
|
||||
- indexer-hanzo
|
||||
- indexer-spc
|
||||
- indexer-pars
|
||||
networkRef: luxd
|
||||
port: 8080
|
||||
rateLimit:
|
||||
burst: 200
|
||||
requestsPerSecond: 100
|
||||
replicas: 1
|
||||
status:
|
||||
chainRoutes: {}
|
||||
conditions: []
|
||||
externalEndpoint: https://api.testnet.lux.network
|
||||
phase: Ready
|
||||
readyReplicas: 2
|
||||
routeCount: 15
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,5 +0,0 @@
|
||||
apiVersion: v1
|
||||
items: []
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,47 +0,0 @@
|
||||
apiVersion: v1
|
||||
items:
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxMPC
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxMPC","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/network":"mainnet"},"name":"lux-mpc","namespace":"lux-mainnet"},"spec":{"apiPort":8081,"backup":{"bucket":"lux-mpc-keyset-backup","credentialsSecret":"hanzo-s3-secret","endpoint":"https://s3.lux.network","intervalSeconds":3600,"region":"us-east-1"},"clusterIssuer":"letsencrypt-prod","cpuLimit":"2000m","cpuRequest":"500m","dashboardApiUrl":"https://mpc.lux.network/v1","dashboardImage":"ghcr.io/luxfi/mpc-dashboard:v0.1.0","hostname":"mpc.lux.network","iamClientId":"lux-mpc","iamUrl":"https://lux.id","image":"ghcr.io/luxfi/mpc-api:v0.1.0","imagePullPolicy":"IfNotPresent","memoryLimit":"4Gi","memoryRequest":"1Gi","nodes":5,"p2pPort":9999,"secretName":"lux-mpc-keyset","storage":"50Gi","storageClass":"do-block-storage","threshold":3,"tlsSecret":"mpc-lux-network-tls"}}
|
||||
creationTimestamp: "2026-04-30T19:55:33Z"
|
||||
generation: 1
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/network: mainnet
|
||||
name: lux-mpc
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "62908702"
|
||||
uid: 5f3c0f50-7f7d-4180-b0f8-6e5f1244b588
|
||||
spec:
|
||||
apiPort: 8081
|
||||
backup:
|
||||
bucket: lux-mpc-keyset-backup
|
||||
credentialsSecret: hanzo-s3-secret
|
||||
endpoint: https://s3.lux.network
|
||||
intervalSeconds: 3600
|
||||
region: us-east-1
|
||||
clusterIssuer: letsencrypt-prod
|
||||
cpuLimit: 2000m
|
||||
cpuRequest: 500m
|
||||
dashboardApiUrl: https://mpc.lux.network/v1
|
||||
dashboardImage: ghcr.io/luxfi/mpc-dashboard:v0.1.0
|
||||
hostname: mpc.lux.network
|
||||
iamClientId: lux-mpc
|
||||
iamUrl: https://lux.id
|
||||
image: ghcr.io/luxfi/mpc-api:v0.1.0
|
||||
imagePullPolicy: IfNotPresent
|
||||
memoryLimit: 4Gi
|
||||
memoryRequest: 1Gi
|
||||
nodes: 5
|
||||
p2pPort: 9999
|
||||
secretName: lux-mpc-keyset
|
||||
storage: 50Gi
|
||||
storageClass: do-block-storage
|
||||
threshold: 3
|
||||
tlsSecret: mpc-lux-network-tls
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,589 +0,0 @@
|
||||
apiVersion: v1
|
||||
items:
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxNetwork
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxNetwork","metadata":{"annotations":{},"name":"luxd","namespace":"lux-devnet"},"spec":{"adoptExisting":true,"chainTracking":{"trackAllChains":true},"consensus":{"sybilProtectionEnabled":true},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/luxfi/node","tag":"v1.27.23"},"networkId":3,"ports":{"http":9650,"staking":9651},"seedRestore":{"enabled":true,"objectStoreUrl":"http://s3.lux-system.svc.cluster.local:9000/lux-snapshots/devnet/devnet-node0-full.tar.gz","sourceType":"ObjectStore"},"snapshotSchedule":{"accessKey":"hanzo","bucket":"lux-snapshots","enabled":true,"includeRlpExports":true,"intervalSeconds":3600,"maxRetained":5,"objectStoreEndpoint":"http://s3.lux-system.svc.cluster.local:9000","prefix":"devnet","secretKeyRef":"hanzo-s3-secret","sourceNodeIndex":0},"staking":{"kms":{"auth":{"credentialsNamespace":"lux-system","credentialsSecret":"universal-auth-credentials"},"envSlug":"devnet","hostApi":"https://kms.lux.network/api","projectSlug":"lux-infra","resyncInterval":300,"secretsPath":"/staking"},"secretName":"luxd-staking"},"validators":5}}
|
||||
creationTimestamp: "2026-03-21T17:55:34Z"
|
||||
generation: 27
|
||||
name: luxd
|
||||
namespace: lux-devnet
|
||||
resourceVersion: "77700420"
|
||||
uid: 089770ea-416e-4349-b087-ce36d0e6640c
|
||||
spec:
|
||||
adoptExisting: true
|
||||
allowValidatorRemoval: true
|
||||
chainTracking:
|
||||
trackAllChains: true
|
||||
consensus:
|
||||
sybilProtectionEnabled: true
|
||||
genesisConfigMap: luxd-genesis
|
||||
image:
|
||||
pullPolicy: IfNotPresent
|
||||
repository: ghcr.io/luxfi/node
|
||||
tag: v1.28.0
|
||||
networkId: 3
|
||||
ports:
|
||||
http: 9650
|
||||
staking: 9651
|
||||
resources:
|
||||
cpuLimit: "2"
|
||||
cpuRequest: 500m
|
||||
memoryLimit: 8Gi
|
||||
memoryRequest: 2Gi
|
||||
seedRestore:
|
||||
enabled: false
|
||||
objectStoreUrl: http://s3.lux-system.svc.cluster.local:9000/lux-snapshots/devnet/devnet-node0-full.tar.gz
|
||||
sourceType: ObjectStore
|
||||
snapshotSchedule:
|
||||
accessKey: hanzo
|
||||
bucket: lux-snapshots
|
||||
enabled: true
|
||||
includeRlpExports: true
|
||||
intervalSeconds: 3600
|
||||
maxRetained: 5
|
||||
objectStoreEndpoint: http://s3.lux-system.svc.cluster.local:9000
|
||||
prefix: devnet
|
||||
secretKeyRef: hanzo-s3-secret
|
||||
sourceNodeIndex: 0
|
||||
staking:
|
||||
kms:
|
||||
auth:
|
||||
credentialsNamespace: lux-system
|
||||
credentialsSecret: universal-auth-credentials
|
||||
envSlug: devnet
|
||||
hostApi: https://kms.lux.network/api
|
||||
projectSlug: lux-infra
|
||||
resyncInterval: 300
|
||||
secretsPath: /staking
|
||||
secretName: luxd-staking
|
||||
validators: 5
|
||||
status:
|
||||
bootstrapEndpoints:
|
||||
- http://luxd-0.luxd-headless.lux-devnet.svc:9650
|
||||
- http://luxd-1.luxd-headless.lux-devnet.svc:9650
|
||||
- http://luxd-2.luxd-headless.lux-devnet.svc:9650
|
||||
- http://luxd-3.luxd-headless.lux-devnet.svc:9650
|
||||
- http://luxd-4.luxd-headless.lux-devnet.svc:9650
|
||||
chainStatuses:
|
||||
2uf4pnDukwqQisYJNFNPXD21R3vJho7CPpLWGBvN9cqfe1Gjxu:
|
||||
alias: liquiddex
|
||||
healthy: false
|
||||
C:
|
||||
alias: C
|
||||
blockHeight: 35
|
||||
healthy: true
|
||||
P:
|
||||
alias: P
|
||||
blockHeight: 10
|
||||
healthy: true
|
||||
komoGqc3zoGfYDShmNvWzwx2FnYZHJUkjAYYSYPhymrFi4bi2:
|
||||
alias: liquidevm
|
||||
blockHeight: 0
|
||||
healthy: true
|
||||
conditions: []
|
||||
degradedReasons: []
|
||||
externalIps:
|
||||
luxd-0: 164.90.247.220
|
||||
luxd-1: 146.190.14.112
|
||||
luxd-2: 24.199.68.130
|
||||
luxd-3: 134.199.184.181
|
||||
luxd-4: 209.38.172.213
|
||||
networkId: 3
|
||||
networkMetrics:
|
||||
bootstrappedChains: 0
|
||||
heightSkew: 0
|
||||
maxPHeight: 0
|
||||
minPHeight: 0
|
||||
totalPeers: 0
|
||||
nodeStatuses:
|
||||
luxd-0:
|
||||
bootstrapped: true
|
||||
cChainHeight: 35
|
||||
chainsCount: 2
|
||||
connectedPeers: 4
|
||||
externalIp: 164.90.247.220
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Mf3JfSY91oDwfBqf7rCLmhg4NDtDghw1f
|
||||
outboundPeers: 4
|
||||
pChainHeight: 10
|
||||
startTime: "2026-03-21T20:20:39+00:00"
|
||||
luxd-1:
|
||||
bootstrapped: true
|
||||
cChainHeight: 35
|
||||
chainsCount: 2
|
||||
connectedPeers: 4
|
||||
externalIp: 146.190.14.112
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-2TwSZ2oyeBK2mv7JiseEQ8m74rotDj4QR
|
||||
outboundPeers: 4
|
||||
pChainHeight: 10
|
||||
startTime: "2026-03-21T20:20:39+00:00"
|
||||
luxd-2:
|
||||
bootstrapped: true
|
||||
cChainHeight: 35
|
||||
chainsCount: 2
|
||||
connectedPeers: 4
|
||||
externalIp: 24.199.68.130
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Ld9VFBQ9zGbd79z2vzaAqkQ3jHuqbtRpo
|
||||
outboundPeers: 4
|
||||
pChainHeight: 10
|
||||
startTime: "2026-03-23T05:16:36+00:00"
|
||||
luxd-3:
|
||||
bootstrapped: true
|
||||
cChainHeight: 35
|
||||
chainsCount: 2
|
||||
connectedPeers: 4
|
||||
externalIp: 134.199.184.181
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-8mY2fhUehN27v3LCU84BnnKEoeRfd2weC
|
||||
outboundPeers: 4
|
||||
pChainHeight: 10
|
||||
startTime: "2026-03-21T20:20:40+00:00"
|
||||
luxd-4:
|
||||
bootstrapped: true
|
||||
cChainHeight: 35
|
||||
chainsCount: 2
|
||||
connectedPeers: 4
|
||||
externalIp: 209.38.172.213
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-4smuFz5Z9cm8BEyQU1oPQ9nwgXyMgaNqu
|
||||
outboundPeers: 4
|
||||
pChainHeight: 10
|
||||
startTime: "2026-03-23T04:40:55+00:00"
|
||||
phase: Degraded
|
||||
readyValidators: 0
|
||||
snapshotCount: 0
|
||||
totalValidators: 5
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxNetwork
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxNetwork","metadata":{"annotations":{},"labels":{"app.kubernetes.io/part-of":"lux-network","lux.network/network":"mainnet"},"name":"luxd","namespace":"lux-mainnet"},"spec":{"adoptExisting":false,"chainTracking":{"trackAllChains":true},"consensus":{"pqLayers":["bls","corona","mldsa"],"sybilProtectionEnabled":true,"type":"quasar","zapPort":9999},"genesisConfigMap":"luxd-genesis","image":{"repository":"ghcr.io/luxfi/node","tag":"1.27.4"},"networkId":1,"pluginSource":{"bucket":"s3://lux-plugins/v1.1.0/","credentialsSecret":"hanzo-s3-secret","endpoint":"https://s3.lux.network","kmsConfigPath":"lux/mainnet/plugins","vmPlugins":[{"objectKey":"aivm-linux-amd64","vmId":"aivm"},{"objectKey":"bridgevm-linux-amd64","vmId":"bridgevm"},{"objectKey":"dexvm-linux-amd64","vmId":"dexvm"},{"objectKey":"graphvm-linux-amd64","vmId":"graphvm"},{"objectKey":"identityvm-linux-amd64","vmId":"identityvm"},{"objectKey":"keyvm-linux-amd64","vmId":"keyvm"},{"objectKey":"thresholdvm-linux-amd64","vmId":"thresholdvm"},{"objectKey":"oraclevm-linux-amd64","vmId":"oraclevm"},{"objectKey":"quantumvm-linux-amd64","vmId":"quantumvm"},{"objectKey":"relayvm-linux-amd64","vmId":"relayvm"},{"objectKey":"zkvm-linux-amd64","vmId":"zkvm"}]},"podAntiAffinity":true,"ports":{"http":9630,"staking":9631},"seedRestore":{"enabled":true,"objectStoreUrl":"https://s3.lux.network/lux-snapshots/mainnet/mainnet-node0-full.tar.gz","sourceType":"ObjectStore"},"snapshotSchedule":{"accessKey":"hanzo","bucket":"lux-snapshots","enabled":true,"includeRlpExports":true,"intervalSeconds":3600,"maxRetained":5,"objectStoreEndpoint":"https://s3.lux.network","prefix":"mainnet","secretKeyRef":"hanzo-s3-secret","sourceNodeIndex":0},"staking":{"keyDerivation":{"bip44Path":"m/9000'/96369'","mnemonicSecret":"lux-master-mnemonic"},"kms":{"auth":{"credentialsNamespace":"lux-system","credentialsSecret":"universal-auth-credentials"},"envSlug":"mainnet","hostApi":"http://kms.lux-system.svc.cluster.local/api","projectSlug":"lux-infra","resyncInterval":300,"secretsPath":"/staking"},"secretName":"luxd-staking"},"startupGate":{"onTimeout":"StartAnyway","timeoutSeconds":30},"upgradeConfig":{"durangoTimestamp":0,"etnaTimestamp":0,"fortunaTimestamp":0,"graniteTimestamp":0},"upgradeStrategy":{"healthCheckBetweenRestarts":true,"maxUnavailable":1,"stabilizationSeconds":60,"strategyType":"RollingCanary"},"validators":5}}
|
||||
reconcile.lux.network/touch: "1779223282"
|
||||
creationTimestamp: "2026-02-25T05:43:28Z"
|
||||
generation: 25
|
||||
labels:
|
||||
app.kubernetes.io/part-of: lux-network
|
||||
lux.network/network: mainnet
|
||||
name: luxd
|
||||
namespace: lux-mainnet
|
||||
resourceVersion: "79342696"
|
||||
uid: 555ccdc5-b452-4fbe-ac94-552e89a9cef0
|
||||
spec:
|
||||
adoptExisting: false
|
||||
chainTracking:
|
||||
trackAllChains: true
|
||||
consensus:
|
||||
pqLayers:
|
||||
- bls
|
||||
- corona
|
||||
- mldsa
|
||||
sybilProtectionEnabled: true
|
||||
type: quasar
|
||||
zapPort: 9999
|
||||
genesisConfigMap: luxd-genesis
|
||||
image:
|
||||
repository: ghcr.io/luxfi/node
|
||||
tag: 1.27.4
|
||||
networkId: 1
|
||||
pluginSource:
|
||||
bucket: s3://lux-plugins/v1.1.0/
|
||||
credentialsSecret: hanzo-s3-secret
|
||||
endpoint: https://s3.lux.network
|
||||
kmsConfigPath: lux/mainnet/plugins
|
||||
vmPlugins:
|
||||
- objectKey: aivm-linux-amd64
|
||||
vmId: aivm
|
||||
- objectKey: bridgevm-linux-amd64
|
||||
vmId: bridgevm
|
||||
- objectKey: dexvm-linux-amd64
|
||||
vmId: dexvm
|
||||
- objectKey: graphvm-linux-amd64
|
||||
vmId: graphvm
|
||||
- objectKey: identityvm-linux-amd64
|
||||
vmId: identityvm
|
||||
- objectKey: keyvm-linux-amd64
|
||||
vmId: keyvm
|
||||
- objectKey: thresholdvm-linux-amd64
|
||||
vmId: thresholdvm
|
||||
- objectKey: oraclevm-linux-amd64
|
||||
vmId: oraclevm
|
||||
- objectKey: quantumvm-linux-amd64
|
||||
vmId: quantumvm
|
||||
- objectKey: relayvm-linux-amd64
|
||||
vmId: relayvm
|
||||
- objectKey: zkvm-linux-amd64
|
||||
vmId: zkvm
|
||||
podAntiAffinity: true
|
||||
ports:
|
||||
http: 9630
|
||||
staking: 9631
|
||||
seedRestore:
|
||||
enabled: true
|
||||
objectStoreUrl: https://s3.lux.network/lux-snapshots/mainnet/mainnet-node0-full.tar.gz
|
||||
sourceType: ObjectStore
|
||||
snapshotSchedule:
|
||||
accessKey: hanzo
|
||||
bucket: lux-snapshots
|
||||
enabled: true
|
||||
includeRlpExports: true
|
||||
intervalSeconds: 3600
|
||||
maxRetained: 5
|
||||
objectStoreEndpoint: https://s3.lux.network
|
||||
prefix: mainnet
|
||||
secretKeyRef: hanzo-s3-secret
|
||||
sourceNodeIndex: 0
|
||||
staking:
|
||||
keyDerivation:
|
||||
bip44Path: m/9000'/96369'
|
||||
mnemonicSecret: lux-master-mnemonic
|
||||
kms:
|
||||
auth:
|
||||
credentialsNamespace: lux-system
|
||||
credentialsSecret: universal-auth-credentials
|
||||
envSlug: mainnet
|
||||
hostApi: http://kms.lux-system.svc.cluster.local/api
|
||||
projectSlug: lux-infra
|
||||
resyncInterval: 300
|
||||
secretsPath: /staking
|
||||
secretName: luxd-staking
|
||||
startupGate:
|
||||
onTimeout: StartAnyway
|
||||
timeoutSeconds: 30
|
||||
upgradeConfig:
|
||||
durangoTimestamp: 0
|
||||
etnaTimestamp: 0
|
||||
fortunaTimestamp: 0
|
||||
graniteTimestamp: 0
|
||||
upgradeStrategy:
|
||||
healthCheckBetweenRestarts: true
|
||||
maxUnavailable: 1
|
||||
stabilizationSeconds: 60
|
||||
strategyType: RollingCanary
|
||||
validators: 5
|
||||
status:
|
||||
bootstrapEndpoints:
|
||||
- http://luxd-0.luxd-headless.lux-mainnet.svc:9630
|
||||
- http://luxd-1.luxd-headless.lux-mainnet.svc:9630
|
||||
- http://luxd-2.luxd-headless.lux-mainnet.svc:9630
|
||||
- http://luxd-3.luxd-headless.lux-mainnet.svc:9630
|
||||
- http://luxd-4.luxd-headless.lux-mainnet.svc:9630
|
||||
chainStatuses:
|
||||
2GiQb73CeJESjc4omFv2YtQHZrRgJf25NXPzAr5J6UNHRcDV2F:
|
||||
alias: hanzo
|
||||
blockHeight: 30
|
||||
healthy: true
|
||||
2Y625Kvdd4wZ5LKx9kLSf1jGALyARmXVN1YsTb4F3Hzv4bPDbp:
|
||||
alias: zoo
|
||||
blockHeight: 832
|
||||
healthy: true
|
||||
2pUskxqaL5Bpx7uRUGG1fDjPckjxQ4UKX4sLKeaS1NdSVBJd3F:
|
||||
alias: pars
|
||||
blockHeight: 28
|
||||
healthy: true
|
||||
C:
|
||||
alias: C
|
||||
blockHeight: 0
|
||||
healthy: true
|
||||
P:
|
||||
alias: P
|
||||
blockHeight: 260
|
||||
healthy: true
|
||||
rtjwvtE1tEvrokmpeYdTq7b2zqZgmybKwR5MLjKMGAR1W78dQ:
|
||||
alias: spc
|
||||
blockHeight: 10
|
||||
healthy: true
|
||||
conditions: []
|
||||
degradedReasons: []
|
||||
externalIps:
|
||||
luxd-0: 209.38.118.46
|
||||
luxd-1: 209.38.174.69
|
||||
luxd-2: 24.144.69.101
|
||||
luxd-3: 134.199.187.56
|
||||
luxd-4: 143.198.246.173
|
||||
luxd-5: 134.199.137.189
|
||||
networkId: 1
|
||||
networkMetrics:
|
||||
bootstrappedChains: 1
|
||||
heightSkew: 166
|
||||
maxPHeight: 260
|
||||
minPHeight: 94
|
||||
totalPeers: 20
|
||||
nodeStatuses:
|
||||
luxd-0:
|
||||
bootstrapped: true
|
||||
cChainHeight: 0
|
||||
chainsCount: 0
|
||||
connectedPeers: 4
|
||||
externalIp: 209.38.118.46
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Mf3JfSY91oDwfBqf7rCLmhg4NDtDghw1f
|
||||
outboundPeers: 4
|
||||
pChainHeight: 260
|
||||
startTime: "2026-06-02T01:27:47+00:00"
|
||||
luxd-1:
|
||||
bootstrapped: true
|
||||
cChainHeight: 1083590
|
||||
chainsCount: 0
|
||||
connectedPeers: 4
|
||||
externalIp: 209.38.174.69
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-2TwSZ2oyeBK2mv7JiseEQ8m74rotDj4QR
|
||||
outboundPeers: 4
|
||||
pChainHeight: 94
|
||||
startTime: "2026-06-01T20:23:06+00:00"
|
||||
luxd-2:
|
||||
bootstrapped: true
|
||||
cChainHeight: 1083590
|
||||
chainsCount: 0
|
||||
connectedPeers: 4
|
||||
externalIp: 24.144.69.101
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Ld9VFBQ9zGbd79z2vzaAqkQ3jHuqbtRpo
|
||||
outboundPeers: 4
|
||||
pChainHeight: 260
|
||||
startTime: "2026-06-01T20:21:18+00:00"
|
||||
luxd-3:
|
||||
bootstrapped: true
|
||||
cChainHeight: 1083590
|
||||
chainsCount: 0
|
||||
connectedPeers: 4
|
||||
externalIp: 134.199.187.56
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-8mY2fhUehN27v3LCU84BnnKEoeRfd2weC
|
||||
outboundPeers: 4
|
||||
pChainHeight: 260
|
||||
startTime: "2026-06-01T20:19:32+00:00"
|
||||
luxd-4:
|
||||
bootstrapped: true
|
||||
cChainHeight: 1083542
|
||||
chainsCount: 0
|
||||
connectedPeers: 4
|
||||
externalIp: 143.198.246.173
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-DwsrqSkPoE3pXWrUt9nkJ5yBycwRQ246X
|
||||
outboundPeers: 4
|
||||
pChainHeight: 260
|
||||
startTime: "2026-06-01T20:17:46+00:00"
|
||||
luxd-5:
|
||||
bootstrapped: false
|
||||
cChainHeight: 0
|
||||
chainsCount: 0
|
||||
connectedPeers: 0
|
||||
externalIp: 134.199.137.189
|
||||
healthy: false
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-GVQ8rMhHZcyGnm5okcn34yq2cdcvF6aG
|
||||
outboundPeers: 0
|
||||
pChainHeight: 0
|
||||
startTime: "2026-03-17T06:49:55+00:00"
|
||||
luxd-6:
|
||||
bootstrapped: false
|
||||
chainsCount: 0
|
||||
connectedPeers: 0
|
||||
healthy: false
|
||||
inboundPeers: 0
|
||||
outboundPeers: 0
|
||||
startTime: "2026-03-17T06:50:05+00:00"
|
||||
luxd-7:
|
||||
bootstrapped: false
|
||||
chainsCount: 0
|
||||
connectedPeers: 0
|
||||
healthy: false
|
||||
inboundPeers: 0
|
||||
outboundPeers: 0
|
||||
startTime: "2026-03-17T06:49:49+00:00"
|
||||
phase: Running
|
||||
readyValidators: 5
|
||||
snapshotCount: 0
|
||||
totalValidators: 5
|
||||
- apiVersion: lux.network/v1alpha1
|
||||
kind: LuxNetwork
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"lux.network/v1alpha1","kind":"LuxNetwork","metadata":{"annotations":{},"name":"luxd","namespace":"lux-testnet"},"spec":{"adoptExisting":true,"chainTracking":{"trackAllChains":true},"chainUpgradeConfig":{"precompileUpgrades":[{"dexConfig":{"blockTimestamp":0,"enableFlashLoans":true,"enableHooks":true,"maxPools":10000}},{"routerConfig":{"blockTimestamp":0}}]},"consensus":{"sybilProtectionEnabled":true},"image":{"pullPolicy":"IfNotPresent","repository":"ghcr.io/luxfi/node","tag":"v1.23.31"},"networkId":2,"ports":{"http":9640,"staking":9641},"seedRestore":{"enabled":true,"objectStoreUrl":"http://s3.lux-system.svc.cluster.local:9000/lux-snapshots/testnet/testnet-node0-full.tar.gz","sourceType":"ObjectStore"},"snapshotSchedule":{"accessKey":"hanzo","bucket":"lux-snapshots","enabled":true,"includeRlpExports":true,"intervalSeconds":3600,"maxRetained":5,"objectStoreEndpoint":"http://s3.lux-system.svc.cluster.local:9000","prefix":"testnet","secretKeyRef":"hanzo-s3-secret","sourceNodeIndex":0},"staking":{"kms":{"auth":{"credentialsNamespace":"lux-system","credentialsSecret":"universal-auth-credentials"},"envSlug":"testnet","hostApi":"https://kms.lux.network/api","projectSlug":"lux-infra","resyncInterval":300,"secretsPath":"/staking"},"secretName":"luxd-staking"},"validators":8}}
|
||||
creationTimestamp: "2026-02-25T05:43:28Z"
|
||||
generation: 20
|
||||
name: luxd
|
||||
namespace: lux-testnet
|
||||
resourceVersion: "78932442"
|
||||
uid: cc7032e2-555b-4b03-9e99-9dfc6aa01b6c
|
||||
spec:
|
||||
adoptExisting: true
|
||||
chainTracking:
|
||||
trackAllChains: true
|
||||
consensus:
|
||||
sybilProtectionEnabled: true
|
||||
image:
|
||||
pullPolicy: IfNotPresent
|
||||
repository: ghcr.io/luxfi/node
|
||||
tag: v1.23.31
|
||||
networkId: 2
|
||||
ports:
|
||||
http: 9640
|
||||
staking: 9641
|
||||
seedRestore:
|
||||
enabled: true
|
||||
objectStoreUrl: http://s3.lux-system.svc.cluster.local:9000/lux-snapshots/testnet/testnet-node0-full.tar.gz
|
||||
sourceType: ObjectStore
|
||||
snapshotSchedule:
|
||||
accessKey: hanzo
|
||||
bucket: lux-snapshots
|
||||
enabled: true
|
||||
includeRlpExports: true
|
||||
intervalSeconds: 3600
|
||||
maxRetained: 5
|
||||
objectStoreEndpoint: http://s3.lux-system.svc.cluster.local:9000
|
||||
prefix: testnet
|
||||
secretKeyRef: hanzo-s3-secret
|
||||
sourceNodeIndex: 0
|
||||
staking:
|
||||
kms:
|
||||
auth:
|
||||
credentialsNamespace: lux-system
|
||||
credentialsSecret: universal-auth-credentials
|
||||
envSlug: testnet
|
||||
hostApi: https://kms.lux.network/api
|
||||
projectSlug: lux-infra
|
||||
resyncInterval: 300
|
||||
secretsPath: /staking
|
||||
secretName: luxd-staking
|
||||
validators: 5
|
||||
status:
|
||||
bootstrapEndpoints:
|
||||
- http://luxd-0.luxd-headless.lux-testnet.svc:9640
|
||||
- http://luxd-1.luxd-headless.lux-testnet.svc:9640
|
||||
- http://luxd-2.luxd-headless.lux-testnet.svc:9640
|
||||
- http://luxd-3.luxd-headless.lux-testnet.svc:9640
|
||||
- http://luxd-4.luxd-headless.lux-testnet.svc:9640
|
||||
chainStatuses:
|
||||
2Uw1b5tf63vamHsWVeSW9uHcGBVbF5CYHS9JiLWttusY4Vvjsn:
|
||||
alias: zoo
|
||||
healthy: false
|
||||
2wbYEFh7ELuovqXhyYeCLvweZrcEgNUoZVJUAtw145qTVAUJxE:
|
||||
alias: hanzo
|
||||
healthy: false
|
||||
C:
|
||||
alias: C
|
||||
blockHeight: 975
|
||||
healthy: true
|
||||
P:
|
||||
alias: P
|
||||
blockHeight: 112
|
||||
healthy: true
|
||||
is5GUzsKHk3Z4Q5JXTjF4Ld9p4TnEs81tJFdaBiEBJVkaFrrs:
|
||||
alias: pars
|
||||
healthy: false
|
||||
u4pC2tT61o83pbQ8qwAyfXXGF6nyGFNSwCYHEFcUeESGiNKfu:
|
||||
alias: spc
|
||||
healthy: false
|
||||
conditions: []
|
||||
degradedReasons: []
|
||||
externalIps:
|
||||
luxd-0: 134.199.187.16
|
||||
luxd-1: 209.38.174.84
|
||||
luxd-2: 209.38.173.80
|
||||
luxd-3: 134.199.187.62
|
||||
luxd-4: 164.90.247.204
|
||||
networkId: 2
|
||||
networkMetrics:
|
||||
bootstrappedChains: 2
|
||||
heightSkew: 0
|
||||
maxPHeight: 112
|
||||
minPHeight: 112
|
||||
totalPeers: 20
|
||||
nodeStatuses:
|
||||
luxd-0:
|
||||
bootstrapped: true
|
||||
cChainHeight: 975
|
||||
chainsCount: 1
|
||||
connectedPeers: 4
|
||||
externalIp: 134.199.187.16
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Mf3JfSY91oDwfBqf7rCLmhg4NDtDghw1f
|
||||
outboundPeers: 4
|
||||
pChainHeight: 112
|
||||
startTime: "2026-06-01T20:15:57+00:00"
|
||||
luxd-1:
|
||||
bootstrapped: true
|
||||
cChainHeight: 975
|
||||
chainsCount: 1
|
||||
connectedPeers: 4
|
||||
externalIp: 209.38.174.84
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-2TwSZ2oyeBK2mv7JiseEQ8m74rotDj4QR
|
||||
outboundPeers: 4
|
||||
pChainHeight: 112
|
||||
startTime: "2026-06-01T20:14:15+00:00"
|
||||
luxd-2:
|
||||
bootstrapped: true
|
||||
cChainHeight: 975
|
||||
chainsCount: 1
|
||||
connectedPeers: 4
|
||||
externalIp: 209.38.173.80
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-Ld9VFBQ9zGbd79z2vzaAqkQ3jHuqbtRpo
|
||||
outboundPeers: 4
|
||||
pChainHeight: 112
|
||||
startTime: "2026-06-01T20:12:32+00:00"
|
||||
luxd-3:
|
||||
bootstrapped: true
|
||||
cChainHeight: 757
|
||||
chainsCount: 1
|
||||
connectedPeers: 4
|
||||
externalIp: 134.199.187.62
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-8mY2fhUehN27v3LCU84BnnKEoeRfd2weC
|
||||
outboundPeers: 4
|
||||
pChainHeight: 112
|
||||
startTime: "2026-06-01T20:10:43+00:00"
|
||||
luxd-4:
|
||||
bootstrapped: true
|
||||
cChainHeight: 975
|
||||
chainsCount: 1
|
||||
connectedPeers: 4
|
||||
externalIp: 164.90.247.204
|
||||
healthy: true
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-4smuFz5Z9cm8BEyQU1oPQ9nwgXyMgaNqu
|
||||
outboundPeers: 4
|
||||
pChainHeight: 112
|
||||
startTime: "2026-06-01T20:09:01+00:00"
|
||||
luxd-5:
|
||||
bootstrapped: true
|
||||
cChainHeight: 0
|
||||
chainsCount: 1
|
||||
connectedPeers: 0
|
||||
healthy: false
|
||||
inboundPeers: 0
|
||||
nodeId: NodeID-7h6LpGqSHKUydyH4Y7xpzRY4NqYf29q1V
|
||||
outboundPeers: 0
|
||||
pChainHeight: 0
|
||||
startTime: "2026-03-19T06:37:13+00:00"
|
||||
phase: Running
|
||||
readyValidators: 5
|
||||
snapshotCount: 0
|
||||
totalValidators: 5
|
||||
kind: List
|
||||
metadata:
|
||||
resourceVersion: ""
|
||||
@@ -1,112 +0,0 @@
|
||||
apiVersion: apps/v1
|
||||
kind: Deployment
|
||||
metadata:
|
||||
annotations:
|
||||
deployment.kubernetes.io/revision: "12"
|
||||
kubectl.kubernetes.io/last-applied-configuration: |
|
||||
{"apiVersion":"apps/v1","kind":"Deployment","metadata":{"annotations":{},"labels":{"app":"lux-operator"},"name":"lux-operator","namespace":"lux-system"},"spec":{"replicas":1,"selector":{"matchLabels":{"app":"lux-operator"}},"template":{"metadata":{"labels":{"app":"lux-operator"}},"spec":{"containers":[{"args":["--namespace","","--log-level","info","--metrics-port","8080","--health-port","8081","--leader-election"],"image":"ghcr.io/luxfi/operator:v0.3.11","imagePullPolicy":"Always","livenessProbe":{"failureThreshold":5,"httpGet":{"path":"/healthz","port":8081},"initialDelaySeconds":10,"periodSeconds":30,"timeoutSeconds":3},"name":"operator","ports":[{"containerPort":8080,"name":"metrics"},{"containerPort":8081,"name":"health"}],"readinessProbe":{"failureThreshold":3,"httpGet":{"path":"/healthz","port":8081},"initialDelaySeconds":3,"periodSeconds":10,"timeoutSeconds":3},"resources":{"limits":{"cpu":"1","memory":"512Mi"},"requests":{"cpu":"100m","memory":"128Mi"}}}],"imagePullSecrets":[{"name":"ghcr-luxfi"}],"serviceAccountName":"lux-operator"}}}}
|
||||
creationTimestamp: "2026-02-25T05:42:55Z"
|
||||
generation: 19
|
||||
labels:
|
||||
app: lux-operator
|
||||
name: lux-operator
|
||||
namespace: lux-system
|
||||
resourceVersion: "64798812"
|
||||
uid: 400d0a65-534a-4762-bf4c-7433b1dcd37e
|
||||
spec:
|
||||
progressDeadlineSeconds: 600
|
||||
replicas: 1
|
||||
revisionHistoryLimit: 10
|
||||
selector:
|
||||
matchLabels:
|
||||
app: lux-operator
|
||||
strategy:
|
||||
rollingUpdate:
|
||||
maxSurge: 25%
|
||||
maxUnavailable: 25%
|
||||
type: RollingUpdate
|
||||
template:
|
||||
metadata:
|
||||
annotations:
|
||||
kubectl.kubernetes.io/restartedAt: "2026-03-21T10:52:02-07:00"
|
||||
labels:
|
||||
app: lux-operator
|
||||
spec:
|
||||
containers:
|
||||
- args:
|
||||
- --namespace
|
||||
- ""
|
||||
- --log-level
|
||||
- info
|
||||
- --metrics-port
|
||||
- "8080"
|
||||
- --health-port
|
||||
- "8081"
|
||||
- --leader-election
|
||||
image: ghcr.io/luxfi/operator:v0.3.12
|
||||
imagePullPolicy: Always
|
||||
livenessProbe:
|
||||
failureThreshold: 5
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 10
|
||||
periodSeconds: 30
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
name: operator
|
||||
ports:
|
||||
- containerPort: 8080
|
||||
name: metrics
|
||||
protocol: TCP
|
||||
- containerPort: 8081
|
||||
name: health
|
||||
protocol: TCP
|
||||
readinessProbe:
|
||||
failureThreshold: 3
|
||||
httpGet:
|
||||
path: /healthz
|
||||
port: 8081
|
||||
scheme: HTTP
|
||||
initialDelaySeconds: 3
|
||||
periodSeconds: 10
|
||||
successThreshold: 1
|
||||
timeoutSeconds: 3
|
||||
resources:
|
||||
limits:
|
||||
cpu: "1"
|
||||
memory: 512Mi
|
||||
requests:
|
||||
cpu: 100m
|
||||
memory: 128Mi
|
||||
terminationMessagePath: /dev/termination-log
|
||||
terminationMessagePolicy: File
|
||||
dnsPolicy: ClusterFirst
|
||||
imagePullSecrets:
|
||||
- name: ghcr-luxfi
|
||||
restartPolicy: Always
|
||||
schedulerName: default-scheduler
|
||||
securityContext: {}
|
||||
serviceAccount: lux-operator
|
||||
serviceAccountName: lux-operator
|
||||
terminationGracePeriodSeconds: 30
|
||||
status:
|
||||
availableReplicas: 1
|
||||
conditions:
|
||||
- lastTransitionTime: "2026-02-25T05:42:55Z"
|
||||
lastUpdateTime: "2026-03-21T17:52:15Z"
|
||||
message: ReplicaSet "lux-operator-55b598dc94" has successfully progressed.
|
||||
reason: NewReplicaSetAvailable
|
||||
status: "True"
|
||||
type: Progressing
|
||||
- lastTransitionTime: "2026-05-03T05:02:16Z"
|
||||
lastUpdateTime: "2026-05-03T05:02:16Z"
|
||||
message: Deployment has minimum availability.
|
||||
reason: MinimumReplicasAvailable
|
||||
status: "True"
|
||||
type: Available
|
||||
observedGeneration: 19
|
||||
readyReplicas: 1
|
||||
replicas: 1
|
||||
updatedReplicas: 1
|
||||
@@ -1 +0,0 @@
|
||||
customresourcedefinition.apiextensions.k8s.io/luxmpcs.lux.network
|
||||
Reference in New Issue
Block a user