explorer: route api-explore-{hanzo,zoo,spc,pars}.lux.network → explorer-unified:8090

Brand explorer API hosts were targeting dead per-brand services
(explorer-{brand}:4000) replaced by unified Go indexer at
explorer-mainnet-v2:8090 (lux-explorer ns). Cross-ns via existing
explorer-unified ExternalName Service in lux-mainnet ns.

Adds brand-prefix middleware chain (mainpage-rewrite +
blockscout-prefix-{brand} + cors-allow-all) so unified backend
dispatches to per-slug SQLite via /v1/indexer/{brand} prefix —
same pattern as lux-explorer/lux-explorer-mainnet-chains for X/P/D.

Verified: api-explore-hanzo.lux.network now hits unified backend
(content-security-policy header present); 404 on /v1/indexer/hanzo
expected until per-brand indexer pods come up (chain-layer work).
This commit is contained in:
Hanzo Dev
2026-06-02 14:25:51 -07:00
parent 215e679148
commit 18863e1976
+30 -9
View File
@@ -1,7 +1,7 @@
---
###############################################################################
# IngressRoutes: app chain EVM chain explorers (Mainnet)
# Each chain gets frontend + API backend routing rules.
# Each chain gets frontend SPA + per-brand API routing rules.
# TLS via hanzoai/ingress ACME certResolver with Cloudflare DNS challenge.
#
# NOTE: Must use hanzo.ai/v1alpha1 IngressRoute CRD (NOT standard K8s Ingress).
@@ -12,6 +12,11 @@
# Cluster: lux-k8s (do-sfo3-lux-k8s)
# Ingress: hanzo-ingress DaemonSet in lux-system namespace
#
# API backend: explorer-unified (ExternalName in lux-mainnet -> explorer-mainnet-v2
# in lux-explorer ns:8090). Unified Go explorer indexes every brand into per-slug
# SQLite; brand dispatch via /v1/indexer/{slug} prefix added by blockscout-prefix-{slug}
# Middleware.
#
# Domains per chain:
# Zoo: explore-zoo.lux.network + explore.zoo.network + explore.zoo.ngo
# Hanzo: explore-hanzo.lux.network + explore.hanzo.network + explore.hanzo.ai
@@ -42,9 +47,13 @@ spec:
port: 3000
- kind: Rule
match: Host(`api-explore-zoo.lux.network`) || Host(`api-explore.zoo.network`) || Host(`api-explore.zoo.ngo`)
middlewares:
- name: mainpage-rewrite
- name: blockscout-prefix-zoo
- name: cors-allow-all
services:
- name: explorer-zoo
port: 4000
- name: explorer-unified
port: 8090
tls:
certResolver: letsencrypt
---
@@ -71,9 +80,13 @@ spec:
port: 3000
- kind: Rule
match: Host(`api-explore-hanzo.lux.network`) || Host(`api-explore.hanzo.network`) || Host(`api-explore.hanzo.ai`)
middlewares:
- name: mainpage-rewrite
- name: blockscout-prefix-hanzo
- name: cors-allow-all
services:
- name: explorer-hanzo
port: 4000
- name: explorer-unified
port: 8090
tls:
certResolver: letsencrypt
---
@@ -100,9 +113,13 @@ spec:
port: 3000
- kind: Rule
match: Host(`api-explore-spc.lux.network`)
middlewares:
- name: mainpage-rewrite
- name: blockscout-prefix-spc
- name: cors-allow-all
services:
- name: explorer-spc
port: 4000
- name: explorer-unified
port: 8090
tls:
certResolver: letsencrypt
---
@@ -129,8 +146,12 @@ spec:
port: 3000
- kind: Rule
match: Host(`api-explore-pars.lux.network`) || Host(`api-explore.pars.network`)
middlewares:
- name: mainpage-rewrite
- name: blockscout-prefix-pars
- name: cors-allow-all
services:
- name: explorer-pars
port: 4000
- name: explorer-unified
port: 8090
tls:
certResolver: letsencrypt