Skip to main content

GATEWAY_API_KIND_HTTP_ROUTE

Constant GATEWAY_API_KIND_HTTP_ROUTE 

Source
pub const GATEWAY_API_KIND_HTTP_ROUTE: &'static str;
Expand description

Canonical K8s Gateway API CRD kind discriminator every gateway_routes-emitted HTTPRoute document declares at its top-level caixa_core::KUBE_KEY_KIND axis. Re-export of the canonical caixa_core::GATEWAY_API_KIND_HTTP_ROUTE so the Gateway-API-conformant CRD kind discriminator string lives in exactly one place across every caixa renderer — caixa-mesh’s gateway_routes per-Aplicacao HTTPRoute emitter (the single production-code site the prior inline "HTTPRoute" literal sat at, caixa-mesh/src/lib.rs:663 — the kube_resource_skeleton kind argument) 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 rebrand (e.g. an upstream rename to HTTPRouteV1 post-GA) is a one-line edit on the canonical caixa_core::GATEWAY_API_KIND_HTTP_ROUTE declaration, not a coordinated rewrite across this crate’s kube_resource_skeleton call site + every future per-target renderer the substrate adds. The prior inline literal would have let a Gateway-API kind rebrand on the caixa-mesh side without a coordinated edit on the matching in-file httproute_carries_canonical_kube_skeleton_without_labels / render_all_includes_every_artifact_kind test fixture pins silently emit an HTTPRoute whose top-level kind drifts off the lifted-test-fixture pins — apply-side: the HTTPRoute lands outside the apiserver-side CRD registration, every external :entrada flow drops at the gateway-class-controller’s reconcile loop with no field naming the kind-drift root cause. Peer to the GATEWAY_API_KIND_GATEWAY re-export on the sibling canonical- Gateway-API-CRD-kind-discriminator surface — completes the per-Gateway-API-CRD kind-axis re-export pair this crate’s gateway_routes renderer’s external :entrada ingress contract rests on across the (Gateway, HTTPRoute) pair the renderer emits together. Canonical K8s Gateway API CRD kind discriminator the rendered HTTPRoute document declares at its top-level KUBE_KEY_KIND axis. Pairs with the sibling GATEWAY_API_API_VERSION (3c6cfc3) and the peer GATEWAY_API_KIND_GATEWAY (fb4639c) — the K8s apiserver-side CRD resolution contract is the (apiVersion, kind) tuple keyed against the registered CustomResourceDefinition, so drift on the kind axis is exactly as load-bearing as drift on the apiVersion axis it accompanies (the apiserver’s RESTMapper consults both together; a ("gateway.networking.k8s.io/v1", "HTTPRout") typo at the production-code call site lands outside the registered Gateway-API- conformant HTTPRoute CRD’s RESTKind lookup, surfacing apply-side as a non-self-locating “no kind ‘HTTPRout’ is registered for version ‘gateway.networking.k8s.io/v1’” error far from the source caixa.lisp / the renderer’s kube_resource_skeleton call site).

The single source of truth the rendered Aplicacao Gateway-API-side ingress bundle’s HTTPRoute-naming axis reaches for:

  • the rendered HTTPRoute document’s top-level KUBE_KEY_KIND axis (caixa-mesh/src/lib.rs:663 — the gateway_routes per- Aplicacao HTTPRoute kube_resource_skeleton kind argument).

The kind axis names the same Gateway-API-conformant CRD discriminator as the sibling GATEWAY_API_API_VERSION apiVersion axis and the peer GATEWAY_API_KIND_GATEWAY parent-Gateway axis, and must move together with both on any future Gateway-API rebrand. Until this lift landed the axis carried an inline HTTPRoute literal at the one production-code occurrence in caixa-mesh/src/lib.rs:663 (the gateway_routes HTTPRoute kube_resource_skeleton kind argument) plus a matching set inside the in-file httproute_carries_canonical_kube_skeleton_without_labels / render_all_includes_every_artifact_kind test fixtures plus the find() predicate of every per-HTTPRoute-kind test that picks the HTTPRoute document out of the rendered Aplicacao mesh bundle — multiple occurrences of the same load-bearing Gateway-API-CRD-kind- discriminator convention, drift-prone by construction.

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) / CILIUM_KIND_NETWORK_POLICY (eac85cb) / FLUX_KIND_KUSTOMIZATION (4114773) / FLUX_KIND_HELM_RELEASE (e24ea3c) / FLUX_KIND_GIT_REPOSITORY (dbbcf29) / GATEWAY_API_API_VERSION (3c6cfc3) lifts established on the sibling cluster-side-CRD-kind-discriminator + canonical-CRD- group/version axes — completes the per-Gateway-API-CRD kind-axis lift trajectory across the (Gateway, HTTPRoute) pair that the renderer’s gateway_routes external :entrada ingress contract emits together. Every guarantee in MESH-COMPOSITION.md §V — “every Aplicacao with :entrada emits one Gateway + one HTTPRoute per :paths entry pointing at the same gateway.networking.k8s.io/v1 group/version — now threads through one lifted &'static str apiece for both halves of the pair, so a future Gateway-API rebrand lands at one substrate-side edit-point per axis and no per-renderer drift surface remains across the pair.

A future Gateway-API-side renderer the M3.x absorption roadmap names — TCPRoute, TLSRoute, GRPCRoute for non-HTTP :entrada edges, the future M4 mesh.pleme.io/v1alpha1/Aplicacao CR materializer’s per-Aplicacao HTTPRoute fan-out, a future per-edge route-attached-policy renderer (BackendTLSPolicy, BackendLBPolicy) — inherits the canonical HTTPRoute kind discriminator by construction with no opportunity for per-renderer drift.