pub struct ClusterRepositorySpec {
pub backend: Backend,
pub encryption: Encryption,
pub create: Option<CreateBehavior>,
pub cache_defaults: Option<CacheDefaults>,
pub catalog: Option<CatalogBounds>,
pub allowed_namespaces: AllowedNamespaces,
pub identity_defaults: Option<IdentityTemplate>,
pub maintenance: Option<RepositoryMaintenanceSpec>,
}Expand description
A shared kopia repository referenceable from allow-listed namespaces. ADR §3.2.
Cluster-scoped: note the absence of namespaced in #[kube(...)]. Secret/config
references in backend/encryption therefore MUST carry an explicit namespace
(webhook-enforced — the type system cannot express that requirement here).
Fields§
§backend: BackendExactly one backend, enforced at the type level by the Backend enum. ADR §3.1.
encryption: EncryptionRepository password, always a Secret reference. As this CR is cluster-scoped,
the ref MUST carry an explicit namespace (webhook-enforced). ADR §3.1/§3.2.
create: Option<CreateBehavior>What to do when the repository does not yet exist. Same semantics as
Repository.spec.create. ADR §3.1/§3.2.
cache_defaults: Option<CacheDefaults>Cache sizing inherited by consumer Backup/Restore movers unless overridden. ADR §3.1.
catalog: Option<CatalogBounds>Bounds materialization of origin: discovered Backup CRs from the kopia
catalog. For a shared repo this also picks where to land discovered backups
via catalog.fallbackNamespace. ADR §3.1/§3.2.
allowed_namespaces: AllowedNamespacesTenancy gate — webhook-enforced on every consumer CR. ADR §3.2.
identity_defaults: Option<IdentityTemplate>Identity defaults applied when consumers don’t override. ADR §3.2/§4.2.
maintenance: Option<RepositoryMaintenanceSpec>Maintenance control. Default-managed: when absent or enabled: true, the
reconciler creates and owns a Maintenance CR for this cluster repository.
As Maintenance is namespaced, maintenance.namespace selects where it
lands (defaulting to the operator’s namespace). ADR §3.2/§3.7.
Trait Implementations§
Source§impl Clone for ClusterRepositorySpec
impl Clone for ClusterRepositorySpec
Source§fn clone(&self) -> ClusterRepositorySpec
fn clone(&self) -> ClusterRepositorySpec
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for ClusterRepositorySpec
impl Debug for ClusterRepositorySpec
Source§impl<'de> Deserialize<'de> for ClusterRepositorySpec
impl<'de> Deserialize<'de> for ClusterRepositorySpec
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 ClusterRepositorySpec
impl JsonSchema for ClusterRepositorySpec
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 ClusterRepositorySpec
impl PartialEq for ClusterRepositorySpec
Source§impl Serialize for ClusterRepositorySpec
impl Serialize for ClusterRepositorySpec
impl StructuralPartialEq for ClusterRepositorySpec
Auto Trait Implementations§
impl Freeze for ClusterRepositorySpec
impl RefUnwindSafe for ClusterRepositorySpec
impl Send for ClusterRepositorySpec
impl Sync for ClusterRepositorySpec
impl Unpin for ClusterRepositorySpec
impl UnsafeUnpin for ClusterRepositorySpec
impl UnwindSafe for ClusterRepositorySpec
Blanket Implementations§
Source§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> 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