pub struct ScoutContext {
pub client: Client,
pub remote_client: Client,
pub target_namespace: String,
pub cluster_name: String,
pub excluded_namespaces: Vec<String>,
pub default_ips: Vec<String>,
pub default_zone: Option<String>,
pub zone_store: Store<DNSZone>,
}Expand description
Shared context passed to every reconciler invocation.
Fields§
§client: ClientLocal Kubernetes client — Ingress watching and finalizer management. Always the in-cluster client regardless of mode.
remote_client: ClientRemote Kubernetes client — ARecord creation/deletion and DNSZone validation.
In same-cluster mode (Phase 1) this is identical to client.
In remote mode (Phase 2+) this targets the dedicated Bindy cluster.
target_namespace: StringNamespace where ARecords are created (on the remote/target cluster)
cluster_name: StringLogical cluster name stamped on created ARecord labels
excluded_namespaces: Vec<String>Namespaces excluded from Ingress watching (always includes Scout’s own namespace)
default_ips: Vec<String>Default IPs used when no annotation override and no LB status IP is available.
Intended for shared-ingress topologies (e.g. Traefik) where all Ingresses resolve
to the same IP(s). Set via BINDY_SCOUT_DEFAULT_IPS or --default-ips.
default_zone: Option<String>Default DNS zone applied to all Ingresses when no bindy.firestoned.io/zone annotation
is present. Set via BINDY_SCOUT_DEFAULT_ZONE or --default-zone.
zone_store: Store<DNSZone>Read-only store of DNSZone resources for zone validation. Populated from the remote client so zones are validated against the bindy cluster.
Auto Trait Implementations§
impl Freeze for ScoutContext
impl !RefUnwindSafe for ScoutContext
impl Send for ScoutContext
impl Sync for ScoutContext
impl Unpin for ScoutContext
impl !UnwindSafe for ScoutContext
Blanket Implementations§
Source§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
§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§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request§impl<L> LayerExt<L> for L
impl<L> LayerExt<L> for L
§fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
fn named_layer<S>(&self, service: S) -> Layered<<L as Layer<S>>::Service, S>where
L: Layer<S>,
Layered].