Files
universe/k8s/lux-k8s/kustomization.yaml
zeekay 51460827d4 Merge the forge's lux/universe into GitHub's, the one main from here
The two mains shared no history, so this is a per-file three-way merge:
for each file the 65 forge-only commits touched (by patch-id), the base is
the newest version both histories held. 105 files merged or took one side
cleanly, 48 were already identical, and the 45 true conflicts and 31
modify/delete pairs were resolved by what runs on the cluster:

- The forge wins where it is live: explorer 1.5.56 (digest 45db11ff) and
  its archive readers, explore-fe-hanzo's ConfigMap env (AI coin,
  /v1/indexer/hanzo, /v1/chain/hanzo/rpc), exchange-api reading
  luxd-archive, and explore-fe-{lux,zoo}-testnet, pinned to what they run
  (v2.8.5-lux / v2.8.4-lux).
- GitHub wins where it is live: explore-fe-lux v2.8.5-lux, explore-fe-zoo
  v2.8.4-lux, bankd v1.0.18, lux-build's routes.
- The forge's retirement of workloads that run nowhere stands: lux-mainnet
  dex, lux-hb2, lux-market, traffic, wallet-web; the lux-testnet frontends,
  indexer, exchange and gateways; lux-operator. deploy/lux-testnet/luxd.yaml
  stays, since roll_luxd.sh reads it.
- GitHub's deletions stand: lux-finance and lux-financial (static sites
  now), the k8s/ operator manifests, .hanzo/workflows/cicd.yml.
- Paths are /v1/chain/C/rpc where the forge had written /v1/chain/c. All
  four spellings answer; this one is the documented form. The forge's
  /{network}/v1 doc lines are dropped: a network is a host, and the prefix
  404s.

Dry-run against the running objects (server-side, as CD applies), the
merged explorer shows no change where GitHub's showed 152 lines, and no
other live workload moves further from what runs. Every deploy/*/*.yaml
renders with charts/app; price.yaml, which failed on GitHub, now renders.

Claude-Session: https://claude.ai/code/session_01TzirYkGmD88w4GipqivUtV
2026-09-23 20:20:03 -07:00

65 lines
2.7 KiB
YAML

apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
# ── DO NOT `kubectl apply -k` THIS DIRECTORY ────────────────────────────────
# It does not build, and that is currently the only thing protecting the
# cluster from it.
#
# Why it does not build: the `../lux-*/...` entries below are raw FILES outside
# this kustomization root, which kustomize refuses by design ("security; file
# is not in or below"). Pointing them at a sibling *directory* that owns a
# kustomization.yaml is the legal form — but do not do that yet, because:
#
# Why you must not make it build: this tree has drifted far behind the live
# cluster, and every drift is a downgrade on apply. Measured against
# lux-k8s / hanzo-k8s:
# hanzo/cloud v1.785.19 <- live v1.801.210 (16 minors back)
# lux-bank/lux-financial v1.4.0 <- live v1.5.1
# lux-bridge/bridge-{ui,server} 1.0.6 <- live @sha256 pins
# hanzo/lux-vote lux-vote:v2.0.0 <- live dao-vote:lux-f36fd77
# bootnode/bootnode-api hanzoai/bootnode:1.0.0-amd64-api <- live bootnode/bootnode:api-latest
# Reconcile the pins against live FIRST, then convert the file refs to
# directory bases. Until then a hard failure is the correct behaviour.
#
# Live objects are hand-applied per-file (no operator, no GitOps controller —
# they carry kubectl's last-applied-configuration and no ownerReferences),
# which is exactly why this aggregate path rotted unnoticed.
resources:
- bootnode
- kms
- cloud
- industries
- bitcoin
- coin
- invest
- safe
- vote
- blog
# luxd is deployed only from deploy/lux-{mainnet,testnet,devnet}/luxd.yaml.
# Keeping a validator StatefulSet here would create a second, stale rollout path.
- validators/crd-resources.yaml
- kms-secrets.yaml
- pvc-snapshot-cronjob.yaml
- ../lux-gateway/gateway.yaml
- ../lux-bridge/ingress.yaml
- ../lux-mpc/ingress.yaml
- ../lux-explorer/ingress.yaml
- ../lux-explorer/ingress-chains.yaml
# ../lux-explorer/explorer-chains.yaml was deleted by c1a711d9 ("explorer:
# delete stale lux-explorer/explorer-chains CM"); the reference was left
# behind and is a dangling pointer.
- ../lux-explorer/frontend-chains.yaml
- ../lux-explorer/configmap-chains.yaml
- ../lux-explorer/indexer-all-chains.yaml
# Exchange manifests deduplicated into k8s/exchange/ (base + per-env overlays).
# Apply via: kubectl apply -k k8s/exchange/overlays/<env>/ — not wired into the
# top-level lux-k8s kustomize because live prod runs from k8s/lux-ns/ and the
# per-env overlays here are migration targets.
labels:
- pairs:
app.kubernetes.io/cluster: lux-k8s
includeSelectors: false