Skip to main content

Eviction

Struct Eviction 

Source
pub struct Eviction {
    pub metadata: ObjectMeta,
    pub spec: EvictionSpec,
    pub status: Option<EvictionStatus>,
}
Expand description

Eviction initiates an eviction process, which should ideally result in a graceful eviction of a .spec.target (e.g. termination of a pod).

The evictionrequest-controller observes intents of all EvictionRequests and transforms them into Evictions. It manages the Eviction lifecycle. Requesters are preserved in .status.requesters even after they have withdrawn their request. If all requesters withdraw their eviction intent for a common target, the eviction will be canceled. Once all EvictionRequest corresponding to this Eviction .spec.target have been removed, this Eviction object will eventually be garbage collected.

If the target is a pod, the .status.targetResponders is populated from Pod’s .spec.evictionResponders.

Responders should observe and communicate through the .status to help with the eviction of the target when they see their state == Active in .status.targetResponders. ResponderStatus struct should then be periodically updated to indicate the progress or completion of the eviction process by each responder in .status.responders. If .status.responders[].heartbeatTime is not updated within the heartbeat deadline defined by the Eviction API (currently 20 minutes), the eviction is passed over to the next responder with a lower priority.

If there are no other responders and the target is a pod, the last default imperative-eviction.k8s.io/evictor responder with a priority of 100 will evict the pod using the imperative Eviction API (pods/<name>/eviction subresource).

Fields§

§metadata: ObjectMeta

metadata is the standard object metadata; More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#metadata. .metadata.name set by the evictionrequest-controller is purely informative and subject to change. .spec.target field should be used to identify the target precisesly.

The requester and responder names will be used as label keys and added to the labels of the eviction in one of the following formats: 1. acme.io/foo: “requester” 2. acme.io/foo: “responder” 3. acme.io/foo: “requester-responder”

Please see EvictionParticipantRole for available role label values.

§spec: EvictionSpec

spec defines the eviction specification. https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

§status: Option<EvictionStatus>

status represents the most recently observed status of the eviction. Populated by responders and evictionrequest-controller. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#spec-and-status

Trait Implementations§

Source§

impl Clone for Eviction

Source§

fn clone(&self) -> Self

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

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

Performs copy-assignment from source. Read more
Source§

impl Debug for Eviction

Source§

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

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

impl DeepMerge for Eviction

Source§

fn merge_from(&mut self, other: Self)

Merge other into self.
Source§

impl Default for Eviction

Source§

fn default() -> Self

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

impl<'de> Deserialize<'de> for Eviction

Source§

fn deserialize<D>(deserializer: D) -> Result<Self, D::Error>
where D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl ListableResource for Eviction

Source§

const LIST_KIND: &'static str = "EvictionList"

The kind of the list type of the resource. Read more
Source§

impl Metadata for Eviction

Source§

type Ty = ObjectMeta

The type of the metadata object.
Source§

fn metadata(&self) -> &<Self as Metadata>::Ty

Gets a reference to the metadata of this resource value.
Source§

fn metadata_mut(&mut self) -> &mut <Self as Metadata>::Ty

Gets a mutable reference to the metadata of this resource value.
Source§

impl PartialEq for Eviction

Source§

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

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

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

Inequality operator !=. Read more
Source§

impl Resource for Eviction

Source§

const API_VERSION: &'static str = "lifecycle.k8s.io/v1alpha1"

The API version of the resource. This is a composite of Resource::GROUP and Resource::VERSION (eg "apiextensions.k8s.io/v1beta1") or just the version for resources without a group (eg "v1"). Read more
Source§

const GROUP: &'static str = "lifecycle.k8s.io"

The group of the resource, or the empty string if the resource doesn’t have a group.
Source§

const KIND: &'static str = "Eviction"

The kind of the resource. Read more
Source§

const VERSION: &'static str = "v1alpha1"

The version of the resource.
Source§

const URL_PATH_SEGMENT: &'static str = "evictions"

The URL path segment used to construct URLs related to this resource. Read more
Source§

type Scope = NamespaceResourceScope

Indicates whether the resource is namespace-scoped or cluster-scoped or a subresource. Read more
Source§

impl Serialize for Eviction

Source§

fn serialize<S>(&self, serializer: S) -> Result<S::Ok, S::Error>
where S: Serializer,

Serialize this value into the given Serde serializer. Read more
Source§

impl StructuralPartialEq for Eviction

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> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

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> 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 = !

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

fn try_from(value: U) -> Result<T, !>

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.