diff --git a/pkg/kubelet/cm/dra/manager.go b/pkg/kubelet/cm/dra/manager.go index 41f3d7030ed..9bf4c68880c 100644 --- a/pkg/kubelet/cm/dra/manager.go +++ b/pkg/kubelet/cm/dra/manager.go @@ -819,18 +819,18 @@ func (m *Manager) UpdateAllocatedResourcesStatus(pod *v1.Pod, status *v1.PodStat } } + // Build a map of pod claim statuses for O(1) lookup + podClaimStatusMap := make(map[string]string, len(pod.Status.ResourceClaimStatuses)) + for _, podClaimStatus := range pod.Status.ResourceClaimStatuses { + if podClaimStatus.ResourceClaimName != nil { + podClaimStatusMap[podClaimStatus.Name] = *podClaimStatus.ResourceClaimName + } + } + // Iterate through the claims requested by this specific container. for _, claim := range containerSpec.Resources.Claims { // Find the actual name of the ResourceClaim object. - var actualClaimName string - for _, podClaimStatus := range pod.Status.ResourceClaimStatuses { - if podClaimStatus.Name == claim.Name { - if podClaimStatus.ResourceClaimName != nil { - actualClaimName = *podClaimStatus.ResourceClaimName - } - break - } - } + actualClaimName := podClaimStatusMap[claim.Name] if actualClaimName == "" { logger.V(4).Info("Could not find generated name for resource claim in pod status", "container", containerSpec.Name, "claimName", claim.Name)