Show / Hide Table of Contents

Class V1alpha1Eviction

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).

Inheritance
object
V1alpha1Eviction
Implements
IKubernetesObject<V1ObjectMeta>
IKubernetesObject
IMetadata<V1ObjectMeta>
ISpec<V1alpha1EvictionSpec>
IEquatable<V1alpha1Eviction>
Inherited Members
object.GetType()
object.MemberwiseClone()
object.Equals(object, object)
object.ReferenceEquals(object, object)
Namespace: k8s.Models
Assembly: KubernetesClient.dll
Syntax
[KubernetesEntity(Group = "lifecycle.k8s.io", Kind = "Eviction", ApiVersion = "v1alpha1", PluralName = "evictions")]
public record V1alpha1Eviction : IKubernetesObject<V1ObjectMeta>, IKubernetesObject, IMetadata<V1ObjectMeta>, ISpec<V1alpha1EvictionSpec>, IEquatable<V1alpha1Eviction>

Constructors

V1alpha1Eviction()

Declaration
public V1alpha1Eviction()

V1alpha1Eviction(V1alpha1Eviction)

Declaration
protected V1alpha1Eviction(V1alpha1Eviction original)
Parameters
Type Name Description
V1alpha1Eviction original

Fields

KubeApiVersion

Declaration
public const string KubeApiVersion = "v1alpha1"
Field Value
Type Description
string

KubeGroup

Declaration
public const string KubeGroup = "lifecycle.k8s.io"
Field Value
Type Description
string

KubeKind

Declaration
public const string KubeKind = "Eviction"
Field Value
Type Description
string

KubePluralName

Declaration
public const string KubePluralName = "evictions"
Field Value
Type Description
string

Properties

ApiVersion

APIVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources

Declaration
[JsonPropertyName("apiVersion")]
public string ApiVersion { get; set; }
Property Value
Type Description
string

EqualityContract

Declaration
protected virtual Type EqualityContract { get; }
Property Value
Type Description
Type

Kind

Kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds

Declaration
[JsonPropertyName("kind")]
public string Kind { get; set; }
Property Value
Type Description
string

Metadata

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.

Declaration
[JsonPropertyName("metadata")]
public V1ObjectMeta Metadata { get; set; }
Property Value
Type Description
V1ObjectMeta

Spec

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

Declaration
[JsonPropertyName("spec")]
public V1alpha1EvictionSpec Spec { get; set; }
Property Value
Type Description
V1alpha1EvictionSpec

Status

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

Declaration
[JsonPropertyName("status")]
public V1alpha1EvictionStatus Status { get; set; }
Property Value
Type Description
V1alpha1EvictionStatus

Methods

Equals(object?)

Declaration
public override bool Equals(object? obj)
Parameters
Type Name Description
object obj
Returns
Type Description
bool
Overrides
object.Equals(object)

Equals(V1alpha1Eviction?)

Declaration
public virtual bool Equals(V1alpha1Eviction? other)
Parameters
Type Name Description
V1alpha1Eviction other
Returns
Type Description
bool

GetHashCode()

Declaration
public override int GetHashCode()
Returns
Type Description
int
Overrides
object.GetHashCode()

PrintMembers(StringBuilder)

Declaration
protected virtual bool PrintMembers(StringBuilder builder)
Parameters
Type Name Description
StringBuilder builder
Returns
Type Description
bool

ToString()

Declaration
public override string ToString()
Returns
Type Description
string
Overrides
object.ToString()

Operators

operator ==(V1alpha1Eviction?, V1alpha1Eviction?)

Declaration
public static bool operator ==(V1alpha1Eviction? left, V1alpha1Eviction? right)
Parameters
Type Name Description
V1alpha1Eviction left
V1alpha1Eviction right
Returns
Type Description
bool

operator !=(V1alpha1Eviction?, V1alpha1Eviction?)

Declaration
public static bool operator !=(V1alpha1Eviction? left, V1alpha1Eviction? right)
Parameters
Type Name Description
V1alpha1Eviction left
V1alpha1Eviction right
Returns
Type Description
bool

Implements

IKubernetesObject<TMetadata>
IKubernetesObject
IMetadata<T>
ISpec<T>
IEquatable<T>

Extension Methods

ModelExtensions.ApiGroup(IKubernetesObject)
ModelExtensions.ApiGroupAndVersion(IKubernetesObject)
ModelExtensions.ApiGroupVersion(IKubernetesObject)
ModelExtensions.GetApiGroupAndVersion(IKubernetesObject, out string, out string)
ModelExtensions.AddFinalizer(IMetadata<V1ObjectMeta>, string)
ModelExtensions.AddOwnerReference(IMetadata<V1ObjectMeta>, V1OwnerReference)
ModelExtensions.Annotations(IMetadata<V1ObjectMeta>)
ModelExtensions.CreationTimestamp(IMetadata<V1ObjectMeta>)
ModelExtensions.DeletionTimestamp(IMetadata<V1ObjectMeta>)
ModelExtensions.EnsureMetadata(IMetadata<V1ObjectMeta>)
ModelExtensions.Finalizers(IMetadata<V1ObjectMeta>)
ModelExtensions.FindOwnerReference(IMetadata<V1ObjectMeta>, Predicate<V1OwnerReference>)
ModelExtensions.FindOwnerReference(IMetadata<V1ObjectMeta>, IKubernetesObject<V1ObjectMeta>)
ModelExtensions.Generation(IMetadata<V1ObjectMeta>)
ModelExtensions.GetAnnotation(IMetadata<V1ObjectMeta>, string)
ModelExtensions.GetController(IMetadata<V1ObjectMeta>)
ModelExtensions.GetLabel(IMetadata<V1ObjectMeta>, string)
ModelExtensions.GetOwnerReference(IMetadata<V1ObjectMeta>, Predicate<V1OwnerReference>)
ModelExtensions.GetOwnerReference(IMetadata<V1ObjectMeta>, IKubernetesObject<V1ObjectMeta>)
ModelExtensions.HasFinalizer(IMetadata<V1ObjectMeta>, string)
ModelExtensions.IsOwnedBy(IMetadata<V1ObjectMeta>, IKubernetesObject<V1ObjectMeta>)
ModelExtensions.Labels(IMetadata<V1ObjectMeta>)
ModelExtensions.Name(IMetadata<V1ObjectMeta>)
ModelExtensions.Namespace(IMetadata<V1ObjectMeta>)
ModelExtensions.OwnerReferences(IMetadata<V1ObjectMeta>)
ModelExtensions.RemoveFinalizer(IMetadata<V1ObjectMeta>, string)
ModelExtensions.RemoveOwnerReference(IMetadata<V1ObjectMeta>, IKubernetesObject<V1ObjectMeta>)
ModelExtensions.RemoveOwnerReferences(IMetadata<V1ObjectMeta>, Predicate<V1OwnerReference>)
ModelExtensions.RemoveOwnerReferences(IMetadata<V1ObjectMeta>, IKubernetesObject<V1ObjectMeta>)
ModelExtensions.ResourceVersion(IMetadata<V1ObjectMeta>)
ModelExtensions.SetAnnotation(IMetadata<V1ObjectMeta>, string, string)
ModelExtensions.SetLabel(IMetadata<V1ObjectMeta>, string, string)
ModelExtensions.Uid(IMetadata<V1ObjectMeta>)
Extensions.GetKubernetesTypeMetadata<T>(T)
Extensions.Initialize<T>(T)
In this article
Back to top Generated by DocFX