mirror of
https://github.com/k3s-io/kubernetes.git
synced 2026-07-17 20:00:07 +00:00
Merge pull request #138030 from askervin/5gH-kubelet-fix-nodeAllocatableResourceClaimStatuses
kubelet: do not destroy nodeAllocatableResourceClaimStatuses
This commit is contained in:
@@ -224,7 +224,8 @@ func NewManager(kubeClient clientset.Interface, podManager PodManager, podDeleti
|
||||
|
||||
// isPodStatusByKubeletEqual returns true if the given pod statuses are equal, ignoring
|
||||
// fields not managed by the kubelet (including non-kubelet-owned pod conditions,
|
||||
// ResourceClaimStatuses, and ExtendedResourceClaimStatus). Statuses are assumed to be
|
||||
// ResourceClaimStatuses, ExtendedResourceClaimStatus, and
|
||||
// NodeAllocatableResourceClaimStatuses). Statuses are assumed to be
|
||||
// normalized before calling this function.
|
||||
func isPodStatusByKubeletEqual(oldStatus, status *v1.PodStatus) bool {
|
||||
oldCopy := oldStatus.DeepCopy()
|
||||
@@ -257,6 +258,8 @@ func isPodStatusByKubeletEqual(oldStatus, status *v1.PodStatus) bool {
|
||||
oldCopy.ResourceClaimStatuses = status.ResourceClaimStatuses
|
||||
// ExtendedResourceClaimStatus is not owned and not modified by kubelet.
|
||||
oldCopy.ExtendedResourceClaimStatus = status.ExtendedResourceClaimStatus
|
||||
// NodeAllocatableResourceClaimStatuses is not owned and not modified by kubelet.
|
||||
oldCopy.NodeAllocatableResourceClaimStatuses = status.NodeAllocatableResourceClaimStatuses
|
||||
|
||||
return apiequality.Semantic.DeepEqual(oldCopy, status)
|
||||
}
|
||||
@@ -1393,6 +1396,8 @@ func mergePodStatus(pod *v1.Pod, oldPodStatus, newPodStatus v1.PodStatus, couldH
|
||||
newPodStatus.ResourceClaimStatuses = oldPodStatus.ResourceClaimStatuses
|
||||
// ExtendedResourceClaimStatus is not owned and not modified by kubelet.
|
||||
newPodStatus.ExtendedResourceClaimStatus = oldPodStatus.ExtendedResourceClaimStatus
|
||||
// NodeAllocatableResourceClaimStatuses is not owned and not modified by kubelet.
|
||||
newPodStatus.NodeAllocatableResourceClaimStatuses = oldPodStatus.NodeAllocatableResourceClaimStatuses
|
||||
|
||||
// Delay transitioning a pod to a terminal status unless the pod is actually terminal.
|
||||
// The Kubelet should never transition a pod to terminal status that could have running
|
||||
|
||||
@@ -33,6 +33,7 @@ import (
|
||||
|
||||
v1 "k8s.io/api/core/v1"
|
||||
"k8s.io/apimachinery/pkg/api/errors"
|
||||
"k8s.io/apimachinery/pkg/api/resource"
|
||||
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
|
||||
"k8s.io/apimachinery/pkg/runtime"
|
||||
"k8s.io/apimachinery/pkg/runtime/schema"
|
||||
@@ -525,6 +526,13 @@ func TestStatusEquality(t *testing.T) {
|
||||
}
|
||||
oldPodStatus.ResourceClaimStatuses = []v1.PodResourceClaimStatus{claimStatusA}
|
||||
oldPodStatus.ExtendedResourceClaimStatus = extendedClaimStatusA
|
||||
oldPodStatus.NodeAllocatableResourceClaimStatuses = []v1.NodeAllocatableResourceClaimStatus{
|
||||
{
|
||||
ResourceClaimName: "my-claim",
|
||||
Containers: []string{"ctr0"},
|
||||
Resources: map[v1.ResourceName]resource.Quantity{v1.ResourceMemory: resource.MustParse("100Mi")},
|
||||
},
|
||||
}
|
||||
|
||||
normalizeStatus(&pod, &oldPodStatus)
|
||||
normalizeStatus(&pod, &podStatus)
|
||||
|
||||
Reference in New Issue
Block a user