Expand description
Kubernetes Gateway API controller (DW-064).
Two layers:
-
Reconciler: the pure reconciliation core. It holds the current set of watched resources (GatewayClass, Gateway, HTTPRoute, Ingress, IngressClass, EndpointSlice) and produces a dwaraGatewayconfig by calling the translator (super::translate) and the Ingress translator (super::ingress::translate_ingress). It also computes status conditions (Accepted/Programmed for Gateway, Accepted/ ResolvedRefs for HTTPRoute). This layer is testable WITHOUT a cluster. -
Controller: the kube-rs based wiring that sets up informers/ watchers for each resource type, feeds events into theReconciler, and publishes the resulting dwara config (file-write by default; the admin API push path is documented as an option). Status updates use kube-rs patch. This layer requires a running Kubernetes cluster.
§Feature gate
None: the module compiles into every build (no k8s cargo
feature).
Structs§
- Condition
- A status condition (subset of metav1.Condition).
- Controller
- The kube-rs controller. Sets up informers/watchers for each resource type, feeds events into the Reconciler, and publishes the resulting dwara config. Requires a running Kubernetes cluster.
- Controller
Config - Configuration for the kube-rs controller.
- Gateway
Class Status - The status of a GatewayClass (Accepted condition).
- Gateway
Status - The status of a Gateway (Accepted + Programmed conditions).
- Http
Route Status - The status of an HTTPRoute (Accepted + ResolvedRefs conditions).
- Reconcile
Output - The reconciliation output: the translated config plus the status conditions to patch back onto the watched resources.
- Reconciler
- The pure reconciliation core. Holds the current set of watched resources and produces a dwara config + status conditions. This is testable without a Kubernetes cluster.
Functions§
- publish_
config - Publish the reconciled config to the output path (file-write mode). Writes a YAML file atomically (temp file + rename) so the gateway’s file-watch (DW-054) picks up the complete document.