pub struct SnapshotPolicyStatus {
pub observed_generation: Option<i64>,
pub resolved: Option<ResolvedPolicy>,
pub retention: Option<RetentionSummary>,
pub adoption: Option<AdoptionSummary>,
pub last_successful_snapshot: Option<String>,
pub last_verified: Option<String>,
pub verification: Vec<RepoVerification>,
pub verification_stamps: BTreeMap<String, String>,
pub repository_summary: Option<String>,
pub conditions: Vec<Condition>,
}Expand description
Observed state of a SnapshotPolicy.
Fields§
§observed_generation: Option<i64>metadata.generation last reconciled, for staleness detection.
resolved: Option<ResolvedPolicy>What would be passed to kopia — pinned at admission.
retention: Option<RetentionSummary>Summary of GFS retention pruning against this config’s Snapshot CRs.
adoption: Option<AdoptionSummary>Summary of automatic adoption of discovered snapshots into this recipe.
last_successful_snapshot: Option<String>RFC3339 timestamp of the most recent successful child Snapshot from this recipe.
last_verified: Option<String>RFC3339 timestamp of the most recent successful verification (any tier).
Verification runs once per (repository x source) cell: a
spec.repositories fan-out adds the repository dimension, and a
pvcSelector source adds one cell per matched PVC (each has its own
kopia source path, so each needs its own verification).
- one repository AND a non-selector source (
pvc/nfs): stamped directly by the verify mover, exactly as before; - otherwise — a
spec.repositoriesfan-out, or ANYpvcSelectorsource (including one currently matching a single PVC): computed by the controller as the MINIMUM across the CURRENT cells (“everything is verified as of T”), and absent until EVERY current cell has verified at least once — a partially verified policy must not display a reassuring timestamp.
verification: Vec<RepoVerification>Per-repository verification records for a multi-repository policy
(#368): one entry per CURRENT spec.repositories member, maintained by
the controller (single writer — entries for repositories no longer in
the spec are pruned). Empty (elided) for the single-repo shape, whose
wire stays byte-identical.
verification_stamps: BTreeMap<String, String>Internal write channel for per-cell verification: RFC3339 markers keyed by the (repository x source) cell a verify run covered.
Key shapes, where the repository segment is the normalized repository
key (repo_key) and the member segment is a
stable 12-hex tag over the matched PVC’s derived kopia source path:
<repository>— aspec.repositoriesfan-out with a single source;<repository>#<member>— a fan-out over both dimensions;#<member>— one repository, apvcSelectorsource (the repository segment is empty).
# is the separator because a repository key cannot contain one.
Each verify mover merge-patches ONLY its own key — a JSON merge patch
merges map keys, so concurrent cells can never clobber one another (a
Vec would be replaced wholesale). The controller folds these into
verification and lastVerified on its next pass and prunes keys whose
repository or matched PVC is gone. Not written when the policy targets
one repository with a non-selector source, whose wire stays
byte-identical; a pvcSelector source always uses this map, even while
it matches a single PVC.
repository_summary: Option<String>Human-readable summary of the policy’s repository target(s) for the
Repositories print column: the comma-joined repository names (the one
name for the single-repo shape), capped near a kubectl column width
with a +N overflow marker. Written by the controller.
conditions: Vec<Condition>Standard Kubernetes conditions (e.g. RepositoryReachable, GroupSnapshotSupported).
Trait Implementations§
Source§impl Clone for SnapshotPolicyStatus
impl Clone for SnapshotPolicyStatus
Source§fn clone(&self) -> SnapshotPolicyStatus
fn clone(&self) -> SnapshotPolicyStatus
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 SnapshotPolicyStatus
impl Debug for SnapshotPolicyStatus
Source§impl Default for SnapshotPolicyStatus
impl Default for SnapshotPolicyStatus
Source§fn default() -> SnapshotPolicyStatus
fn default() -> SnapshotPolicyStatus
Source§impl<'de> Deserialize<'de> for SnapshotPolicyStatus
impl<'de> Deserialize<'de> for SnapshotPolicyStatus
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 SnapshotPolicyStatus
impl JsonSchema for SnapshotPolicyStatus
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 SnapshotPolicyStatus
impl PartialEq for SnapshotPolicyStatus
Source§fn eq(&self, other: &SnapshotPolicyStatus) -> bool
fn eq(&self, other: &SnapshotPolicyStatus) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for SnapshotPolicyStatus
impl Serialize for SnapshotPolicyStatus
impl StructuralPartialEq for SnapshotPolicyStatus
Auto Trait Implementations§
impl Freeze for SnapshotPolicyStatus
impl RefUnwindSafe for SnapshotPolicyStatus
impl Send for SnapshotPolicyStatus
impl Sync for SnapshotPolicyStatus
impl Unpin for SnapshotPolicyStatus
impl UnsafeUnpin for SnapshotPolicyStatus
impl UnwindSafe for SnapshotPolicyStatus
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
§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