From 555d4a12bf58f19cbd79f866e2abce13490bde40 Mon Sep 17 00:00:00 2001 From: Patrick Ohly Date: Wed, 3 Mar 2021 17:16:13 +0100 Subject: [PATCH] generic ephemeral volumes: drop ReadOnly field As discussed during the alpha review, the ReadOnly field is not really needed because volume mounts can also be read-only. It's a historical oddity that can be avoided for generic ephemeral volumes as part of the promotion to beta. --- pkg/apis/core/types.go | 5 ----- pkg/controller/volume/attachdetach/util/util.go | 1 - .../populator/desired_state_of_world_populator.go | 1 - staging/src/k8s.io/api/core/v1/types.go | 6 ++---- staging/src/k8s.io/kubectl/pkg/describe/describe.go | 1 - test/e2e/storage/framework/volume_resource.go | 5 ++--- 6 files changed, 4 insertions(+), 15 deletions(-) diff --git a/pkg/apis/core/types.go b/pkg/apis/core/types.go index 30f5014951c..3f02daccc1d 100644 --- a/pkg/apis/core/types.go +++ b/pkg/apis/core/types.go @@ -1720,11 +1720,6 @@ type EphemeralVolumeSource struct { // // Required, must not be nil. VolumeClaimTemplate *PersistentVolumeClaimTemplate - - // ReadOnly specifies a read-only configuration for the volume. - // Defaults to false (read/write). - // +optional - ReadOnly bool } // PersistentVolumeClaimTemplate is used to produce diff --git a/pkg/controller/volume/attachdetach/util/util.go b/pkg/controller/volume/attachdetach/util/util.go index 57409bc1180..66312d08702 100644 --- a/pkg/controller/volume/attachdetach/util/util.go +++ b/pkg/controller/volume/attachdetach/util/util.go @@ -48,7 +48,6 @@ func CreateVolumeSpec(podVolume v1.Volume, pod *v1.Pod, nodeName types.NodeName, } if ephemeralSource := podVolume.VolumeSource.Ephemeral; ephemeralSource != nil && utilfeature.DefaultFeatureGate.Enabled(features.GenericEphemeralVolume) { claimName = pod.Name + "-" + podVolume.Name - readOnly = ephemeralSource.ReadOnly } if claimName != "" { klog.V(10).Infof( 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 b222f9224bf..c9da7c062dd 100644 --- a/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go +++ b/pkg/kubelet/volumemanager/populator/desired_state_of_world_populator.go @@ -530,7 +530,6 @@ func (dswp *desiredStateOfWorldPopulator) createVolumeSpec( // owned by the pod. pvcSource = &v1.PersistentVolumeClaimVolumeSource{ ClaimName: pod.Name + "-" + podVolume.Name, - ReadOnly: podVolume.VolumeSource.Ephemeral.ReadOnly, } ephemeral = true } diff --git a/staging/src/k8s.io/api/core/v1/types.go b/staging/src/k8s.io/api/core/v1/types.go index e0d8a1c2c4c..dd5cb4e3cd5 100644 --- a/staging/src/k8s.io/api/core/v1/types.go +++ b/staging/src/k8s.io/api/core/v1/types.go @@ -1798,10 +1798,8 @@ type EphemeralVolumeSource struct { // Required, must not be nil. VolumeClaimTemplate *PersistentVolumeClaimTemplate `json:"volumeClaimTemplate,omitempty" protobuf:"bytes,1,opt,name=volumeClaimTemplate"` - // Specifies a read-only configuration for the volume. - // Defaults to false (read/write). - // +optional - ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` + // ReadOnly is tombstoned to show why 2 is a reserved protobuf tag. + // ReadOnly bool `json:"readOnly,omitempty" protobuf:"varint,2,opt,name=readOnly"` } // PersistentVolumeClaimTemplate is used to produce diff --git a/staging/src/k8s.io/kubectl/pkg/describe/describe.go b/staging/src/k8s.io/kubectl/pkg/describe/describe.go index bb995ed791e..393c941f211 100644 --- a/staging/src/k8s.io/kubectl/pkg/describe/describe.go +++ b/staging/src/k8s.io/kubectl/pkg/describe/describe.go @@ -1072,7 +1072,6 @@ func printEphemeralVolumeSource(ephemeral *corev1.EphemeralVolumeSource, w Prefi Spec: ephemeral.VolumeClaimTemplate.Spec, }, false /* not a full PVC */) } - w.Write(LEVEL_2, "ReadOnly:\t%v\n", ephemeral.ReadOnly) } func printRBDVolumeSource(rbd *corev1.RBDVolumeSource, w PrefixWriter) { diff --git a/test/e2e/storage/framework/volume_resource.go b/test/e2e/storage/framework/volume_resource.go index 85cabd107e3..713dbf72cd7 100644 --- a/test/e2e/storage/framework/volume_resource.go +++ b/test/e2e/storage/framework/volume_resource.go @@ -109,7 +109,7 @@ func CreateVolumeResource(driver TestDriver, config *PerTestConfig, pattern Test driverVolumeSizeRange := dDriver.GetDriverInfo().SupportedSizeRange claimSize, err := storageutils.GetSizeRangesIntersection(testVolumeSizeRange, driverVolumeSizeRange) framework.ExpectNoError(err, "determine intersection of test size range %+v and driver size range %+v", testVolumeSizeRange, driverVolumeSizeRange) - r.VolSource = createEphemeralVolumeSource(r.Sc.Name, dInfo.RequiredAccessModes, claimSize, false /* readOnly */) + r.VolSource = createEphemeralVolumeSource(r.Sc.Name, dInfo.RequiredAccessModes, claimSize) } } case CSIInlineVolume: @@ -134,7 +134,7 @@ func CreateVolumeResource(driver TestDriver, config *PerTestConfig, pattern Test return &r } -func createEphemeralVolumeSource(scName string, accessModes []v1.PersistentVolumeAccessMode, claimSize string, readOnly bool) *v1.VolumeSource { +func createEphemeralVolumeSource(scName string, accessModes []v1.PersistentVolumeAccessMode, claimSize string) *v1.VolumeSource { if len(accessModes) == 0 { accessModes = []v1.PersistentVolumeAccessMode{v1.ReadWriteOnce} } @@ -151,7 +151,6 @@ func createEphemeralVolumeSource(scName string, accessModes []v1.PersistentVolum }, }, }, - ReadOnly: readOnly, }, } }