pub struct MoverDefaults {Show 13 fields
pub security_context: Option<SecurityContext>,
pub pod_security_context: Option<PodSecurityContext>,
pub resources: Option<ResourceRequirements>,
pub cache: Option<CacheDefaults>,
pub scratch: Option<ScratchDefaults>,
pub node_selector: Option<BTreeMap<String, String>>,
pub tolerations: Option<Vec<Toleration>>,
pub affinity: Option<Affinity>,
pub source_colocation: Option<SourceColocation>,
pub ttl_seconds_after_finished: Option<i64>,
pub throttle: Option<Throttle>,
pub pod_labels: Option<BTreeMap<String, String>>,
pub pod_annotations: Option<BTreeMap<String, String>>,
}Expand description
Repository-wide mover defaults inherited by every mover, overridable per-recipe via mover.
Fields§
§security_context: Option<SecurityContext>Container security-context base for every mover.
pod_security_context: Option<PodSecurityContext>Pod security-context base (notably fsGroup) for every mover.
resources: Option<ResourceRequirements>Resource requests/limits base for the mover container.
cache: Option<CacheDefaults>kopia cache defaults for every mover.
scratch: Option<ScratchDefaults>Defaults for the deep-verification scratch (restore-test) volume.
node_selector: Option<BTreeMap<String, String>>Pod nodeSelector for every mover.
tolerations: Option<Vec<Toleration>>Pod tolerations for every mover.
affinity: Option<Affinity>Pod affinity for every mover.
source_colocation: Option<SourceColocation>How a mover co-locates with its RWO PVC’s node; defaults to SourceColocationMode::Auto.
ttl_seconds_after_finished: Option<i64>Job.spec.ttlSecondsAfterFinished for every mover Job so finished Jobs self-GC.
throttle: Option<Throttle>Repository throttle limits applied by every mover after it connects.
pod_labels: Option<BTreeMap<String, String>>Extra labels for every mover POD (and the Job that owns it), merged
UNDER kopiur’s own labels — a key kopiur sets always wins, so a
user-supplied value can never break the selectors the controller counts
and reaps by.
This is the hook for cluster machinery that keys off pod labels and that
kopiur has no field of its own for: a Kueue kueue.x-k8s.io/queue-name to
put movers under a cluster queue, a monitoring/NetworkPolicy selector, a
service-mesh exclusion label.
Keys under kopiur.home-operations.com/ and the exact key
app.kubernetes.io/managed-by are reserved and rejected at admission.
pod_annotations: Option<BTreeMap<String, String>>Extra annotations for every mover pod. Unlike podLabels
these are pod-template-only — they are not mirrored onto the Job
object, because the common case is a sidecar-injection opt-out
(sidecar.istio.io/inject: "false", linkerd.io/inject: disabled,
vault.hashicorp.com/agent-inject: "false") that only means anything on
the pod a mesh webhook actually sees. A mover is a short-lived batch pod;
an injected sidecar that never exits keeps its Job running forever.
Same reserved keys as podLabels, rejected at admission.
Trait Implementations§
Source§impl Clone for MoverDefaults
impl Clone for MoverDefaults
Source§fn clone(&self) -> MoverDefaults
fn clone(&self) -> MoverDefaults
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 MoverDefaults
impl Debug for MoverDefaults
Source§impl Default for MoverDefaults
impl Default for MoverDefaults
Source§fn default() -> MoverDefaults
fn default() -> MoverDefaults
Source§impl<'de> Deserialize<'de> for MoverDefaults
impl<'de> Deserialize<'de> for MoverDefaults
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 MoverDefaults
impl JsonSchema for MoverDefaults
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 MoverDefaults
impl PartialEq for MoverDefaults
Source§fn eq(&self, other: &MoverDefaults) -> bool
fn eq(&self, other: &MoverDefaults) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for MoverDefaults
impl Serialize for MoverDefaults
impl StructuralPartialEq for MoverDefaults
Auto Trait Implementations§
impl Freeze for MoverDefaults
impl RefUnwindSafe for MoverDefaults
impl Send for MoverDefaults
impl Sync for MoverDefaults
impl Unpin for MoverDefaults
impl UnsafeUnpin for MoverDefaults
impl UnwindSafe for MoverDefaults
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