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
Gatewaydocument’sspec.listeners[0].protocolaxis (thegateway_routesper-:entradaGatewayemitter’slistener.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.