diff --git a/cmd/csi/init/builder.go b/cmd/csi/init/builder.go index 934921a257..9d9fc5198e 100644 --- a/cmd/csi/init/builder.go +++ b/cmd/csi/init/builder.go @@ -5,6 +5,7 @@ import ( dtcsi "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi" "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi/metadata" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/version" "github.com/pkg/errors" "github.com/spf13/afero" @@ -51,6 +52,7 @@ func (builder CommandBuilder) Build() *cobra.Command { func (builder CommandBuilder) buildRun() func(*cobra.Command, []string) error { return func(cmd *cobra.Command, args []string) error { unix.Umask(dtcsi.UnixUmask) + installconfig.ReadModules() version.LogVersion() logd.LogBaseLoggerSettings() diff --git a/cmd/csi/provisioner/builder.go b/cmd/csi/provisioner/builder.go index 9be1f83bfe..3e953c25f7 100644 --- a/cmd/csi/provisioner/builder.go +++ b/cmd/csi/provisioner/builder.go @@ -7,6 +7,7 @@ import ( "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi/metadata" csiprovisioner "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi/provisioner" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/version" "github.com/pkg/errors" "github.com/spf13/afero" @@ -105,6 +106,7 @@ func addFlags(cmd *cobra.Command) { func (builder CommandBuilder) buildRun() func(*cobra.Command, []string) error { return func(cmd *cobra.Command, args []string) error { unix.Umask(dtcsi.UnixUmask) + installconfig.ReadModules() version.LogVersion() logd.LogBaseLoggerSettings() diff --git a/cmd/csi/server/builder.go b/cmd/csi/server/builder.go index 524bb5436a..d26bca0887 100644 --- a/cmd/csi/server/builder.go +++ b/cmd/csi/server/builder.go @@ -7,6 +7,7 @@ import ( csidriver "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi/driver" "github.com/Dynatrace/dynatrace-operator/pkg/controllers/csi/metadata" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/version" "github.com/pkg/errors" "github.com/spf13/afero" @@ -108,6 +109,7 @@ func addFlags(cmd *cobra.Command) { func (builder CommandBuilder) buildRun() func(*cobra.Command, []string) error { return func(cmd *cobra.Command, args []string) error { unix.Umask(dtcsi.UnixUmask) + installconfig.ReadModules() version.LogVersion() logd.LogBaseLoggerSettings() diff --git a/cmd/operator/builder.go b/cmd/operator/builder.go index f6b3ae1b0e..adcd83be92 100644 --- a/cmd/operator/builder.go +++ b/cmd/operator/builder.go @@ -7,6 +7,7 @@ import ( cmdManager "github.com/Dynatrace/dynatrace-operator/cmd/manager" "github.com/Dynatrace/dynatrace-operator/pkg/controllers/certificates" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubeobjects/pod" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubesystem" "github.com/Dynatrace/dynatrace-operator/pkg/version" @@ -124,6 +125,7 @@ func (builder CommandBuilder) setClientFromConfig(kubeCfg *rest.Config) (Command func (builder CommandBuilder) buildRun() func(cmd *cobra.Command, args []string) error { return func(cmd *cobra.Command, args []string) error { + installconfig.ReadModules() version.LogVersion() logd.LogBaseLoggerSettings() diff --git a/cmd/support_archive/builder.go b/cmd/support_archive/builder.go index 297e05de7b..d505df8453 100644 --- a/cmd/support_archive/builder.go +++ b/cmd/support_archive/builder.go @@ -11,6 +11,7 @@ import ( "github.com/Dynatrace/dynatrace-operator/cmd/remote_command" "github.com/Dynatrace/dynatrace-operator/pkg/api/scheme" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubeobjects/env" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubeobjects/labels" "github.com/Dynatrace/dynatrace-operator/pkg/version" @@ -97,6 +98,7 @@ func (builder CommandBuilder) buildRun() func(*cobra.Command, []string) error { logBuffer := bytes.Buffer{} log := newSupportArchiveLogger(getLogOutput(archiveToStdoutFlagValue, &logBuffer)) + installconfig.ReadModulesToLogger(log) version.LogVersionToLogger(log) archiveTargetFile, err := createZipArchiveTargetFile(archiveToStdoutFlagValue, defaultSupportArchiveTargetDir) diff --git a/cmd/webhook/builder.go b/cmd/webhook/builder.go index 9ca9d7eb93..97277c698a 100644 --- a/cmd/webhook/builder.go +++ b/cmd/webhook/builder.go @@ -14,6 +14,7 @@ import ( dynakubevalidation "github.com/Dynatrace/dynatrace-operator/pkg/api/validation/dynakube" edgeconnectvalidation "github.com/Dynatrace/dynatrace-operator/pkg/api/validation/edgeconnect" "github.com/Dynatrace/dynatrace-operator/pkg/logd" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubeobjects/pod" "github.com/Dynatrace/dynatrace-operator/pkg/util/kubesystem" "github.com/Dynatrace/dynatrace-operator/pkg/version" @@ -120,6 +121,7 @@ func startCertificateWatcher(webhookManager manager.Manager, namespace string, p func (builder CommandBuilder) buildRun() func(*cobra.Command, []string) error { return func(cmd *cobra.Command, args []string) error { + installconfig.ReadModules() version.LogVersion() logd.LogBaseLoggerSettings() diff --git a/pkg/api/v1beta1/dynakube/convert_from.go b/pkg/api/v1beta1/dynakube/convert_from.go index 043e2265ea..2d08ca2d08 100644 --- a/pkg/api/v1beta1/dynakube/convert_from.go +++ b/pkg/api/v1beta1/dynakube/convert_from.go @@ -6,11 +6,10 @@ import ( "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta3/dynakube" "github.com/Dynatrace/dynatrace-operator/pkg/util/address" "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" + "k8s.io/utils/ptr" "sigs.k8s.io/controller-runtime/pkg/conversion" ) -var isEnabledModules = installconfig.GetModules() - // ConvertFrom converts v1beta3 to v1beta1. func (dst *DynaKube) ConvertFrom(srcRaw conversion.Hub) error { src := srcRaw.(*dynakube.DynaKube) @@ -60,7 +59,7 @@ func (dst *DynaKube) fromOneAgentSpec(src *dynakube.DynaKube) { dst.Spec.OneAgent.ApplicationMonitoring = &ApplicationMonitoringSpec{} dst.Spec.OneAgent.ApplicationMonitoring.AppInjectionSpec = *fromAppInjectSpec(src.Spec.OneAgent.ApplicationMonitoring.AppInjectionSpec) dst.Spec.OneAgent.ApplicationMonitoring.Version = src.Spec.OneAgent.ApplicationMonitoring.Version - dst.Spec.OneAgent.ApplicationMonitoring.UseCSIDriver = &isEnabledModules.CSIDriver + dst.Spec.OneAgent.ApplicationMonitoring.UseCSIDriver = ptr.To(installconfig.GetModules().CSIDriver) } } diff --git a/pkg/api/v1beta1/dynakube/convert_from_test.go b/pkg/api/v1beta1/dynakube/convert_from_test.go index 025c41d02e..44c90f49f7 100644 --- a/pkg/api/v1beta1/dynakube/convert_from_test.go +++ b/pkg/api/v1beta1/dynakube/convert_from_test.go @@ -9,6 +9,7 @@ import ( "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta3/dynakube" "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta3/dynakube/activegate" "github.com/Dynatrace/dynatrace-operator/pkg/util/address" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" registryv1 "github.com/google/go-containerregistry/pkg/v1" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -175,7 +176,7 @@ func compareCloudNativeSpec(t *testing.T, oldSpec CloudNativeFullStackSpec, newS func compareApplicationMonitoringSpec(t *testing.T, oldSpec ApplicationMonitoringSpec, newSpec dynakube.ApplicationMonitoringSpec) { compareAppInjectionSpec(t, oldSpec.AppInjectionSpec, newSpec.AppInjectionSpec) - assert.Equal(t, *oldSpec.UseCSIDriver, isEnabledModules.CSIDriver) + assert.Equal(t, *oldSpec.UseCSIDriver, installconfig.GetModules().CSIDriver) assert.Equal(t, oldSpec.Version, newSpec.Version) } diff --git a/pkg/api/v1beta2/dynakube/convert_from.go b/pkg/api/v1beta2/dynakube/convert_from.go index a866099c25..c39801e044 100644 --- a/pkg/api/v1beta2/dynakube/convert_from.go +++ b/pkg/api/v1beta2/dynakube/convert_from.go @@ -6,8 +6,6 @@ import ( "sigs.k8s.io/controller-runtime/pkg/conversion" ) -var isEnabledModules = installconfig.GetModules() - // ConvertFrom converts from the Hub version (v1beta3) to this version (v1beta3). func (dst *DynaKube) ConvertFrom(srcRaw conversion.Hub) error { src := srcRaw.(*v1beta3.DynaKube) @@ -55,7 +53,7 @@ func (dst *DynaKube) fromOneAgentSpec(src *v1beta3.DynaKube) { dst.Spec.OneAgent.ApplicationMonitoring = &ApplicationMonitoringSpec{} dst.Spec.OneAgent.ApplicationMonitoring.AppInjectionSpec = *fromAppInjectSpec(src.Spec.OneAgent.ApplicationMonitoring.AppInjectionSpec) dst.Spec.OneAgent.ApplicationMonitoring.Version = src.Spec.OneAgent.ApplicationMonitoring.Version - dst.Spec.OneAgent.ApplicationMonitoring.UseCSIDriver = isEnabledModules.CSIDriver + dst.Spec.OneAgent.ApplicationMonitoring.UseCSIDriver = installconfig.GetModules().CSIDriver } } diff --git a/pkg/api/v1beta2/dynakube/convert_from_test.go b/pkg/api/v1beta2/dynakube/convert_from_test.go index 50ea8678e4..96565762f5 100644 --- a/pkg/api/v1beta2/dynakube/convert_from_test.go +++ b/pkg/api/v1beta2/dynakube/convert_from_test.go @@ -9,6 +9,7 @@ import ( "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta3/dynakube" "github.com/Dynatrace/dynatrace-operator/pkg/api/v1beta3/dynakube/activegate" "github.com/Dynatrace/dynatrace-operator/pkg/util/address" + "github.com/Dynatrace/dynatrace-operator/pkg/util/installconfig" registryv1 "github.com/google/go-containerregistry/pkg/v1" "github.com/stretchr/testify/assert" "github.com/stretchr/testify/require" @@ -166,7 +167,7 @@ func compareCloudNativeSpec(t *testing.T, oldSpec CloudNativeFullStackSpec, newS func compareApplicationMonitoringSpec(t *testing.T, oldSpec ApplicationMonitoringSpec, newSpec dynakube.ApplicationMonitoringSpec) { compareAppInjectionSpec(t, oldSpec.AppInjectionSpec, newSpec.AppInjectionSpec) - assert.Equal(t, oldSpec.UseCSIDriver, isEnabledModules.CSIDriver) + assert.Equal(t, oldSpec.UseCSIDriver, installconfig.GetModules().CSIDriver) assert.Equal(t, oldSpec.Version, newSpec.Version) } diff --git a/pkg/util/installconfig/modules.go b/pkg/util/installconfig/modules.go index 312d415cdc..1e200c9eab 100644 --- a/pkg/util/installconfig/modules.go +++ b/pkg/util/installconfig/modules.go @@ -54,6 +54,16 @@ func GetModules() Modules { return *override } + ReadModules() + + return modules +} + +func ReadModules() { + ReadModulesToLogger(log) +} + +func ReadModulesToLogger(log logd.Logger) { once.Do(func() { modulesJson := os.Getenv(ModulesJsonEnv) if modulesJson == "" { @@ -71,8 +81,6 @@ func GetModules() Modules { log.Info("envvar content read and set", "envvar", ModulesJsonEnv, "value", modulesJson) }) - - return modules } // SetModulesOverride is a testing function, so you can easily unittest function using the GetModules() func