k8s/ and deploy/ both described lux-build, lux-market, explorer, lux-indexer,
explore-fe-spc, rpc-tip-gate, exchange-api, lux-exchange, zoo-bot, zoo-build,
zoo-industries and hanzo's lux-market. Only deploy/ is read by anything: the
ApplicationSet generates one Application per deploy/<ns>/<app>.yaml. So a
kubectl apply from k8s/ moved the cluster to a description CD would then heal
back, and the values files were generated from what is RUNNING while these
manifests were hand-applied over a long period.
Not one of them was a plain duplicate, which is why this took a lift rather than
a delete. Every k8s manifest carried an object the values file did not:
lux-build, lux-market, zoo-* IngressRoute + Middleware — the hosts users
actually reach, entirely outside CD
lux-indexer (x2) the chain table and the 100Gi claim, both
MOUNTED BY NAME in the values file and
declared nowhere in it
explorer (mainnet) the 50Gi claim, likewise mounted, likewise
undeclared
explore-fe-spc the ConfigMap its envFrom names, so the
values file described a pod that would start
with none of its NEXT_PUBLIC_* set
rpc-tip-gate the ServiceAccount, Role and binding its
serviceAccountName names
lux-exchange the rate-limit Middleware and the annotation
that binds it
Each moved into the values file and was verified by rendering the chart against
the manifest object by object: the routes, ConfigMaps, claims and RBAC now come
out identical. All 134 values files render.
Two objects could not move, and are split into manifests of their own rather
than left inside a duplicate:
luxd-rpc.yaml luxd's Service, selecting one label MORE
than luxd's pods carry — the key the gate
patches on and off. A chart-rendered Service
selects the release's own pods, which is
every luxd node, current or not.
exchange-api-ingress.yaml renaming it re-issues a certificate, and
with prune off the old object would keep
serving beside the new one.
k8s/lux-testnet/explorer.yaml stays whole. Its own kustomization records it as
aspirational and stale and says applying it would clobber the live explorer pod,
so its ConfigMap is not something to promote into the tree CD reconciles from.
Co-authored-by: Hanzo Dev <[email protected]>
39 lines
1.3 KiB
YAML
39 lines
1.3 KiB
YAML
# The public route for api-exchange.lux-test.network.
|
|
#
|
|
# The Deployment and Service that back it are declared in
|
|
# deploy/lux-testnet/exchange-api.yaml and the rest of this manifest went with
|
|
# them. This object stayed because moving it RENAMES it: the app chart names a
|
|
# shared Ingress after the app (`exchange-api`) and a per-host one
|
|
# `<app>-<host>`, and neither is `api-exchange-lux-test-network`. An Ingress
|
|
# name is a cert-manager Certificate name, so a rename is a fresh Let's Encrypt
|
|
# issuance — and with prune off the old object would keep serving beside the new
|
|
# one, two routers on one host. Content is verbatim live (`kubectl diff -f`
|
|
# clean, recorded in kustomization.yaml 2026-07-28).
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
name: api-exchange-lux-test-network
|
|
namespace: lux-testnet
|
|
labels:
|
|
app: exchange-api
|
|
network: testnet
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-prod
|
|
spec:
|
|
ingressClassName: ingress
|
|
rules:
|
|
- host: api-exchange.lux-test.network
|
|
http:
|
|
paths:
|
|
- path: /
|
|
pathType: Prefix
|
|
backend:
|
|
service:
|
|
name: exchange-api
|
|
port:
|
|
number: 4000
|
|
tls:
|
|
- hosts:
|
|
- api-exchange.lux-test.network
|
|
secretName: api-exchange-lux-test-network-tls
|