diff --git a/pkg/apis/core/validation/validation.go b/pkg/apis/core/validation/validation.go index 54dd7d9062c..8bfdf9dd0b8 100644 --- a/pkg/apis/core/validation/validation.go +++ b/pkg/apis/core/validation/validation.go @@ -84,6 +84,7 @@ var allowedEphemeralContainerFields = map[string]bool{ "Env": true, "Resources": false, "VolumeMounts": true, + "VolumeDevices": true, "LivenessProbe": false, "ReadinessProbe": false, "StartupProbe": false, diff --git a/pkg/apis/core/validation/validation_test.go b/pkg/apis/core/validation/validation_test.go index 91c4e05acb4..fc1d2b0aea4 100644 --- a/pkg/apis/core/validation/validation_test.go +++ b/pkg/apis/core/validation/validation_test.go @@ -6143,7 +6143,10 @@ func getResourceLimits(cpu, memory string) core.ResourceList { func TestValidateEphemeralContainers(t *testing.T) { containers := []core.Container{{Name: "ctr", Image: "image", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}} initContainers := []core.Container{{Name: "ictr", Image: "iimage", ImagePullPolicy: "IfNotPresent", TerminationMessagePolicy: "File"}} - vols := map[string]core.VolumeSource{"vol": {EmptyDir: &core.EmptyDirVolumeSource{}}} + vols := map[string]core.VolumeSource{ + "blk": {PersistentVolumeClaim: &core.PersistentVolumeClaimVolumeSource{ClaimName: "pvc"}}, + "vol": {EmptyDir: &core.EmptyDirVolumeSource{}}, + } // Success Cases for title, ephemeralContainers := range map[string][]core.EphemeralContainer{ @@ -6161,7 +6164,7 @@ func TestValidateEphemeralContainers(t *testing.T) { TargetContainerName: "ctr", }, }, - "All allowed Fields": { + "All allowed fields": { { EphemeralContainerCommon: core.EphemeralContainerCommon{ @@ -6184,6 +6187,9 @@ func TestValidateEphemeralContainers(t *testing.T) { VolumeMounts: []core.VolumeMount{ {Name: "vol", MountPath: "/vol"}, }, + VolumeDevices: []core.VolumeDevice{ + {Name: "blk", DevicePath: "/dev/block"}, + }, TerminationMessagePath: "/dev/termination-log", TerminationMessagePolicy: "File", ImagePullPolicy: "IfNotPresent",