diff --git a/pkg/api/persistentvolume/util.go b/pkg/api/persistentvolume/util.go index d065ccc6df5..5f929297a27 100644 --- a/pkg/api/persistentvolume/util.go +++ b/pkg/api/persistentvolume/util.go @@ -81,20 +81,22 @@ func warningsForPersistentVolumeSpecAndMeta(fieldPath *field.Path, pvSpec *api.P } // If we are on deprecated volume plugin if pvSpec.CephFS != nil { - warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.28, non-functional in v1.31+", fieldPath.Child("spec", "persistentVolumeSource").Child("cephfs"))) + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.28, non-functional in v1.31+", fieldPath.Child("spec", "cephfs"))) } if pvSpec.PhotonPersistentDisk != nil { - warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.11, non-functional in v1.16+", fieldPath.Child("spec", "persistentVolumeSource").Child("photonPersistentDisk"))) + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.11, non-functional in v1.16+", fieldPath.Child("spec", "photonPersistentDisk"))) } if pvSpec.ScaleIO != nil { - warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.16, non-functional in v1.22+", fieldPath.Child("spec", "persistentVolumeSource").Child("scaleIO"))) + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.16, non-functional in v1.22+", fieldPath.Child("spec", "scaleIO"))) } if pvSpec.StorageOS != nil { - warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.22, non-functional in v1.25+", fieldPath.Child("spec", "persistentVolumeSource").Child("storageOS"))) + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.22, non-functional in v1.25+", fieldPath.Child("spec", "storageOS"))) } if pvSpec.Glusterfs != nil { - warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.25, non-functional in v1.26+", fieldPath.Child("spec", "persistentVolumeSource").Child("glusterfs"))) + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.25, non-functional in v1.26+", fieldPath.Child("spec", "glusterfs"))) + } + if pvSpec.RBD != nil { + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.28, non-functional in v1.31+", fieldPath.Child("spec", "rbd"))) } - return warnings } diff --git a/pkg/api/persistentvolume/util_test.go b/pkg/api/persistentvolume/util_test.go index 4557cf49479..5000f3adf75 100644 --- a/pkg/api/persistentvolume/util_test.go +++ b/pkg/api/persistentvolume/util_test.go @@ -193,7 +193,7 @@ func TestWarnings(t *testing.T) { }, }, expected: []string{ - `spec.persistentVolumeSource.cephfs: deprecated in v1.28, non-functional in v1.31+`, + `spec.cephfs: deprecated in v1.28, non-functional in v1.31+`, }, }, { @@ -209,9 +209,30 @@ func TestWarnings(t *testing.T) { }, }, expected: []string{ - `spec.persistentVolumeSource.photonPersistentDisk: deprecated in v1.11, non-functional in v1.16+`, + `spec.photonPersistentDisk: deprecated in v1.11, non-functional in v1.16+`, }, }, + { + name: "PV RBD deprecation warning", + template: &api.PersistentVolume{ + Spec: api.PersistentVolumeSpec{ + PersistentVolumeSource: api.PersistentVolumeSource{ + RBD: &api.RBDPersistentVolumeSource{ + CephMonitors: nil, + RBDImage: "", + FSType: "", + RBDPool: "", + RadosUser: "", + Keyring: "", + SecretRef: nil, + ReadOnly: false, + }, + }, + }, + }, + expected: []string{ + `spec.rbd: deprecated in v1.28, non-functional in v1.31+`}, + }, { name: "PV ScaleIO deprecation warning", template: &api.PersistentVolume{ @@ -233,10 +254,9 @@ func TestWarnings(t *testing.T) { }, }, expected: []string{ - `spec.persistentVolumeSource.scaleIO: deprecated in v1.16, non-functional in v1.22+`, + `spec.scaleIO: deprecated in v1.16, non-functional in v1.22+`, }, }, - { name: "PV StorageOS deprecation warning", template: &api.PersistentVolume{ @@ -253,10 +273,9 @@ func TestWarnings(t *testing.T) { }, }, expected: []string{ - `spec.persistentVolumeSource.storageOS: deprecated in v1.22, non-functional in v1.25+`, + `spec.storageOS: deprecated in v1.22, non-functional in v1.25+`, }, }, - { name: "PV GlusterFS deprecation warning", template: &api.PersistentVolume{ @@ -272,7 +291,7 @@ func TestWarnings(t *testing.T) { }, }, expected: []string{ - `spec.persistentVolumeSource.glusterfs: deprecated in v1.25, non-functional in v1.26+`, + `spec.glusterfs: deprecated in v1.25, non-functional in v1.26+`, }, }, } diff --git a/pkg/api/pod/warnings.go b/pkg/api/pod/warnings.go index a7c67921899..c3360538035 100644 --- a/pkg/api/pod/warnings.go +++ b/pkg/api/pod/warnings.go @@ -163,6 +163,9 @@ func warningsForPodSpecAndMeta(fieldPath *field.Path, podSpec *api.PodSpec, meta if v.CephFS != nil { warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.28, non-functional in v1.31+", fieldPath.Child("spec", "volumes").Index(i).Child("cephfs"))) } + if v.RBD != nil { + warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.28, non-functional in v1.31+", fieldPath.Child("spec", "volumes").Index(i).Child("rbd"))) + } } // duplicate hostAliases (#91670, #58477) diff --git a/pkg/api/pod/warnings_test.go b/pkg/api/pod/warnings_test.go index 138e249cbf3..8a2ba9e5482 100644 --- a/pkg/api/pod/warnings_test.go +++ b/pkg/api/pod/warnings_test.go @@ -224,6 +224,15 @@ func TestWarnings(t *testing.T) { expected: []string{`spec.volumes[0].cephfs: deprecated in v1.28, non-functional in v1.31+`}, }, + { + name: "rbd", + template: &api.PodTemplateSpec{Spec: api.PodSpec{ + Volumes: []api.Volume{ + {Name: "s", VolumeSource: api.VolumeSource{RBD: &api.RBDVolumeSource{}}}, + }}, + }, + expected: []string{`spec.volumes[0].rbd: deprecated in v1.28, non-functional in v1.31+`}, + }, { name: "duplicate hostAlias", template: &api.PodTemplateSpec{Spec: api.PodSpec{