Module controller

Module controller 

Source
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 dwara Gateway config 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 the Reconciler, 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.
ControllerConfig
Configuration for the kube-rs controller.
GatewayClassStatus
The status of a GatewayClass (Accepted condition).
GatewayStatus
The status of a Gateway (Accepted + Programmed conditions).
HttpRouteStatus
The status of an HTTPRoute (Accepted + ResolvedRefs conditions).
ReconcileOutput
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.