mirror of
https://github.com/optim-enterprises-bv/kubernetes.git
synced 2025-11-02 03:08:15 +00:00
Merge pull request #124918 from SergeyKanzhelev/commentIgnoringBadStatuses
added a comment that statuses lists are not being validated
This commit is contained in:
@@ -4148,16 +4148,37 @@ type PodStatus struct {
|
||||
// +optional
|
||||
QOSClass PodQOSClass
|
||||
|
||||
// The list has one entry per init container in the manifest. The most recent successful
|
||||
// Statuses of init containers in this pod. The most recent successful non-restartable
|
||||
// init container will have ready = true, the most recently started container will have
|
||||
// startTime set.
|
||||
// Each init container in the pod should have at most one status in this list,
|
||||
// and all statuses should be for containers in the pod.
|
||||
// However this is not enforced.
|
||||
// If a status for a non-existent container is present in the list, or the list has duplicate names,
|
||||
// the behavior of various Kubernetes components is not defined and those statuses might be
|
||||
// ignored.
|
||||
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/#pod-and-container-status
|
||||
InitContainerStatuses []ContainerStatus
|
||||
// The list has one entry per app container in the manifest.
|
||||
|
||||
// Statuses of containers in this pod.
|
||||
// Each container in the pod should have at most one status in this list,
|
||||
// and all statuses should be for containers in the pod.
|
||||
// However this is not enforced.
|
||||
// If a status for a non-existent container is present in the list, or the list has duplicate names,
|
||||
// the behavior of various Kubernetes components is not defined and those statuses might be
|
||||
// ignored.
|
||||
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
|
||||
// +optional
|
||||
ContainerStatuses []ContainerStatus
|
||||
|
||||
// Status for any ephemeral containers that have run in this pod.
|
||||
// Statuses for any ephemeral containers that have run in this pod.
|
||||
// Each ephemeral container in the pod should have at most one status in this list,
|
||||
// and all statuses should be for containers in the pod.
|
||||
// However this is not enforced.
|
||||
// If a status for a non-existent container is present in the list, or the list has duplicate names,
|
||||
// the behavior of various Kubernetes components is not defined and those statuses might be
|
||||
// ignored.
|
||||
// More info: https://kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle#pod-and-container-status
|
||||
// +optional
|
||||
EphemeralContainerStatuses []ContainerStatus
|
||||
|
||||
|
||||
@@ -5370,6 +5370,10 @@ func ValidatePodStatusUpdate(newPod, oldPod *core.Pod, opts PodValidationOptions
|
||||
// Pod QoS is immutable
|
||||
allErrs = append(allErrs, ValidateImmutableField(newPod.Status.QOSClass, oldPod.Status.QOSClass, fldPath.Child("qosClass"))...)
|
||||
|
||||
// Note: there is no check that ContainerStatuses, InitContainerStatuses, and EphemeralContainerStatuses doesn't have duplicate conatainer names
|
||||
// or statuses of containers that are not defined in the pod spec. Changing this may lead to a breaking changes. So consumers of those fields
|
||||
// must account for unexpected data. Kubelet will never report statuses like this.
|
||||
//
|
||||
// If pod should not restart, make sure the status update does not transition
|
||||
// any terminated containers to a non-terminated state.
|
||||
allErrs = append(allErrs, ValidateContainerStateTransition(newPod.Status.ContainerStatuses, oldPod.Status.ContainerStatuses, fldPath.Child("containerStatuses"), oldPod.Spec.RestartPolicy)...)
|
||||
|
||||
Reference in New Issue
Block a user