From a3306a7911e3c290f18515de840d113bdd844cdc Mon Sep 17 00:00:00 2001 From: Travis Nielsen Date: Thu, 5 May 2022 10:30:53 -0600 Subject: [PATCH] core: add reef version info Since Quincy is released, Ceph master builds will soon be tagged with the reef v18 version. This adds the capability for rook to check for the reef version of Ceph. Signed-off-by: Travis Nielsen --- pkg/operator/ceph/version/version.go | 14 ++++++++++++++ pkg/operator/ceph/version/version_test.go | 12 ++++++++---- 2 files changed, 22 insertions(+), 4 deletions(-) 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) {