Documentation ¶
Overview ¶
Common types in the Kubelet.
Index ¶
- Constants
- Variables
- func GetContainerName(labels map[string]string) string
- func GetPodName(labels map[string]string) string
- func GetPodNamespace(labels map[string]string) string
- func GetPodSource(pod *v1.Pod) (string, error)
- func GetPodUID(labels map[string]string) string
- func GetValidatedSources(sources []string) ([]string, error)
- func IsCriticalPod(pod *v1.Pod) bool
- func IsCriticalPodBasedOnPriority(priority int32) bool
- func IsMirrorPod(pod *v1.Pod) bool
- func IsStaticPod(pod *v1.Pod) bool
- func PodConditionByKubelet(conditionType v1.PodConditionType) bool
- func Preemptable(preemptor, preemptee *v1.Pod) bool
- func SortInitContainerStatuses(p *v1.Pod, statuses []v1.ContainerStatus)
- type HTTPGetter
- type MirrorPodUID
- type PodOperation
- type PodUpdate
- type Reservation
- type ResolvedPodUID
- type SortedContainerStatuses
- type SyncPodType
- type Timestamp
Constants ¶
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" // fixed width version of time.RFC3339Nano RFC3339NanoFixed = "2006-01-02T15:04:05.000000000Z07:00" // variable width RFC3339 time format for lenient parsing of strings into timestamps RFC3339NanoLenient = "2006-01-02T15:04:05.999999999Z07:00" )
const ( KubernetesPodNameLabel = "io.kubernetes.pod.name" KubernetesPodNamespaceLabel = "io.kubernetes.pod.namespace" KubernetesPodUIDLabel = "io.kubernetes.pod.uid" KubernetesContainerNameLabel = "io.kubernetes.container.name" )
const ( ConfigSourceAnnotationKey = "kubernetes.io/config.source" ConfigMirrorAnnotationKey = v1.MirrorPodAnnotationKey ConfigFirstSeenAnnotationKey = "kubernetes.io/config.seen" ConfigHashAnnotationKey = "kubernetes.io/config.hash" )
const ( // This is the current pod configuration SET PodOperation = iota // Pods with the given ids are new to this source ADD // Pods with the given ids are gracefully deleted from this source DELETE // Pods with the given ids have been removed from this source REMOVE // Pods with the given ids have been updated in this source UPDATE // Pods with the given ids have unexpected status in this source, // kubelet should reconcile status with this source RECONCILE // Pods with the given ids have been restored from a checkpoint. RESTORE // 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 )
Variables ¶
var PodConditionsByKubelet = []v1.PodConditionType{ v1.PodScheduled, v1.PodReady, v1.PodInitialized, v1.PodReasonUnschedulable, v1.ContainersReady, }
PodConditionsByKubelet is the list of pod conditions owned by kubelet
Functions ¶
func GetContainerName ¶ added in v1.3.0
func GetPodName ¶ added in v1.3.0
func GetPodNamespace ¶ added in v1.3.0
func GetPodSource ¶ added in v1.2.0
GetPodSource returns the source of the pod based on the annotation.
func GetValidatedSources ¶ added in v1.2.0
Gets all validated sources from the specified sources.
func IsCriticalPod ¶ added in v1.4.8
IsCriticalPod returns true if pod's priority is greater than or equal to SystemCriticalPriority.
func IsCriticalPodBasedOnPriority ¶ added in v1.10.0
IsCriticalPodBasedOnPriority checks if the given pod is a critical pod based on priority resolved from pod Spec.
func IsMirrorPod ¶ added in v1.17.0
IsMirrorPod returns true if the passed Pod is a Mirror Pod.
func IsStaticPod ¶ added in v1.16.0
IsStaticPod returns true if the pod is a static pod.
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
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
Types ¶
type HTTPGetter ¶ added in v1.18.0
type HTTPGetter interface { // Get issues a GET to the specified URL. Get(url string) (*http.Response, error) }
HTTPGetter is an interface representing the ability to perform HTTP GET requests.
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
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 SyncPodUpdate // SyncPodCreate is when the pod is created from source SyncPodCreate // 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. SyncPodKill )
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
ConvertToTimestamp takes a string, parses it using the RFC3339NanoLenient 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.