Files
universe/k8s/lux-testnet/exchange-api-ingress.yaml
zeekayandHanzo Dev c9e1987ab4 Twelve services were declared twice; deploy/ is the one that runs
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]>
2026-09-01 12:45:49 -07:00

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