Commit 58fe20f0 authored by Kubernetes Submit Queue's avatar Kubernetes Submit Queue Committed by GitHub

Merge pull request #51893 from jsafrane/clear-alpha-mount-propagation

Automatic merge from submit-queue (batch tested with PRs 51180, 51893) Clear alpha MountPropagation fields. This is leftover from #50924, mount propagation introduced a new field that needs to be cleared. **Which issue this PR fixes** fixes #51738 **Release note**: ```release-note NONE ``` @k8s-mirror-api-machinery-pr-reviews /assign @liggitt
parents 28b7bc2c 876109a5
...@@ -243,4 +243,20 @@ func DropDisabledAlphaFields(podSpec *api.PodSpec) { ...@@ -243,4 +243,20 @@ func DropDisabledAlphaFields(podSpec *api.PodSpec) {
} }
} }
} }
for i := range podSpec.Containers {
DropDisabledVolumeMountsAlphaFields(podSpec.Containers[i].VolumeMounts)
}
for i := range podSpec.InitContainers {
DropDisabledVolumeMountsAlphaFields(podSpec.InitContainers[i].VolumeMounts)
}
}
// DropDisabledVolumeMountsAlphaFields removes disabled fields from []VolumeMount.
// This should be called from PrepareForCreate/PrepareForUpdate for all resources containing a VolumeMount
func DropDisabledVolumeMountsAlphaFields(volumeMounts []api.VolumeMount) {
if !utilfeature.DefaultFeatureGate.Enabled(features.MountPropagation) {
for i := range volumeMounts {
volumeMounts[i].MountPropagation = nil
}
}
} }
...@@ -14,6 +14,7 @@ go_library( ...@@ -14,6 +14,7 @@ go_library(
], ],
deps = [ deps = [
"//pkg/api:go_default_library", "//pkg/api:go_default_library",
"//pkg/api/pod:go_default_library",
"//pkg/apis/settings:go_default_library", "//pkg/apis/settings:go_default_library",
"//pkg/apis/settings/validation:go_default_library", "//pkg/apis/settings/validation:go_default_library",
"//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library", "//vendor/k8s.io/apimachinery/pkg/apis/meta/internalversion:go_default_library",
......
...@@ -22,6 +22,7 @@ import ( ...@@ -22,6 +22,7 @@ import (
genericapirequest "k8s.io/apiserver/pkg/endpoints/request" genericapirequest "k8s.io/apiserver/pkg/endpoints/request"
"k8s.io/apiserver/pkg/storage/names" "k8s.io/apiserver/pkg/storage/names"
"k8s.io/kubernetes/pkg/api" "k8s.io/kubernetes/pkg/api"
"k8s.io/kubernetes/pkg/api/pod"
"k8s.io/kubernetes/pkg/apis/settings" "k8s.io/kubernetes/pkg/apis/settings"
"k8s.io/kubernetes/pkg/apis/settings/validation" "k8s.io/kubernetes/pkg/apis/settings/validation"
) )
...@@ -44,6 +45,8 @@ func (podPresetStrategy) NamespaceScoped() bool { ...@@ -44,6 +45,8 @@ func (podPresetStrategy) NamespaceScoped() bool {
func (podPresetStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) { func (podPresetStrategy) PrepareForCreate(ctx genericapirequest.Context, obj runtime.Object) {
pip := obj.(*settings.PodPreset) pip := obj.(*settings.PodPreset)
pip.Generation = 1 pip.Generation = 1
pod.DropDisabledVolumeMountsAlphaFields(pip.Spec.VolumeMounts)
} }
// PrepareForUpdate clears fields that are not allowed to be set by end users on update. // PrepareForUpdate clears fields that are not allowed to be set by end users on update.
...@@ -51,6 +54,9 @@ func (podPresetStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, ol ...@@ -51,6 +54,9 @@ func (podPresetStrategy) PrepareForUpdate(ctx genericapirequest.Context, obj, ol
newPodPreset := obj.(*settings.PodPreset) newPodPreset := obj.(*settings.PodPreset)
oldPodPreset := old.(*settings.PodPreset) oldPodPreset := old.(*settings.PodPreset)
pod.DropDisabledVolumeMountsAlphaFields(oldPodPreset.Spec.VolumeMounts)
pod.DropDisabledVolumeMountsAlphaFields(newPodPreset.Spec.VolumeMounts)
// Update is not allowed // Update is not allowed
newPodPreset.Spec = oldPodPreset.Spec newPodPreset.Spec = oldPodPreset.Spec
} }
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment