diff --git a/pkg/operator/ceph/version/version.go b/pkg/operator/ceph/version/version.go index dbe7375d0..b24a1e4a5 100644 --- a/pkg/operator/ceph/version/version.go +++ b/pkg/operator/ceph/version/version.go @@ -47,6 +47,8 @@ var ( Pacific = CephVersion{16, 0, 0, 0, ""} // Quincy Ceph version Quincy = CephVersion{17, 0, 0, 0, ""} + // Reef Ceph version + Reef = CephVersion{18, 0, 0, 0, ""} // supportedVersions are production-ready versions that rook supports supportedVersions = []CephVersion{Octopus, Pacific, Quincy} @@ -89,6 +91,8 @@ func (v *CephVersion) ReleaseName() string { return "pacific" case Quincy.Major: return "quincy" + case Reef.Major: + return "reef" default: return unknownVersionString } @@ -179,6 +183,11 @@ func (v *CephVersion) IsQuincy() bool { return v.isRelease(Quincy) } +// IsReef checks if the Ceph version is Reef +func (v *CephVersion) IsReef() bool { + return v.isRelease(Reef) +} + // IsAtLeast checks a given Ceph version is at least a given one func (v *CephVersion) IsAtLeast(other CephVersion) bool { if v.Major > other.Major { @@ -202,6 +211,11 @@ func (v *CephVersion) IsAtLeast(other CephVersion) bool { return true } +// IsAtLeastReef check that the Ceph version is at least Reef +func (v *CephVersion) IsAtLeastReef() bool { + return v.IsAtLeast(Reef) +} + // IsAtLeastQuincy check that the Ceph version is at least Quincy func (v *CephVersion) IsAtLeastQuincy() bool { return v.IsAtLeast(Quincy) diff --git a/pkg/operator/ceph/version/version_test.go b/pkg/operator/ceph/version/version_test.go index fe65a299d..d99a55243 100644 --- a/pkg/operator/ceph/version/version_test.go +++ b/pkg/operator/ceph/version/version_test.go @@ -101,14 +101,17 @@ func TestSupported(t *testing.T) { for _, v := range supportedVersions { assert.True(t, v.Supported()) } + assert.False(t, Reef.Supported()) } func TestIsRelease(t *testing.T) { assert.True(t, Octopus.isRelease(Octopus)) assert.True(t, Pacific.isRelease(Pacific)) assert.True(t, Quincy.isRelease(Quincy)) + assert.True(t, Reef.isRelease(Reef)) assert.False(t, Pacific.isRelease(Octopus)) + assert.False(t, Reef.isRelease(Quincy)) OctopusUpdate := Octopus OctopusUpdate.Minor = 33 @@ -206,10 +209,11 @@ func TestCephVersion_Unsupported(t *testing.T) { fields fields want bool }{ - {"supported", fields{Major: 16, Minor: 2, Extra: 1, Build: 0}, false}, - {"supported", fields{Major: 15, Minor: 2, Extra: 1, Build: 0}, false}, - {"supported", fields{Major: 15, Minor: 2, Extra: 6, Build: 0}, false}, - {"unsupported", fields{Major: 17, Minor: 2, Extra: 0, Build: 0}, false}, + {"octopus", fields{Major: 15, Minor: 2, Extra: 1, Build: 0}, false}, + {"octopus", fields{Major: 15, Minor: 2, Extra: 6, Build: 0}, false}, + {"pacific", fields{Major: 16, Minor: 2, Extra: 1, Build: 0}, false}, + {"quincy", fields{Major: 17, Minor: 2, Extra: 0, Build: 0}, false}, + {"reef", fields{Major: 18, Minor: 2, Extra: 0, Build: 0}, false}, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {