pub struct FleetUpgradeConfig {
pub skew: VersionSkewPolicyConfig,
pub order: Vec<FleetUpgradeOrderEntry>,
pub max_concurrent: u32,
pub halt_on_failure: bool,
}Expand description
Rolling-upgrade and version-skew policy (DW-098,
gateway.fleet.upgrade).
Fields§
§skew: VersionSkewPolicyConfigThe version-skew policy: how tolerant the controller is of edges running a different version.
"allow"— accept any version (no skew check)."allow_minor_skew"(default) — edges must match the controller’s major version and be within 1 minor version (N-1 or N+1)."require_exact"— edges must match the controller’s version exactly.
order: Vec<FleetUpgradeOrderEntry>The upgrade order: which edges to upgrade first, identified by
label selector. Edges matching earlier entries are upgraded
before edges matching later entries. An edge matches an entry
when it has ALL the labels in the entry’s labels map. Empty
(the default) means no ordering — all edges are upgraded
simultaneously (canary/zone-based rollouts are configured by
adding entries here).
max_concurrent: u32The maximum number of edges that may be upgraded simultaneously (a rolling-upgrade concurrency cap). 0 (the default) means no cap — all matching edges are upgraded at once. A typical canary rollout sets this to 1.
halt_on_failure: boolWhether to fail the rollout if any edge reports a failed ack (applied: false). Default true: the controller stops pushing to further edges when one fails. false: the controller continues pushing to all matching edges regardless of individual failures (the operator monitors and rolls back manually).
Trait Implementations§
Source§impl Clone for FleetUpgradeConfig
impl Clone for FleetUpgradeConfig
Source§fn clone(&self) -> FleetUpgradeConfig
fn clone(&self) -> FleetUpgradeConfig
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for FleetUpgradeConfig
impl Debug for FleetUpgradeConfig
Source§impl<'de> Deserialize<'de> for FleetUpgradeConfig
impl<'de> Deserialize<'de> for FleetUpgradeConfig
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 FleetUpgradeConfig
impl JsonSchema for FleetUpgradeConfig
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 FleetUpgradeConfig
impl PartialEq for FleetUpgradeConfig
Source§impl Serialize for FleetUpgradeConfig
impl Serialize for FleetUpgradeConfig
impl StructuralPartialEq for FleetUpgradeConfig
Auto Trait Implementations§
impl Freeze for FleetUpgradeConfig
impl RefUnwindSafe for FleetUpgradeConfig
impl Send for FleetUpgradeConfig
impl Sync for FleetUpgradeConfig
impl Unpin for FleetUpgradeConfig
impl UnwindSafe for FleetUpgradeConfig
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<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