From 3e642aee3f19486f65034b62ac56244ecd7c2555 Mon Sep 17 00:00:00 2001 From: Kevin Hannon Date: Wed, 24 Jul 2024 10:18:23 -0400 Subject: [PATCH] move container fs check so that we only check if system is split --- pkg/kubelet/stats/cadvisor_stats_provider.go | 11 +++++++---- pkg/kubelet/stats/cadvisor_stats_provider_test.go | 1 - 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/pkg/kubelet/stats/cadvisor_stats_provider.go b/pkg/kubelet/stats/cadvisor_stats_provider.go index e46a073a718..b2330814de2 100644 --- a/pkg/kubelet/stats/cadvisor_stats_provider.go +++ b/pkg/kubelet/stats/cadvisor_stats_provider.go @@ -267,10 +267,6 @@ func (p *cadvisorStatsProvider) ImageFsStats(ctx context.Context) (imageFsRet *s } return imageFs, imageFs, nil } - containerFsInfo, err := p.cadvisor.ContainerFsInfo() - if err != nil { - return nil, nil, fmt.Errorf("failed to get container fs info: %v", err) - } imageStats, err := p.imageService.ImageFsInfo(ctx) if err != nil || imageStats == nil { return nil, nil, fmt.Errorf("failed to get image stats: %v", err) @@ -296,10 +292,17 @@ func (p *cadvisorStatsProvider) ImageFsStats(ctx context.Context) (imageFsRet *s Inodes: imageFsInfo.Inodes, InodesUsed: imageFsInodesUsed, } + // We rely on cadvisor to have the crio-containers label for split filesystem case. + // We return to avoid checking ContainerFsInfo. if !splitFileSystem { return fsStats, fsStats, nil } + containerFsInfo, err := p.cadvisor.ContainerFsInfo() + if err != nil { + return nil, nil, fmt.Errorf("failed to get container fs info: %w", err) + } + containerFs := imageStats.ContainerFilesystems[0] var containerFsInodesUsed *uint64 if containerFsInfo.Inodes != nil && containerFsInfo.InodesFree != nil { diff --git a/pkg/kubelet/stats/cadvisor_stats_provider_test.go b/pkg/kubelet/stats/cadvisor_stats_provider_test.go index fb4351f1961..bff66f7acca 100644 --- a/pkg/kubelet/stats/cadvisor_stats_provider_test.go +++ b/pkg/kubelet/stats/cadvisor_stats_provider_test.go @@ -569,7 +569,6 @@ func TestCadvisorImagesFsStats(t *testing.T) { featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.KubeletSeparateDiskGC, true) mockCadvisor.EXPECT().ImagesFsInfo().Return(imageFsInfo, nil) - mockCadvisor.EXPECT().ContainerFsInfo().Return(imageFsInfo, nil) mockRuntime.EXPECT().ImageFsInfo(ctx).Return(imageFsInfoResponse, nil) provider := newCadvisorStatsProvider(mockCadvisor, &fakeResourceAnalyzer{}, mockRuntime, nil, NewFakeHostStatsProvider())