pub enum VaultBootstrapPlan {
OpenClusterGlobalStore {
consume_secret_inputs: bool,
},
SkipNoVault,
}Expand description
Where cluster vault first boot must create or open its vault, and whether
the owner path may consume env/_FILE secret inputs.
Issue #1231 wires vault first boot through the bootstrap authority so the vault, key material, and emitted certificate belong to the real cluster-global auth store the authority model selected — never a scratch or per-member-only database, which PRD #1227 explicitly forbids (“do not mint a certificate from an emptyDir/scratch database and apply it to a different real store”).
Variants§
OpenClusterGlobalStore
Create or open the vault against the cluster-global auth store. The boot is the proven authority owner (or the only local authority), so the vault pages, key material, and certificate live in the real store and the certificate unseals that same store on restart.
consume_secret_inputs is true only on the first write
(BootstrapDisposition::ProceedLocal): the owner path reads the
env/_FILE secret inputs, mints the certificate, and seals the real
store. A restart that observes the durable completion marker
(BootstrapDisposition::AlreadyComplete) sets it to false: the
existing vault is opened and unsealed, but no secret input is consumed,
so first boot is never re-run and the vault is never rotated. Because
a non-owner cluster boot fails closed in authorize before any
plan is produced, secret inputs are never consumed by a non-owner.
SkipNoVault
Skip every vault/auth path — the explicit --no-auth / --dev
development carveout. No vault is created or opened and no certificate
is minted.
Trait Implementations§
Source§impl Clone for VaultBootstrapPlan
impl Clone for VaultBootstrapPlan
Source§fn clone(&self) -> VaultBootstrapPlan
fn clone(&self) -> VaultBootstrapPlan
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for VaultBootstrapPlan
Source§impl Debug for VaultBootstrapPlan
impl Debug for VaultBootstrapPlan
impl Eq for VaultBootstrapPlan
Source§impl PartialEq for VaultBootstrapPlan
impl PartialEq for VaultBootstrapPlan
Source§fn eq(&self, other: &VaultBootstrapPlan) -> bool
fn eq(&self, other: &VaultBootstrapPlan) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for VaultBootstrapPlan
Auto Trait Implementations§
impl Freeze for VaultBootstrapPlan
impl RefUnwindSafe for VaultBootstrapPlan
impl Send for VaultBootstrapPlan
impl Sync for VaultBootstrapPlan
impl Unpin for VaultBootstrapPlan
impl UnsafeUnpin for VaultBootstrapPlan
impl UnwindSafe for VaultBootstrapPlan
Blanket Implementations§
Source§impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedExplicit<'a, E> for Twhere
T: 'a,
Source§impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
impl<'a, T, E> AsTaggedImplicit<'a, E> for Twhere
T: 'a,
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,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§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 moreSource§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
T in a tonic::Request