From 229eb93a83408481ae50e61f3ca6ab1791551da4 Mon Sep 17 00:00:00 2001 From: Ed Bartosh Date: Mon, 5 Jun 2023 21:19:49 +0300 Subject: [PATCH] DRA: report NodePrepareResource errors Log an error and submit an event when NodePrepareResource fails. --- pkg/kubelet/events/event.go | 1 + pkg/kubelet/kuberuntime/kuberuntime_manager.go | 9 ++++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/pkg/kubelet/events/event.go b/pkg/kubelet/events/event.go index 1b31dc7e605..d08253989ae 100644 --- a/pkg/kubelet/events/event.go +++ b/pkg/kubelet/events/event.go @@ -74,6 +74,7 @@ const ( FailedCreatePodSandBox = "FailedCreatePodSandBox" FailedStatusPodSandBox = "FailedPodSandBoxStatus" FailedMountOnFilesystemMismatch = "FailedMountOnFilesystemMismatch" + FailedPrepareDynamicResources = "FailedPrepareDynamicResources" ) // Image manager event reason list diff --git a/pkg/kubelet/kuberuntime/kuberuntime_manager.go b/pkg/kubelet/kuberuntime/kuberuntime_manager.go index 317f62af65f..c8e76d41f28 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_manager.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_manager.go @@ -1089,7 +1089,14 @@ func (m *kubeGenericRuntimeManager) SyncPod(ctx context.Context, pod *v1.Pod, po // Prepare resources allocated by the Dynammic Resource Allocation feature for the pod if utilfeature.DefaultFeatureGate.Enabled(features.DynamicResourceAllocation) { - if m.runtimeHelper.PrepareDynamicResources(pod) != nil { + if err := m.runtimeHelper.PrepareDynamicResources(pod); err != nil { + ref, referr := ref.GetReference(legacyscheme.Scheme, pod) + if referr != nil { + klog.ErrorS(referr, "Couldn't make a ref to pod", "pod", klog.KObj(pod)) + return + } + m.recorder.Eventf(ref, v1.EventTypeWarning, events.FailedPrepareDynamicResources, "Failed to prepare dynamic resources: %v", err) + klog.ErrorS(err, "Failed to prepare dynamic resources", "pod", klog.KObj(pod)) return } }