diff --git a/pkg/api/persistentvolume/util.go b/pkg/api/persistentvolume/util.go index d065ccc6df5..64f60ac48c2 100644 --- a/pkg/api/persistentvolume/util.go +++ b/pkg/api/persistentvolume/util.go @@ -93,8 +93,10 @@ func warningsForPersistentVolumeSpecAndMeta(fieldPath *field.Path, pvSpec *api.P warnings = append(warnings, fmt.Sprintf("%s: deprecated in v1.22, non-functional in v1.25+", fieldPath.Child("spec", "persistentVolumeSource").Child("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..6565080223a 100644 --- a/pkg/api/persistentvolume/util_test.go +++ b/pkg/api/persistentvolume/util_test.go @@ -212,6 +212,27 @@ func TestWarnings(t *testing.T) { `spec.persistentVolumeSource.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{ 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{