diff --git a/pkg/operator/ceph/cluster/version.go b/pkg/operator/ceph/cluster/version.go index fde92d49d5b4..9a58b24b14de 100644 --- a/pkg/operator/ceph/cluster/version.go +++ b/pkg/operator/ceph/cluster/version.go @@ -109,7 +109,8 @@ func diffImageSpecAndClusterRunningVersion(imageSpecVersion cephver.CephVersion, } if cephver.IsInferior(imageSpecVersion, clusterRunningVersion) { - return true, errors.Errorf("image spec version %s is lower than the running cluster version %s, downgrading is not supported", imageSpecVersion.String(), clusterRunningVersion.String()) + logger.Warningf("image spec version %s is lower than the running cluster version %s, downgrading is not supported", imageSpecVersion.String(), clusterRunningVersion.String()) + return true, nil } } } diff --git a/pkg/operator/ceph/cluster/version_test.go b/pkg/operator/ceph/cluster/version_test.go index 81a587c12300..628ea49166cd 100755 --- a/pkg/operator/ceph/cluster/version_test.go +++ b/pkg/operator/ceph/cluster/version_test.go @@ -76,8 +76,9 @@ func TestDiffImageSpecAndClusterRunningVersion(t *testing.T) { err = json.Unmarshal([]byte(fakeRunningVersions), &dummyRunningVersions3) assert.NoError(t, err) + // Allow the downgrade m, err = diffImageSpecAndClusterRunningVersion(fakeImageVersion, dummyRunningVersions3) - assert.Error(t, err) + assert.NoError(t, err) assert.True(t, m) // 4 test - spec version is higher than running cluster --> we upgrade