UpgradeSettings

Struct UpgradeSettings 

Source
#[non_exhaustive]
pub struct UpgradeSettings { pub max_surge: i32, pub max_unavailable: i32, pub strategy: Option<NodePoolUpdateStrategy>, pub blue_green_settings: Option<BlueGreenSettings>, /* private fields */ }
Expand description

These upgrade settings control the level of parallelism and the level of disruption caused by an upgrade.

maxUnavailable controls the number of nodes that can be simultaneously unavailable.

maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes.

(maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time).

Note: upgrades inevitably introduce some disruption since workloads need to be moved from old nodes to new, upgraded ones. Even if maxUnavailable=0, this holds true. (Disruption stays within the limits of PodDisruptionBudget, if it is configured.)

Consider a hypothetical node pool with 5 nodes having maxSurge=2, maxUnavailable=1. This means the upgrade process upgrades 3 nodes simultaneously. It creates 2 additional (upgraded) nodes, then it brings down 3 old (not yet upgraded) nodes at the same time. This ensures that there are always at least 4 nodes available.

These upgrade settings configure the upgrade strategy for the node pool. Use strategy to switch between the strategies applied to the node pool.

If the strategy is ROLLING, use max_surge and max_unavailable to control the level of parallelism and the level of disruption caused by upgrade.

  1. maxSurge controls the number of additional nodes that can be added to the node pool temporarily for the time of the upgrade to increase the number of available nodes.
  2. maxUnavailable controls the number of nodes that can be simultaneously unavailable.
  3. (maxUnavailable + maxSurge) determines the level of parallelism (how many nodes are being upgraded at the same time).

If the strategy is BLUE_GREEN, use blue_green_settings to configure the blue-green upgrade related settings.

  1. standard_rollout_policy is the default policy. The policy is used to control the way blue pool gets drained. The draining is executed in the batch mode. The batch size could be specified as either percentage of the node pool size or the number of nodes. batch_soak_duration is the soak time after each batch gets drained.
  2. node_pool_soak_duration is the soak time after all blue nodes are drained. After this period, the blue pool nodes will be deleted.

Fields (Non-exhaustive)§

This struct is marked as non-exhaustive
Non-exhaustive structs could have additional fields added in future. Therefore, non-exhaustive structs cannot be constructed in external crates using the traditional Struct { .. } syntax; cannot be matched against without a wildcard ..; and struct update syntax will not work.
§max_surge: i32

The maximum number of nodes that can be created beyond the current size of the node pool during the upgrade process.

§max_unavailable: i32

The maximum number of nodes that can be simultaneously unavailable during the upgrade process. A node is considered available if its status is Ready.

§strategy: Option<NodePoolUpdateStrategy>

Update strategy of the node pool.

§blue_green_settings: Option<BlueGreenSettings>

Settings for blue-green upgrade strategy.

Implementations§

Source§

impl UpgradeSettings

Source

pub fn new() -> Self

Source

pub fn set_max_surge<T: Into<i32>>(self, v: T) -> Self

Sets the value of max_surge.

§Example
let x = UpgradeSettings::new().set_max_surge(42);
Source

pub fn set_max_unavailable<T: Into<i32>>(self, v: T) -> Self

Sets the value of max_unavailable.

§Example
let x = UpgradeSettings::new().set_max_unavailable(42);
Source

pub fn set_strategy<T>(self, v: T) -> Self

Sets the value of strategy.

§Example
use google_cloud_container_v1::model::NodePoolUpdateStrategy;
let x0 = UpgradeSettings::new().set_strategy(NodePoolUpdateStrategy::BlueGreen);
let x1 = UpgradeSettings::new().set_strategy(NodePoolUpdateStrategy::Surge);
Source

pub fn set_or_clear_strategy<T>(self, v: Option<T>) -> Self

Sets or clears the value of strategy.

§Example
use google_cloud_container_v1::model::NodePoolUpdateStrategy;
let x0 = UpgradeSettings::new().set_or_clear_strategy(Some(NodePoolUpdateStrategy::BlueGreen));
let x1 = UpgradeSettings::new().set_or_clear_strategy(Some(NodePoolUpdateStrategy::Surge));
let x_none = UpgradeSettings::new().set_or_clear_strategy(None::<NodePoolUpdateStrategy>);
Source

pub fn set_blue_green_settings<T>(self, v: T) -> Self

Sets the value of blue_green_settings.

§Example
use google_cloud_container_v1::model::BlueGreenSettings;
let x = UpgradeSettings::new().set_blue_green_settings(BlueGreenSettings::default()/* use setters */);
Source

pub fn set_or_clear_blue_green_settings<T>(self, v: Option<T>) -> Self

Sets or clears the value of blue_green_settings.

§Example
use google_cloud_container_v1::model::BlueGreenSettings;
let x = UpgradeSettings::new().set_or_clear_blue_green_settings(Some(BlueGreenSettings::default()/* use setters */));
let x = UpgradeSettings::new().set_or_clear_blue_green_settings(None::<BlueGreenSettings>);

Trait Implementations§

Source§

impl Clone for UpgradeSettings

Source§

fn clone(&self) -> UpgradeSettings

Returns a duplicate of the value. Read more
1.0.0 · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for UpgradeSettings

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for UpgradeSettings

Source§

fn default() -> UpgradeSettings

Returns the “default value” for a type. Read more
Source§

impl Message for UpgradeSettings

Source§

fn typename() -> &'static str

The typename of this message.
Source§

impl PartialEq for UpgradeSettings

Source§

fn eq(&self, other: &UpgradeSettings) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

fn ne(&self, other: &Rhs) -> bool

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl StructuralPartialEq for UpgradeSettings

Auto Trait Implementations§

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,