pub struct Reconciler { /* private fields */ }Expand description
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.
Implementations§
Source§impl Reconciler
impl Reconciler
Sourcepub fn new(controller_name: &str, ingress_class: &str) -> Self
pub fn new(controller_name: &str, ingress_class: &str) -> Self
Create a new Reconciler with the given controller and Ingress class.
Sourcepub fn with_defaults() -> Self
pub fn with_defaults() -> Self
Create a Reconciler with the default dwara controller name.
Sourcepub fn with_gateway_classes(self, gcs: Vec<GatewayClass>) -> Self
pub fn with_gateway_classes(self, gcs: Vec<GatewayClass>) -> Self
Set the watched GatewayClasses.
Sourcepub fn with_gateways(self, gws: Vec<Gateway>) -> Self
pub fn with_gateways(self, gws: Vec<Gateway>) -> Self
Set the watched Gateways.
Sourcepub fn with_httproutes(self, routes: Vec<HttpRoute>) -> Self
pub fn with_httproutes(self, routes: Vec<HttpRoute>) -> Self
Set the watched HTTPRoutes.
Sourcepub fn with_ingresses(self, ingresses: Vec<Ingress>) -> Self
pub fn with_ingresses(self, ingresses: Vec<Ingress>) -> Self
Set the watched Ingresses.
Sourcepub fn with_ingress_classes(self, classes: Vec<IngressClass>) -> Self
pub fn with_ingress_classes(self, classes: Vec<IngressClass>) -> Self
Set the watched IngressClasses.
Sourcepub fn with_endpoints(
self,
endpoints: HashMap<String, Vec<DwaraEndpoint>>,
) -> Self
pub fn with_endpoints( self, endpoints: HashMap<String, Vec<DwaraEndpoint>>, ) -> Self
Set the endpoint map.
Sourcepub fn set_gateway_classes(&mut self, gcs: Vec<GatewayClass>)
pub fn set_gateway_classes(&mut self, gcs: Vec<GatewayClass>)
Update the GatewayClasses (called by the controller on watch events).
Sourcepub fn set_gateways(&mut self, gws: Vec<Gateway>)
pub fn set_gateways(&mut self, gws: Vec<Gateway>)
Update the Gateways.
Sourcepub fn set_httproutes(&mut self, routes: Vec<HttpRoute>)
pub fn set_httproutes(&mut self, routes: Vec<HttpRoute>)
Update the HTTPRoutes.
Sourcepub fn set_ingresses(&mut self, ingresses: Vec<Ingress>)
pub fn set_ingresses(&mut self, ingresses: Vec<Ingress>)
Update the Ingresses.
Sourcepub fn set_endpoints(&mut self, endpoints: HashMap<String, Vec<DwaraEndpoint>>)
pub fn set_endpoints(&mut self, endpoints: HashMap<String, Vec<DwaraEndpoint>>)
Update the endpoints.
Sourcepub fn reconcile(&self) -> Result<ReconcileOutput, String>
pub fn reconcile(&self) -> Result<ReconcileOutput, String>
Run the reconciliation: translate all watched resources into a dwara config and compute status conditions. Pure — no side effects, no cluster access.
Trait Implementations§
Source§impl Clone for Reconciler
impl Clone for Reconciler
Source§fn clone(&self) -> Reconciler
fn clone(&self) -> Reconciler
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for Reconciler
impl Debug for Reconciler
Source§impl Default for Reconciler
impl Default for Reconciler
Source§fn default() -> Reconciler
fn default() -> Reconciler
Auto Trait Implementations§
impl Freeze for Reconciler
impl RefUnwindSafe for Reconciler
impl Send for Reconciler
impl Sync for Reconciler
impl Unpin for Reconciler
impl UnwindSafe for Reconciler
Blanket Implementations§
§impl<T> AnyExt for T
impl<T> AnyExt for T
§fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
fn downcast_ref<T>(this: &Self) -> Option<&T>where
T: Any,
T behind reference§fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
fn downcast_mut<T>(this: &mut Self) -> Option<&mut T>where
T: Any,
T behind mutable reference§fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
fn downcast_rc<T>(this: Rc<Self>) -> Result<Rc<T>, Rc<Self>>where
T: Any,
T behind Rc pointer§fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
fn downcast_arc<T>(this: Arc<Self>) -> Result<Arc<T>, Arc<Self>>where
T: Any,
T behind Arc pointer§fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
fn downcast_box<T>(this: Box<Self>) -> Result<Box<T>, Box<Self>>where
T: Any,
T behind Box pointer§fn downcast_move<T>(this: Self) -> Option<T>
fn downcast_move<T>(this: Self) -> Option<T>
Self to T,
useful only in generic context as a workaround for specializationSource§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
impl<T, X> CoerceTo<T> for Xwhere
T: CoerceFrom<X> + ?Sized,
fn coerce_rc_to(self: Rc<X>) -> Rc<T>
fn coerce_box_to(self: Box<X>) -> Box<T>
fn coerce_ref_to(&self) -> &T
fn coerce_mut_to(&mut self) -> &mut T
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more