v1.14.10 Latest Latest

This package is not in the latest version of its module.

Go to latest
Published: Dec 11, 2019 License: Apache-2.0 Imports: 10 Imported by: 0



Common types in the Kubelet.



View Source
const (
	// system default DNS resolver configuration
	ResolvConfDefault = "/etc/resolv.conf"

	// different container runtimes
	DockerContainerRuntime = "docker"
	RemoteContainerRuntime = "remote"

	// User visible keys for managing node allocatable enforcement on the node.
	NodeAllocatableEnforcementKey = "pods"
	SystemReservedEnforcementKey  = "system-reserved"
	KubeReservedEnforcementKey    = "kube-reserved"
	NodeAllocatableNoneKey        = "none"
View Source
const (
	KubernetesPodNameLabel       = "io.kubernetes.pod.name"
	KubernetesPodNamespaceLabel  = "io.kubernetes.pod.namespace"
	KubernetesPodUIDLabel        = "io.kubernetes.pod.uid"
	KubernetesContainerNameLabel = "io.kubernetes.container.name"
View Source
const (
	ConfigSourceAnnotationKey    = "kubernetes.io/config.source"
	ConfigMirrorAnnotationKey    = v1.MirrorPodAnnotationKey
	ConfigFirstSeenAnnotationKey = "kubernetes.io/config.seen"
	ConfigHashAnnotationKey      = "kubernetes.io/config.hash"
	CriticalPodAnnotationKey     = "scheduler.alpha.kubernetes.io/critical-pod"
View Source
const (
	// This is the current pod configuration
	SET PodOperation = iota
	// Pods with the given ids are new to this source
	// Pods with the given ids are gracefully deleted from this source
	// Pods with the given ids have been removed from this source
	// Pods with the given ids have been updated in this source
	// Pods with the given ids have unexpected status in this source,
	// kubelet should reconcile status with this source
	// Pods with the given ids have been restored from a checkpoint.

	// These constants identify the sources of pods
	// Updates from a file
	FileSource = "file"
	// Updates from querying a web page
	HTTPSource = "http"
	// Updates from Kubernetes API Server
	ApiserverSource = "api"
	// Updates from all sources
	AllSource = "*"

	NamespaceDefault = metav1.NamespaceDefault


PodConditionsByKubelet is the list of pod conditions owned by kubelet


func GetContainerName added in v1.3.0

func GetContainerName(labels map[string]string) string

func GetPodName added in v1.3.0

func GetPodName(labels map[string]string) string

func GetPodNamespace added in v1.3.0

func GetPodNamespace(labels map[string]string) string

func GetPodSource added in v1.2.0

func GetPodSource(pod *v1.Pod) (string, error)

GetPodSource returns the source of the pod based on the annotation.

func GetPodUID added in v1.3.0

func GetPodUID(labels map[string]string) string

func GetValidatedSources added in v1.2.0

func GetValidatedSources(sources []string) ([]string, error)

Gets all validated sources from the specified sources.

func IsCritical added in v1.8.0

func IsCritical(ns string, annotations map[string]string) bool

IsCritical returns true if parameters bear the critical pod annotation key. The DaemonSetController use this key directly to make scheduling decisions. TODO: @ravig - Deprecated. Remove this when we move to resolving critical pods based on priorityClassName.

func IsCriticalPod added in v1.4.8

func IsCriticalPod(pod *v1.Pod) bool

IsCriticalPod returns true if the pod bears the critical pod annotation key or if pod's priority is greater than or equal to SystemCriticalPriority. Both the default scheduler and the kubelet use this function to make admission and scheduling decisions.

func IsCriticalPodBasedOnPriority added in v1.10.0

func IsCriticalPodBasedOnPriority(priority int32) bool

IsCriticalPodBasedOnPriority checks if the given pod is a critical pod based on priority resolved from pod Spec.

func PodConditionByKubelet added in v1.11.0

func PodConditionByKubelet(conditionType v1.PodConditionType) bool

PodConditionByKubelet returns if the pod condition type is owned by kubelet

func Preemptable added in v1.12.0

func Preemptable(preemptor, preemptee *v1.Pod) bool

Preemptable returns true if preemptor pod can preempt preemptee pod if preemptee is not critical or if preemptor's priority is greater than preemptee's priority

func SortInitContainerStatuses added in v1.3.0

func SortInitContainerStatuses(p *v1.Pod, statuses []v1.ContainerStatus)

SortInitContainerStatuses ensures that statuses are in the order that their init container appears in the pod spec


type HttpGetter

type HttpGetter interface {
	Get(url string) (*http.Response, error)

type MirrorPodUID added in v1.8.0

type MirrorPodUID types.UID

A pod UID for a mirror pod.

type PodOperation added in v1.2.0

type PodOperation int

PodOperation defines what changes will be made on a pod configuration.

type PodUpdate added in v1.2.0

type PodUpdate struct {
	Pods   []*v1.Pod
	Op     PodOperation
	Source string

PodUpdate defines an operation sent on the channel. You can add or remove single services by sending an array of size one and Op == ADD|REMOVE (with REMOVE, only the ID is required). For setting the state of the system to a given state for this source configuration, set Pods as desired and Op to SET, which will reset the system state to that specified in this operation for this source channel. To remove all pods, set Pods to empty object and Op to SET.

Additionally, Pods should never be nil - it should always point to an empty slice. While functionally similar, this helps our unit tests properly check that the correct PodUpdates are generated.

type Reservation added in v1.2.0

type Reservation struct {
	// System represents resources reserved for non-kubernetes components.
	System v1.ResourceList
	// Kubernetes represents resources reserved for kubernetes system components.
	Kubernetes v1.ResourceList

Reservation represents reserved resources for non-pod components.

type ResolvedPodUID added in v1.8.0

type ResolvedPodUID types.UID

A pod UID which has been translated/resolved to the representation known to kubelets.

type SortedContainerStatuses added in v0.20.0

type SortedContainerStatuses []v1.ContainerStatus

A type to help sort container statuses based on container names.

func (SortedContainerStatuses) Len added in v0.20.0

func (s SortedContainerStatuses) Len() int

func (SortedContainerStatuses) Less added in v0.20.0

func (s SortedContainerStatuses) Less(i, j int) bool

func (SortedContainerStatuses) Swap added in v0.20.0

func (s SortedContainerStatuses) Swap(i, j int)

type SyncPodType added in v1.2.0

type SyncPodType int

SyncPodType classifies pod updates, eg: create, update.

const (
	// SyncPodSync is when the pod is synced to ensure desired state
	SyncPodSync SyncPodType = iota
	// SyncPodUpdate is when the pod is updated from source
	// SyncPodCreate is when the pod is created from source
	// SyncPodKill is when the pod is killed based on a trigger internal to the kubelet for eviction.
	// If a SyncPodKill request is made to pod workers, the request is never dropped, and will always be processed.

func (SyncPodType) String added in v1.2.0

func (sp SyncPodType) String() string

type Timestamp added in v0.20.0

type Timestamp struct {
	// contains filtered or unexported fields

Timestamp wraps around time.Time and offers utilities to format and parse the time using RFC3339Nano

func ConvertToTimestamp added in v0.20.0

func ConvertToTimestamp(timeString string) *Timestamp

ConvertToTimestamp takes a string, parses it using the RFC3339Nano layout, and converts it to a Timestamp object.

func NewTimestamp added in v0.20.0

func NewTimestamp() *Timestamp

NewTimestamp returns a Timestamp object using the current time.

func (*Timestamp) Get added in v0.20.0

func (t *Timestamp) Get() time.Time

Get returns the time as time.Time.

func (*Timestamp) GetString added in v0.20.0

func (t *Timestamp) GetString() string

GetString returns the time in the string format using the RFC3339Nano layout.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL