pub enum ScaleSpec {
Adaptive {
min: u32,
max: u32,
cooldown: Option<Duration>,
targets: ScaleTargets,
behavior: Option<ScaleBehavior>,
triggers: Vec<ScaleTrigger>,
idle_window: Option<Duration>,
vertical: Option<VerticalScaleSpec>,
predictive: Option<PredictiveSpec>,
},
Fixed {
replicas: u32,
},
Manual,
}Expand description
Scaling configuration
Variants§
Adaptive
Adaptive scaling with metrics
Fields
targets: ScaleTargetsTarget metrics for scaling
behavior: Option<ScaleBehavior>Scale-up/scale-down velocity & stabilization behavior.
Mirrors the Kubernetes HPA v2 behavior field: bounds how fast
replicas may be added/removed and how long recent recommendations
are remembered to prevent flapping. Defaults to a conservative
symmetric policy when omitted.
triggers: Vec<ScaleTrigger>Event-driven scaling triggers (KEDA-style scalers: queue depth, Kafka lag, cron windows, Prometheus queries). The desired replica count is the maximum across all triggers and metric targets. A non-zero trigger gates wake-from-zero. Consumed in Phase 2.
idle_window: Option<Duration>Idle window after which a service with min: 0 scales to zero.
None disables scale-to-zero even when min == 0. Consumed in Phase 2.
vertical: Option<VerticalScaleSpec>Vertical (right-sizing) autoscaling for this service’s containers. Consumed in Phase 3.
predictive: Option<PredictiveSpec>Predictive/proactive scaling that establishes a forecast-driven replica floor ahead of anticipated load. Consumed in Phase 4.
Fixed
Fixed number of replicas
Manual
Manual scaling (no automatic scaling)
Trait Implementations§
Source§impl<'de> Deserialize<'de> for ScaleSpec
impl<'de> Deserialize<'de> for ScaleSpec
Source§fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScaleSpec, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(
__deserializer: __D,
) -> Result<ScaleSpec, <__D as Deserializer<'de>>::Error>where
__D: Deserializer<'de>,
impl Eq for ScaleSpec
Source§impl Serialize for ScaleSpec
impl Serialize for ScaleSpec
Source§fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
fn serialize<__S>(
&self,
__serializer: __S,
) -> Result<<__S as Serializer>::Ok, <__S as Serializer>::Error>where
__S: Serializer,
impl StructuralPartialEq for ScaleSpec
Auto Trait Implementations§
impl Freeze for ScaleSpec
impl RefUnwindSafe for ScaleSpec
impl Send for ScaleSpec
impl Sync for ScaleSpec
impl Unpin for ScaleSpec
impl UnsafeUnpin for ScaleSpec
impl UnwindSafe for ScaleSpec
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> DeserializeOwned for Twhere
T: for<'de> Deserialize<'de>,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
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.