Files
harmony/harmony
Jean-Gabriel Gill-Couture 174d0b4304
All checks were successful
Run Check Script / check (pull_request) Successful in 2m19s
fix(k8s): build Ingress from typed structs; omit ingressClassName when unset
The json!-based renderer set `ingressClassName` to the literal string
`"default"` (quotes included) when no class was given — an invalid
IngressClass reference, so the Ingress was never claimed/routed. The
fleet operator passes None, so it hit exactly that.

Rebuild the Ingress from typed k8s_openapi structs. `None` now omits
`ingressClassName` so the cluster's default IngressClass claims the
resource (per docs/guides/kubernetes-ingress.md); `Some(x)` passes it
through unchanged. cert-manager annotations + the tls block are typed
too, dropping the serde_json::Value patching and from_value().unwrap().

Tests cover omit-when-none, pass-through-when-set, and backend/path.
2026-06-01 22:20:42 -04:00
..