From 2dc8cc13a4e1f184a7eabc1dc908d39b4bd8c39d Mon Sep 17 00:00:00 2001 From: Jan Safranek Date: Fri, 18 Mar 2022 13:36:22 +0100 Subject: [PATCH] Remove SyncReconstructedVolume call With the new reconstruction, AWS.MarkVolumeAsMounted will update outer spec name with the correct value from Pod. --- .../populator/desired_state_of_world_populator.go | 10 ++++++++-- .../populator/desired_state_of_world_populator_test.go | 3 +++ 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go index 8e75dd28f32..a18df61916d 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -34,8 +34,10 @@ import ( "k8s.io/apimachinery/pkg/types" "k8s.io/apimachinery/pkg/util/sets" "k8s.io/apimachinery/pkg/util/wait" + utilfeature "k8s.io/apiserver/pkg/util/feature" clientset "k8s.io/client-go/kubernetes" "k8s.io/component-helpers/storage/ephemeral" + "k8s.io/kubernetes/pkg/features" "k8s.io/kubernetes/pkg/kubelet/config" kubecontainer "k8s.io/kubernetes/pkg/kubelet/container" "k8s.io/kubernetes/pkg/kubelet/pod" @@ -315,8 +317,12 @@ func (dswp *desiredStateOfWorldPopulator) processPodVolumes( } else { klog.V(4).InfoS("Added volume to desired state", "pod", klog.KObj(pod), "volumeName", podVolume.Name, "volumeSpecName", volumeSpec.Name()) } - // sync reconstructed volume - dswp.actualStateOfWorld.SyncReconstructedVolume(uniqueVolumeName, uniquePodName, podVolume.Name) + if !utilfeature.DefaultFeatureGate.Enabled(features.SELinuxMountReadWriteOncePod) { + // sync reconstructed volume. This is necessary only when the old-style reconstruction is still used. + // With reconstruct_new.go, AWS.MarkVolumeAsMounted will update the outer spec name of previously + // uncertain volumes. + dswp.actualStateOfWorld.SyncReconstructedVolume(uniqueVolumeName, uniquePodName, podVolume.Name) + } dswp.checkVolumeFSResize(pod, podVolume, pvc, volumeSpec, uniquePodName, mountedVolumesForPod) } diff --git a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go index aec172bf994..0bc65bd8734 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator_test.go @@ -84,6 +84,9 @@ func prepareDswpWithVolume(t *testing.T) (*desiredStateOfWorldPopulator, kubepod } func TestFindAndAddNewPods_WithRescontructedVolume(t *testing.T) { + // Outer volume spec replacement is needed only when the old volume reconstruction is used + // (i.e. with SELinuxMountReadWriteOncePod disabled) + defer featuregatetesting.SetFeatureGateDuringTest(t, utilfeature.DefaultFeatureGate, features.SELinuxMountReadWriteOncePod, false)() // create dswp dswp, fakePodManager := prepareDswpWithVolume(t)