pub const GATEWAY_API_PROTOCOL_HTTP: &'static str;Expand description
Canonical K8s Gateway API v1 ProtocolType OpenAPI schema enum’s
HTTP listener-protocol scalar value every gateway_routes-emitted
Gateway document’s first (and V0-only) listener declares under its
caixa_core::KUBE_KEY_PROTOCOL axis. Re-export of the canonical
caixa_core::GATEWAY_API_PROTOCOL_HTTP so the Gateway-API-
implementation-side per-listener L7-parser-selection scalar value
lives in exactly one place across every caixa renderer — caixa-mesh’s
gateway_routes per-:entrada Gateway emitter (the single
production-code site the prior inline "HTTP".into() literal sat at,
caixa-mesh/src/lib.rs:2123 — the per-listener KUBE_KEY_PROTOCOL
scalar-value emit) and every future per-Gateway-API-side renderer the
M3.x absorption roadmap acknowledges now consult the same
&'static str, so a future Gateway API ProtocolType enum rebrand
(e.g. an upstream rename to HTTP/1.1 / HTTP/2 per the SIG-Network
per-version-scope proposal) is a one-line edit on the canonical
caixa_core::GATEWAY_API_PROTOCOL_HTTP declaration, not a
coordinated rewrite across this crate’s gateway_routes renderer’s
per-listener KUBE_KEY_PROTOCOL-scalar-value emit + the matching
in-file gateway_listener_carries_aplicacao_host test’s
assert_eq!(…, Some("HTTP")) listener-protocol-value pin + every
future per-Gateway-API-side renderer the substrate adds. The prior
inline literal would have let a Gateway-API ProtocolType rebrand
on the caixa-mesh side without a coordinated edit on the matching
in-file test pin silently emit a Gateway whose listener-protocol
scalar drifts off the lifted-test-fixture pin — apply-side: the
gateway-class-controller’s per-listener bind loop rejects the
Gateway at admission (the K8s Gateway API v1 ProtocolType OpenAPI
schema enum admits the closed set {"HTTP", "HTTPS", "TCP", "TLS", "UDP"} verbatim), 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. Peer to the
GATEWAY_API_KIND_GATEWAY + GATEWAY_API_KIND_HTTP_ROUTE
re-exports on the sibling canonical-Gateway-API-CRD-kind-
discriminator surface + the DEFAULT_GATEWAY_CLASS_NAME re-export
on the sibling Gateway-controller-binding-scalar-value axis —
extends the Gateway-API-CRD-kind-value + Gateway-controller-
binding-value re-export set onto the sibling per-Gateway
spec.listeners[].protocol listener-protocol-scalar-value axis the
same gateway_routes renderer’s external :entrada ingress contract
carries under the shared Gateway body.
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.