From bf0aa1ec8d91ddfca83b374f2a5862547f4ffba1 Mon Sep 17 00:00:00 2001 From: Mitch Murphy Date: Fri, 5 Jun 2026 13:52:04 -0400 Subject: [PATCH] feat(crd): mirror connection_pooler generate-config fields in OperatorConfiguration --- .../v1/operator_configuration_type.go | 5 +++++ .../acid.zalan.do/v1/zz_generated.deepcopy.go | 15 +++++++++++++++ pkg/controller/operator_config.go | 12 ++++++++++++ 3 files changed, 32 insertions(+) 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 0087e5850..ab4f451c4 100644 --- a/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go +++ b/pkg/apis/acid.zalan.do/v1/operator_configuration_type.go @@ -220,6 +220,11 @@ type ConnectionPoolerConfiguration struct { DefaultMemoryRequest string `json:"connection_pooler_default_memory_request,omitempty"` DefaultCPULimit string `json:"connection_pooler_default_cpu_limit,omitempty"` DefaultMemoryLimit string `json:"connection_pooler_default_memory_limit,omitempty"` + GenerateConfig *bool `json:"connection_pooler_generate_config,omitempty"` + Command []string `json:"connection_pooler_command,omitempty"` + Args []string `json:"connection_pooler_args,omitempty"` + AuthType string `json:"connection_pooler_auth_type,omitempty"` + ConfigPath string `json:"connection_pooler_config_path,omitempty"` } // OperatorLogicalBackupConfiguration defines configuration for logical backup diff --git a/pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go b/pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go index 3fdc31fa7..eb3ab2d60 100644 --- a/pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go +++ b/pkg/apis/acid.zalan.do/v1/zz_generated.deepcopy.go @@ -142,6 +142,21 @@ func (in *ConnectionPoolerConfiguration) DeepCopyInto(out *ConnectionPoolerConfi *out = new(int32) **out = **in } + if in.GenerateConfig != nil { + in, out := &in.GenerateConfig, &out.GenerateConfig + *out = new(bool) + **out = **in + } + if in.Command != nil { + in, out := &in.Command, &out.Command + *out = make([]string, len(*in)) + copy(*out, *in) + } + if in.Args != nil { + in, out := &in.Args, &out.Args + *out = make([]string, len(*in)) + copy(*out, *in) + } return } diff --git a/pkg/controller/operator_config.go b/pkg/controller/operator_config.go index e304c14a5..04543364f 100644 --- a/pkg/controller/operator_config.go +++ b/pkg/controller/operator_config.go @@ -291,5 +291,17 @@ func (c *Controller) importConfigurationFromCRD(fromCRD *acidv1.OperatorConfigur fromCRD.ConnectionPooler.MaxDBConnections, k8sutil.Int32ToPointer(constants.ConnectionPoolerMaxDBConnections)) + if fromCRD.ConnectionPooler.GenerateConfig != nil { + result.ConnectionPooler.GenerateConfig = *fromCRD.ConnectionPooler.GenerateConfig + } + result.ConnectionPooler.Command = fromCRD.ConnectionPooler.Command + result.ConnectionPooler.Args = util.CoalesceStrArr( + fromCRD.ConnectionPooler.Args, + []string{"/etc/pgbouncer/pgbouncer.ini"}) + result.ConnectionPooler.AuthType = util.Coalesce( + fromCRD.ConnectionPooler.AuthType, "scram-sha-256") + result.ConnectionPooler.ConfigPath = util.Coalesce( + fromCRD.ConnectionPooler.ConfigPath, "/etc/pgbouncer/pgbouncer.ini") + return result }