Skip to main content

GATEWAY_API_PROTOCOL_HTTP

Constant GATEWAY_API_PROTOCOL_HTTP 

Source
pub const GATEWAY_API_PROTOCOL_HTTP: &str = "HTTP";
Expand description

Canonical K8s Gateway API Gateway.spec.listeners[].protocol HTTP listener-protocol scalar value the rendered Gateway document’s first (and V0-only) listener declares under its KUBE_KEY_PROTOCOL axis. Pairs with the sibling GATEWAY_API_KIND_GATEWAY (fb4639c) + GATEWAY_API_KIND_HTTP_ROUTE (1adccc0) — the K8s Gateway API v1 CRD schema pins the per-listener L7 parser + TLS-termination strategy through the spec.listeners[].protocol scalar value (the gateway-class-controller’s per-listener bind loop selects the L7 parser + TLS termination strategy from this exact byte-sequence; the Gateway API v1 ProtocolType OpenAPI schema enum admits the closed set {"HTTP", "HTTPS", "TCP", "TLS", "UDP"} verbatim), so drift on the listener-protocol value is exactly as load-bearing as drift on the sibling GATEWAY_API_KIND_GATEWAY + GATEWAY_API_KIND_HTTP_ROUTE CRD kind discriminators the pair declares together (a ("Gateway", "http") / ("Gateway", "Http") / ("Gateway", "http/1.1") typo at the production-code call site lands outside the Gateway API v1 ProtocolType OpenAPI schema enum, surfacing apply-side as a non-self-locating “spec.listeners[0].protocol: Unsupported value: "http": supported values: "HTTP", "HTTPS", "TCP", "TLS", "UDP"” apiserver admission-rejection far from the source caixa.lisp / the renderer’s listener.insert(…) call site — the rendered per-Aplicacao Gateway object never reconciles at the gateway-class-controller’s per-listener bind loop and every external :entrada HTTP flow drops at the gateway-class- controller’s admission gate with no field naming the listener-protocol-drift root cause).

The single source of truth the rendered Aplicacao Gateway-API-side ingress bundle’s per-listener L7-parser-selection axis reaches for:

  • the rendered Gateway document’s spec.listeners[0].protocol axis (the gateway_routes per-:entrada Gateway emitter’s listener.insert(KUBE_KEY_PROTOCOL, "HTTP") call — the sole production-code call site the prior inline "HTTP".into() literal sat at, caixa-mesh/src/lib.rs:2123).

The listener-protocol value names the same Gateway-API- implementation-side per-listener L7-parser-selection scalar as the sibling KUBE_KEY_PROTOCOL key-axis discriminator carries the value under, and must move together with the sibling K8s Gateway API ProtocolType OpenAPI schema enum on any future Gateway API rebrand (an upstream Gateway API v2 rename of the HTTP listener protocol from HTTP to HTTP/1.1 / HTTP/2 / http, coordinated with the upstream SIG-Network Gateway API ProtocolType enum deprecation cycle, would land at this one const rather than scattered across every per-emitter listener-block-insertion site).

The PRIME DIRECTIVE duplication-budget rule (THEORY.md §I.3.5, “every recurring shape becomes a generator before it becomes a pattern; every pattern becomes a library before it becomes duplicated code. The duplication budget is zero.”) promotes the constant to a typed substrate-side &'static str on the same trajectory the GATEWAY_API_KIND_GATEWAY (fb4639c) / GATEWAY_API_KIND_HTTP_ROUTE (1adccc0) / DEFAULT_GATEWAY_CLASS_NAME (d9b0743) lifts established on the sibling Gateway-API-CRD-kind-discriminator + Gateway-controller- binding-scalar-value axes — extends the per-Gateway-API-CRD-kind- discriminator lift pair across the (Gateway, HTTPRoute) pair onto the sibling per-Gateway spec.listeners[].protocol listener-protocol-scalar-value axis the same gateway_routes external :entrada ingress emitter carries.

A future Gateway-API-side renderer the M3.x absorption roadmap names — an HTTPS listener with TLS termination (a sibling GATEWAY_API_PROTOCOL_HTTPS const value the same enum admits), the future M4 mesh.pleme.io/v1alpha1/Aplicacao materializer’s per-Aplicacao multi-listener fan-out over {HTTP, HTTPS, TLS}, a future per-listener route-attached-policy renderer that binds distinct policy chains per listener-protocol — inherits the canonical HTTP listener-protocol value by construction with no opportunity for per-renderer drift.