diff --git a/pkg/kubelet/kuberuntime/kuberuntime_gc.go b/pkg/kubelet/kuberuntime/kuberuntime_gc.go index d1be0a6b728..f22430a7fa3 100644 --- a/pkg/kubelet/kuberuntime/kuberuntime_gc.go +++ b/pkg/kubelet/kuberuntime/kuberuntime_gc.go @@ -24,6 +24,7 @@ import ( "time" "k8s.io/apimachinery/pkg/types" + utilerrors "k8s.io/apimachinery/pkg/util/errors" "k8s.io/apimachinery/pkg/util/sets" internalapi "k8s.io/cri-api/pkg/apis" runtimeapi "k8s.io/cri-api/pkg/apis/runtime/v1alpha2" @@ -375,16 +376,20 @@ func (cgc *containerGC) evictPodLogsDirectories(allSourcesReady bool) error { // * gets evictable sandboxes which are not ready and contains no containers. // * removes evictable sandboxes. func (cgc *containerGC) GarbageCollect(gcPolicy kubecontainer.ContainerGCPolicy, allSourcesReady bool, evictTerminatedPods bool) error { + errors := []error{} // Remove evictable containers if err := cgc.evictContainers(gcPolicy, allSourcesReady, evictTerminatedPods); err != nil { - return err + errors = append(errors, err) } // Remove sandboxes with zero containers if err := cgc.evictSandboxes(evictTerminatedPods); err != nil { - return err + errors = append(errors, err) } // Remove pod sandbox log directory - return cgc.evictPodLogsDirectories(allSourcesReady) + if err := cgc.evictPodLogsDirectories(allSourcesReady); err != nil { + errors = append(errors, err) + } + return utilerrors.NewAggregate(errors) }