@@ -44,8 +44,9 @@ func (r *Reconciler) reconcilePGBouncer(
4444 secret , err = r .reconcilePGBouncerSecret (ctx , cluster , root , service )
4545 }
4646 if err == nil {
47- config := collector .NewConfigForPgBouncerPod (ctx , cluster , pgbouncer .PostgresqlUser )
48- configmap , err = r .reconcilePGBouncerConfigMap (ctx , cluster , config )
47+ logfile := setPGBouncerLogfile (ctx , cluster )
48+ config := collector .NewConfigForPgBouncerPod (ctx , cluster , pgbouncer .PostgresqlUser , logfile )
49+ configmap , err = r .reconcilePGBouncerConfigMap (ctx , cluster , config , logfile )
4950 }
5051 if err == nil {
5152 err = r .reconcilePGBouncerDeployment (ctx , cluster , primaryCertificate , configmap , secret )
@@ -59,13 +60,28 @@ func (r *Reconciler) reconcilePGBouncer(
5960 return err
6061}
6162
63+ // setPGBouncerLogfile retrieves the logfile config if present in the user config.
64+ // If not present, set to the OTEL default.
65+ // If OTEL is not enabled, we do not use this value.
66+ // TODO: Check INI config files specified on the cluster
67+ func setPGBouncerLogfile (ctx context.Context , cluster * v1beta1.PostgresCluster ) string {
68+ logfile := naming .PGBouncerFullLogPath
69+
70+ if dest , ok := cluster .Spec .Proxy .PGBouncer .Config .Global ["logfile" ]; ok {
71+ logfile = dest
72+ }
73+
74+ return logfile
75+ }
76+
6277// +kubebuilder:rbac:groups="",resources="configmaps",verbs={get}
6378// +kubebuilder:rbac:groups="",resources="configmaps",verbs={create,delete,patch}
6479
6580// reconcilePGBouncerConfigMap writes the ConfigMap for a PgBouncer Pod.
6681func (r * Reconciler ) reconcilePGBouncerConfigMap (
6782 ctx context.Context , cluster * v1beta1.PostgresCluster ,
6883 otelConfig * collector.Config ,
84+ logfile string ,
6985) (* corev1.ConfigMap , error ) {
7086 configmap := & corev1.ConfigMap {ObjectMeta : naming .ClusterPGBouncer (cluster )}
7187 configmap .SetGroupVersionKind (corev1 .SchemeGroupVersion .WithKind ("ConfigMap" ))
@@ -104,7 +120,7 @@ func (r *Reconciler) reconcilePGBouncerConfigMap(
104120 // If OTel logging is enabled, add logrotate config
105121 if err == nil && collector .OpenTelemetryLogsEnabled (ctx , cluster ) {
106122 logrotateConfig := collector.LogrotateConfig {
107- LogFiles : []string {naming . PGBouncerFullLogPath },
123+ LogFiles : []string {logfile },
108124 PostrotateScript : collector .PGBouncerPostRotateScript ,
109125 }
110126 collector .AddLogrotateConfigs (ctx , cluster .Spec .Instrumentation , configmap ,
0 commit comments