diff --git a/pkg/actor/validate_version.go b/pkg/actor/validate_version.go index 99a350bc0..4e791e02f 100644 --- a/pkg/actor/validate_version.go +++ b/pkg/actor/validate_version.go @@ -82,6 +82,8 @@ func (v *versionChecker) Act(ctx context.Context, cluster *resource.Cluster, log log.Error(vErr, "The cockroachdb logging API value is set to a value that is not supported by the operator") return err } + } else { + log.V(DEBUGLEVEL).Info("logging API is not enabled") } log.V(DEBUGLEVEL).Info("starting to check the crdb version of the container provided") diff --git a/pkg/resource/cluster.go b/pkg/resource/cluster.go index cbbeb3b4b..4bce97605 100644 --- a/pkg/resource/cluster.go +++ b/pkg/resource/cluster.go @@ -358,7 +358,12 @@ func (cluster Cluster) IsLoggingAPIEnabled() bool { if cluster.Spec().CockroachDBVersion != "" { version = cluster.Spec().CockroachDBVersion } else if cluster.Spec().Image != nil && cluster.Spec().Image.Name != "" { - version = strings.Split(cluster.Spec().Image.Name, ":")[1] + split_result := strings.Split(cluster.Spec().Image.Name, ":") + if len(split_result) > 1 { + version = split_result[1] + } else { + return false + } } else { return false } diff --git a/pkg/resource/cluster_test.go b/pkg/resource/cluster_test.go index ea82ee860..a5dad30b6 100644 --- a/pkg/resource/cluster_test.go +++ b/pkg/resource/cluster_test.go @@ -85,3 +85,35 @@ func TestClusterTLSSecrets(t *testing.T) { }) } } + +func TestClusterImageName(t *testing.T) { + var ( + testCluster = "test-cluster" + testNS = "test-ns" + invalidImageName = "custom-image-name" + validImageName = "cockroachdb/cockroach:v20.1.4" + ) + clusterBuilder := testutil.NewBuilder(testCluster).Namespaced(testNS) + for _, tt := range []struct { + name string + cluster *resource.Cluster + imageName string + }{ + { + name: "verify image name without colon", + cluster: clusterBuilder.WithImage(invalidImageName).Cluster(), + imageName: invalidImageName, + }, + { + name: "verify image name with colon", + cluster: clusterBuilder.WithImage(validImageName).Cluster(), + imageName: validImageName, + }, + } { + t.Run(tt.name, func(t *testing.T) { + if tt.cluster.IsLoggingAPIEnabled() { + assert.Fail(t, "LoggingAPI should be disabled when image name does not contain colon") + } + }) + } +}