Skip to content

Commit

Permalink
Add workaround for cass-config-builder bug
Browse files Browse the repository at this point in the history
  • Loading branch information
burmanm committed Sep 18, 2024
1 parent da7654f commit 1a908f4
Show file tree
Hide file tree
Showing 4 changed files with 37 additions and 2 deletions.
1 change: 1 addition & 0 deletions .github/workflows/kindIntegTest.yml
Original file line number Diff line number Diff line change
Expand Up @@ -95,6 +95,7 @@ jobs:
with:
integration_test: ${{ matrix.integration_test }}
- name: Archive k8s logs
if: always()
uses: actions/upload-artifact@v4
with:
name: k8s-logs-smoke_test-${{ matrix.version }}
Expand Down
25 changes: 25 additions & 0 deletions pkg/reconciliation/construct_podtemplatespec.go
Original file line number Diff line number Diff line change
Expand Up @@ -555,6 +555,31 @@ func buildInitContainers(dc *api.CassandraDatacenter, rackName string, baseTempl
} else {
baseTemplate.Spec.InitContainers = append(baseTemplate.Spec.InitContainers, *configContainer)
}
} else if !dc.UseClientImage() && configContainerIndex < 0 && dc.ReadOnlyFs() && dc.Spec.ServerType == "dse" {
// Workaround for cass-config-builder, copy missing files
configContainer = &corev1.Container{
Name: ServerBaseConfigContainerName,
}

if configContainer.Image == "" {
serverImage, err := makeImage(dc)
if err != nil {
return err
}

configContainer.Image = serverImage
if images.GetImageConfig() != nil && images.GetImageConfig().ImagePullPolicy != "" {
configContainer.ImagePullPolicy = images.GetImageConfig().ImagePullPolicy
}

configContainer.Command = []string{"/bin/sh"}
configContainer.Args = []string{"-c", "cp -rf /opt/dse/resources/cassandra/conf/jvm-dependent.sh /config/"}

configContainer.VolumeMounts = combineVolumeMountSlices(configMounts, configContainer.VolumeMounts)
}
baseTemplate.Spec.InitContainers = append(baseTemplate.Spec.InitContainers, *serverCfg)
serverContainerIndex = len(baseTemplate.Spec.InitContainers) - 1
baseTemplate.Spec.InitContainers = append(baseTemplate.Spec.InitContainers, *configContainer)
}

if serverContainerIndex < 0 {
Expand Down
11 changes: 10 additions & 1 deletion pkg/reconciliation/construct_podtemplatespec_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -2145,8 +2145,9 @@ func TestReadOnlyRootFilesystemVolumeChangesDSE(t *testing.T) {
assert.NotNil(initContainers, "No init containers were found")
assert.NoError(err, "Unexpected error encountered")

assert.Len(initContainers, 1, "Unexpected number of init containers returned")
assert.Len(initContainers, 2, "Unexpected number of init containers returned")
assert.Equal(ServerConfigContainerName, initContainers[0].Name)
assert.Equal(ServerBaseConfigContainerName, initContainers[1].Name)

assert.True(reflect.DeepEqual(initContainers[0].VolumeMounts,
[]corev1.VolumeMount{
Expand All @@ -2156,6 +2157,14 @@ func TestReadOnlyRootFilesystemVolumeChangesDSE(t *testing.T) {
},
}), fmt.Sprintf("Unexpected volume mounts for the base config container: %v", initContainers[0].VolumeMounts))

assert.True(reflect.DeepEqual(initContainers[1].VolumeMounts,
[]corev1.VolumeMount{
{
Name: "server-config",
MountPath: "/config",
},
}), fmt.Sprintf("Unexpected volume mounts for the base config container: %v", initContainers[0].VolumeMounts))

containers := podTemplateSpec.Spec.Containers
assert.NotNil(containers, "No containers were found")
assert.NoError(err, "Unexpected error encountered")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ var _ = Describe(testName, func() {
k = kubectl.ApplyFiles(testFile)
ns.ExecAndLog(step, k)

ns.WaitForDatacenterReady(dcName)
ns.WaitForDatacenterReadyWithTimeouts(dcName, 360, 360)
ns.ExpectDoneReconciling(dcName)

step = "deleting the dc"
Expand Down

0 comments on commit 1a908f4

Please sign in to comment.