pub struct RepositorySpec {Show 18 fields
pub backend: Backend,
pub encryption: Encryption,
pub create: Option<CreateBehavior>,
pub seed: Option<SeedSpec>,
pub bootstrap: Option<BootstrapSpec>,
pub mover_defaults: Option<MoverDefaults>,
pub schedule_defaults: Option<ScheduleDefaults>,
pub catalog: Option<CatalogBounds>,
pub identity_defaults: Option<IdentityDefaults>,
pub server: Option<ServerSpec>,
pub maintenance: Option<RepositoryMaintenanceSpec>,
pub on_namespace_delete: NamespaceDeletePolicy,
pub deletion_protection: Option<DeletionProtectionSpec>,
pub concurrency: Option<ConcurrencySpec>,
pub mode: RepositoryMode,
pub suspend: bool,
pub health: Option<RepositoryHealthSpec>,
pub parameters: Option<RepositoryParameters>,
}Expand description
A kopia repository owned by one namespace, referenced by SnapshotPolicys and Restores.
Fields§
§backend: BackendExactly one storage backend.
encryption: EncryptionRepository password (a Secret reference).
create: Option<CreateBehavior>What to do when the repository does not yet exist (absent means it must already exist).
seed: Option<SeedSpec>Initialize this repository from an existing replica on its FIRST bootstrap (issue #380) — a disaster-recovery entry point.
Armed only while the repository has never been initialized
(status.uniqueId unset) and the mover’s connect reports the backend
uninitialized; on an already-initialized repository it is a documented
no-op (Seeded=True, reason AlreadyInitialized), so it is safe to
leave standing in a GitOps manifest. When armed it also replaces
spec.create’s fallback: the repository is seeded or the bootstrap
fails, never silently created empty.
bootstrap: Option<BootstrapSpec>Tuning for the bootstrap/discovery mover Job (<name>-discovery) that
connects/creates an object-store repository the operator cannot reach
in-process (and re-runs for catalog re-scans).
mover_defaults: Option<MoverDefaults>Base mover configuration inherited by every mover this repository spawns.
schedule_defaults: Option<ScheduleDefaults>Scheduling defaults (timezone, jitter) inherited by consumers that don’t
set their own equivalent field — backup, verification, replication, and
maintenance schedules; set once here instead of repeating it on every cron.
catalog: Option<CatalogBounds>Bounds materialization of origin: discovered Snapshot CRs from the kopia catalog.
identity_defaults: Option<IdentityDefaults>Identity defaults (CEL *Expr) applied when consumers don’t override.
Set cluster when this repository’s backend is shared across clusters
(e.g. one bucket backed up from more than one Kubernetes cluster) — the
default kopia identity hostname then becomes <namespace>.<cluster>
instead of bare <namespace>, so same-named namespaces on different
clusters never collide. Same semantics as ClusterRepository’s field of
the same name (ADR-0004 §5); a consumer’s explicit spec.identity still
wins over anything here.
server: Option<ServerSpec>Optional kopia web-UI server, exposed via a Service in this namespace.
maintenance: Option<RepositoryMaintenanceSpec>Maintenance control; when absent or enabled the reconciler creates and owns a Maintenance CR.
on_namespace_delete: NamespaceDeletePolicyWhat happens to this repository’s snapshots when a consuming namespace is deleted.
deletion_protection: Option<DeletionProtectionSpec>Mass-deletion circuit breaker for this repository’s Snapshots.
concurrency: Option<ConcurrencySpec>Concurrency limits for mover Jobs against this repository (absent = unlimited).
mode: RepositoryModeAccess mode: ReadWrite (default) or ReadOnly (serves restores only).
suspend: boolPause this repository: skip connect/bootstrap and maintenance projection.
health: Option<RepositoryHealthSpec>Repository health thresholds (tunes the index-blob-count warning).
parameters: Option<RepositoryParameters>Mutable kopia repository parameters, re-applied on bootstrap whenever they drift.
Trait Implementations§
Source§impl Clone for RepositorySpec
impl Clone for RepositorySpec
Source§fn clone(&self) -> RepositorySpec
fn clone(&self) -> RepositorySpec
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 RepositorySpec
impl Debug for RepositorySpec
Source§impl<'de> Deserialize<'de> for RepositorySpec
impl<'de> Deserialize<'de> for RepositorySpec
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 RepositorySpec
impl JsonSchema for RepositorySpec
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 RepositorySpec
impl PartialEq for RepositorySpec
Source§fn eq(&self, other: &RepositorySpec) -> bool
fn eq(&self, other: &RepositorySpec) -> bool
self and other values to be equal, and is used by ==.Source§impl Serialize for RepositorySpec
impl Serialize for RepositorySpec
impl StructuralPartialEq for RepositorySpec
Auto Trait Implementations§
impl Freeze for RepositorySpec
impl RefUnwindSafe for RepositorySpec
impl Send for RepositorySpec
impl Sync for RepositorySpec
impl Unpin for RepositorySpec
impl UnsafeUnpin for RepositorySpec
impl UnwindSafe for RepositorySpec
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