From ce7a115d4e4797904a11f92fc78eb6a3f479c1bf Mon Sep 17 00:00:00 2001 From: Raphael Torquato <89878688+raphaeltorquat0@users.noreply.github.com> Date: Sun, 26 Apr 2026 12:33:58 -0300 Subject: [PATCH] Fix bool config defaults when using OperatorConfiguration CRD When using OperatorConfiguration CRD, boolean fields with default value of `true` (like `enable_database_access` and `debug_logging`) were incorrectly defaulting to `false` when not explicitly specified. This happened because Go initializes bool fields to `false`, and there was no coalesce logic to apply the intended defaults. The fix changes the CRD type fields from `bool` to `*bool` (pointer), allowing us to distinguish between "not specified" (nil) and "explicitly set to false". Then we use the existing `CoalesceBool` utility function to apply the correct defaults. Fixes #2575 --- pkg/apis/acid.zalan.do/v1/operator_configuration_type.go | 4 ++-- pkg/controller/operator_config.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go b/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go index 453d618d3..0948ac2b8 100644 --- a/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go +++ b/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go @@ -167,8 +167,8 @@ type AWSGCPConfiguration struct { // OperatorDebugConfiguration defines options for the debug mode type OperatorDebugConfiguration struct { - DebugLogging bool `json:"debug_logging,omitempty"` - EnableDBAccess bool `json:"enable_database_access,omitempty"` + DebugLogging *bool `json:"debug_logging,omitempty"` + EnableDBAccess *bool `json:"enable_database_access,omitempty"` } // TeamsAPIConfiguration defines the configuration of TeamsAPI diff --git a/pkg/controller/operator_config.go b/pkg/controller/operator_config.go index 0a458618b..faf8d990f 100644 --- a/pkg/controller/operator_config.go +++ b/pkg/controller/operator_config.go @@ -214,8 +214,8 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur result.LogicalBackupMemoryLimit = fromCRD.LogicalBackup.MemoryLimit // debug config - result.DebugLogging = fromCRD.OperatorDebug.DebugLogging - result.EnableDBAccess = fromCRD.OperatorDebug.EnableDBAccess + result.DebugLogging = *util.CoalesceBool(fromCRD.OperatorDebug.DebugLogging, util.True()) + result.EnableDBAccess = *util.CoalesceBool(fromCRD.OperatorDebug.EnableDBAccess, util.True()) // Teams API config result.EnableTeamsAPI = fromCRD.TeamsAPI.EnableTeamsAPI