Skip to content
This repository was archived by the owner on Oct 20, 2022. It is now read-only.

Commit ea00861

Browse files
authored
Merge pull request #375 from ibumarskov/master
Fix issue #374 with determining the cassandra version from image
2 parents 22d9b20 + 121355f commit ea00861

File tree

2 files changed

+33
-2
lines changed

2 files changed

+33
-2
lines changed

pkg/controller/cassandracluster/generator.go

+2-2
Original file line numberDiff line numberDiff line change
@@ -631,8 +631,8 @@ func initContainerEnvVar(cc *api.CassandraCluster, status *api.CassandraClusterS
631631
image := strings.Split(cc.Spec.CassandraImage, ":")
632632
serverVersion := cc.Spec.ServerVersion
633633
if serverVersion == "" {
634-
if len(image) == 2 {
635-
version := strings.Split(image[1], "-")
634+
if len(image) >= 2 {
635+
version := strings.Split(image[len(image)-1], "-")
636636
serverVersion = version[0]
637637
if len(version) != 1 {
638638
serverVersion += ".0"

pkg/controller/cassandracluster/generator_test.go

+31
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,15 @@ func helperInitCluster(t *testing.T, name string) (*ReconcileCassandraCluster, *
6565
return &rcc, &cc
6666
}
6767

68+
func GetEnvVarByName(envVars []v1.EnvVar, name string) *v1.EnvVar {
69+
for _, envVar := range envVars {
70+
if envVar.Name == name {
71+
return &envVar
72+
}
73+
}
74+
return nil
75+
}
76+
6877
func TestCreateNodeAffinity(t *testing.T) {
6978
assert := assert.New(t)
7079

@@ -330,6 +339,28 @@ func TestInitContainerConfigFileData(t *testing.T) {
330339
assert.Equal(configFileData.String(), initEnvVar[0].Value)
331340
}
332341

342+
func TestInitContainerServerVersionDetect(t *testing.T) {
343+
// Check of Cassandra version detection in case of different image formats
344+
dcName := "dc1"
345+
rackName := "rack1"
346+
dcRackName := fmt.Sprintf("%s-%s", dcName, rackName)
347+
348+
_, cc := helperInitCluster(t, "cassandracluster-1DC.yaml")
349+
imageTag := "1.0.0"
350+
images := []string{
351+
fmt.Sprintf("artifactory-name/repo/cassandra:%s", imageTag),
352+
fmt.Sprintf("artifactory-name:44301/repo/cassandra:%s", imageTag),
353+
}
354+
assert := assert.New(t)
355+
for _, image := range images {
356+
cc.Spec.CassandraImage = image
357+
cassieResources := cc.Spec.Resources
358+
initEnvVar := initContainerEnvVar(cc, &cc.Status, cassieResources, dcRackName)
359+
prodVer := GetEnvVarByName(initEnvVar, "PRODUCT_VERSION")
360+
assert.Equal(imageTag, prodVer.Value)
361+
}
362+
}
363+
333364
func TestGenerateCassandraStatefulSet(t *testing.T) {
334365
assert := assert.New(t)
335366
dcName := "dc1"

0 commit comments

Comments
 (0)