Give the reuse landing catch-all its own Ingress and an explicit priority
/health returned nginx 404 through the ingress while the service answered 200 in-cluster. The ingress rule was correct on paper — /health Exact -> reuse-surface:8000 alongside / Prefix -> reuse-surface-landing:8080 — but Traefik derives router priority from the length of the generated rule string, and Path(`/health`) and PathPrefix(`/`) are both 15 characters. The tie broke toward the landing page. PathPrefix(`/v1`) is longer, which is why /v1 worked and the fault looked like a /health-only bug. traefik.ingress.kubernetes.io/router.priority applies per Ingress, not per path, so the catch-all moves into its own Ingress with priority 1. Every API route now outranks it regardless of rule length. This is not cosmetic: make reuse-smoke curls /health and false-negatives on an otherwise healthy release. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
parent
029460d6e3
commit
a36563543b
3 changed files with 50 additions and 7 deletions
|
|
@ -35,6 +35,11 @@ landing:
|
|||
service:
|
||||
port: 8080
|
||||
targetPort: 8080
|
||||
ingress:
|
||||
# Explicit Traefik router priority for the landing catch-all. Traefik
|
||||
# otherwise derives priority from rule-string length, where PathPrefix(`/`)
|
||||
# ties with Path(`/health`) and can win. Keep this below every API route.
|
||||
priority: 1
|
||||
noindex: true
|
||||
title: "Railiance service endpoint"
|
||||
eyebrow: "Railiance S5"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue