pub struct StagingSpec {
pub timeout: Option<String>,
pub storage_class_name: Option<String>,
pub access_modes: Vec<PvcAccessMode>,
}Expand description
SnapshotPolicy.spec.staging — knobs for the CSI capture (copyMethod: Snapshot/Clone) that runs before the mover. A sub-object so future staging
fields slot in without API breakage.
Fields§
§timeout: Option<String>How long each staging phase may take before the backup is failed (Go-style
duration like 10m or 1h; default 10m): first the staged
VolumeSnapshot becoming readyToUse (measured from its creation), then —
on an Immediate-binding StorageClass — the staged PVC binding (a fresh
budget measured from the PVC’s creation, covering the CSI restore/clone).
A transient CSI/snapshot-controller error during either wait is retried,
never fatal on its own — only this deadline fails staging. A zero duration
(0/0s) waits indefinitely. Raise this for backends whose snapshots or
clones take long (e.g. cloud snapshots of large volumes, CephFS full clones
of small-file-heavy volumes).
storage_class_name: Option<String>StorageClass for the staged PVC — the temporary PVC restored from the
CSI VolumeSnapshot (copyMethod: Snapshot) or cloned from the source
(copyMethod: Clone). Absent ⇒ the staged PVC copies the source PVC’s
class. Must belong to the same CSI driver as the source (staging fails
fast on a mismatch). Flagship use: a rook-ceph CephFS class with
backingSnapshot: "true", which mounts the snapshot shallowly
(metadata-only, near-instant, read-only) instead of running a full
subvolume clone that can take many minutes on small-file-heavy volumes.
access_modes: Vec<PvcAccessMode>Access modes for the staged PVC. Empty ⇒ copy the source PVC’s modes.
[ReadOnlyMany] pairs with snapshot-backed read-only classes (e.g. CephFS
backingSnapshot); the mover mounts the staged PVC read-only to match, and
rejects it at admission if a source sets readOnly: false (a read-only stage
cannot be mounted read-write).
Trait Implementations§
Source§impl Clone for StagingSpec
impl Clone for StagingSpec
Source§fn clone(&self) -> StagingSpec
fn clone(&self) -> StagingSpec
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 StagingSpec
impl Debug for StagingSpec
Source§impl Default for StagingSpec
impl Default for StagingSpec
Source§fn default() -> StagingSpec
fn default() -> StagingSpec
Source§impl<'de> Deserialize<'de> for StagingSpec
impl<'de> Deserialize<'de> for StagingSpec
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 StagingSpec
impl JsonSchema for StagingSpec
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 StagingSpec
impl PartialEq for StagingSpec
Source§fn eq(&self, other: &StagingSpec) -> bool
fn eq(&self, other: &StagingSpec) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for StagingSpec
impl Serialize for StagingSpec
impl Eq for StagingSpec
impl StructuralPartialEq for StagingSpec
Auto Trait Implementations§
impl Freeze for StagingSpec
impl RefUnwindSafe for StagingSpec
impl Send for StagingSpec
impl Sync for StagingSpec
impl Unpin for StagingSpec
impl UnsafeUnpin for StagingSpec
impl UnwindSafe for StagingSpec
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