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
HTTPRoutedocument’s top-levelKUBE_KEY_KINDaxis (caixa-mesh/src/lib.rs:663 — thegateway_routesper- AplicacaoHTTPRoutekube_resource_skeletonkind 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.