pub struct CatalogBounds {
pub retain: Option<CatalogRetain>,
pub periodic_refresh: bool,
pub refresh_interval: Option<String>,
pub fallback_namespace: Option<String>,
pub foreign_snapshots: Option<ForeignSnapshots>,
pub adoption: Option<SnapshotAdoption>,
}Expand description
Bounds on materialization of origin: discovered Snapshot CRs.
Fields§
§retain: Option<CatalogRetain>How many discovered Snapshot CRs to keep materialized (bounds etcd footprint).
periodic_refresh: boolOpt-in: periodically re-scan the repository to keep discovered Snapshot CRs
current (re-list snapshots; for object-store / volume-backed repos this recycles
the <name>-discovery mover Job every refreshInterval). Off by default —
the repository still bootstraps once, re-bootstraps on a spec change, and
re-probes on a backup failure, but does not re-run on a timer. Enable it if you
rely on discovered snapshots reflecting changes made outside this operator.
refresh_interval: Option<String>How often to re-scan when periodicRefresh: true (Go-style duration; minimum
30s, default 1h). Inert unless periodicRefresh is enabled.
fallback_namespace: Option<String>Where to materialize discovered Snapshots with no allowed-namespace mapping (ClusterRepository only).
foreign_snapshots: Option<ForeignSnapshots>How to treat discovered snapshots written by another cluster. Requires
identityDefaults.cluster. Absent resolves to Ignore. When BOTH
cluster and fallbackNamespace are set this field is REQUIRED
(explicit), so adopting a cluster identity can never silently switch a
configured fallback collector off.
adoption: Option<SnapshotAdoption>Whether a discovered snapshot matching a live SnapshotPolicy’s resolved
identity is automatically adopted. Per-policy SnapshotPolicySpec.adoption
overrides this when set; absent here resolves to
SnapshotAdoption::Adopt (see effective_adoption). NOT context-free
(it is the middle link of a policy → repo → constant inheritance chain),
so this field carries no schema default.
Implementations§
Source§impl CatalogBounds
impl CatalogBounds
Sourcepub fn periodic_refresh_enabled(catalog: Option<&Self>) -> bool
pub fn periodic_refresh_enabled(catalog: Option<&Self>) -> bool
Whether periodic re-scan is opted in (catalog.periodicRefresh). Off by
default, so a repository does not re-run its bootstrap Job on a timer.
Sourcepub fn effective_refresh_interval(catalog: Option<&Self>) -> Duration
pub fn effective_refresh_interval(catalog: Option<&Self>) -> Duration
The effective catalog re-scan cadence used when periodicRefresh is on:
refreshInterval when set and parseable, else
crate::consts::DEFAULT_CATALOG_REFRESH_INTERVAL. (The webhook rejects an
unparseable value, so the fallback only covers objects admitted before the
validator existed.)
Sourcepub fn effective_foreign_snapshots(catalog: Option<&Self>) -> ForeignSnapshots
pub fn effective_foreign_snapshots(catalog: Option<&Self>) -> ForeignSnapshots
The effective foreign-snapshot policy: catalog.foreignSnapshots when
set, else ForeignSnapshots::Ignore (absent catalog, or the field
unset). Only meaningful alongside a cluster identity
(identityDefaults.cluster) — the validators enforce that coupling, so
this resolver never has to guess at one.
Trait Implementations§
Source§impl Clone for CatalogBounds
impl Clone for CatalogBounds
Source§fn clone(&self) -> CatalogBounds
fn clone(&self) -> CatalogBounds
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for CatalogBounds
impl Debug for CatalogBounds
Source§impl Default for CatalogBounds
impl Default for CatalogBounds
Source§fn default() -> CatalogBounds
fn default() -> CatalogBounds
Source§impl<'de> Deserialize<'de> for CatalogBounds
impl<'de> Deserialize<'de> for CatalogBounds
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for CatalogBounds
impl JsonSchema for CatalogBounds
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read moreSource§impl PartialEq for CatalogBounds
impl PartialEq for CatalogBounds
Source§fn eq(&self, other: &CatalogBounds) -> bool
fn eq(&self, other: &CatalogBounds) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for CatalogBounds
impl Serialize for CatalogBounds
impl Eq for CatalogBounds
impl StructuralPartialEq for CatalogBounds
Auto Trait Implementations§
impl Freeze for CatalogBounds
impl RefUnwindSafe for CatalogBounds
impl Send for CatalogBounds
impl Sync for CatalogBounds
impl Unpin for CatalogBounds
impl UnsafeUnpin for CatalogBounds
impl UnwindSafe for CatalogBounds
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<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§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