@@ -1200,26 +1200,32 @@ func (r *Reconciler) reconcileInstance(
12001200 spec , instanceCertificates , instanceConfigMap , & instance .Spec .Template )
12011201 }
12021202
1203+ // If either OpenTelemetry feature is enabled, we want to add the collector config to the pod
12031204 if err == nil &&
1204- (feature .Enabled (ctx , feature .OpenTelemetryLogs ) && ! feature .Enabled (ctx , feature .OpenTelemetryMetrics )) {
1205-
1206- // TODO: Setting the includeLogrotate argument to false for now. This
1207- // should be changed when we implement log rotation for postgres
1208- collector .AddToPod (ctx , cluster .Spec .Instrumentation , cluster .Spec .ImagePullPolicy , instanceConfigMap , & instance .Spec .Template .Spec ,
1209- []corev1.VolumeMount {postgres .DataVolumeMount ()}, "" , true )
1210- }
1211-
1212- if err == nil &&
1213- feature .Enabled (ctx , feature .OpenTelemetryMetrics ) {
1214-
1215- monitoringUserSecret := & corev1.Secret {ObjectMeta : naming .MonitoringUserSecret (cluster )}
1216- err = errors .WithStack (
1217- r .Client .Get (ctx , client .ObjectKeyFromObject (monitoringUserSecret ), monitoringUserSecret ))
1205+ (feature .Enabled (ctx , feature .OpenTelemetryLogs ) || feature .Enabled (ctx , feature .OpenTelemetryMetrics )) {
1206+
1207+ // If the OpenTelemetryMetrics feature is enabled, we need to get the pgpassword from the
1208+ // monitoring user secret
1209+ pgPassword := ""
1210+ if feature .Enabled (ctx , feature .OpenTelemetryMetrics ) {
1211+ monitoringUserSecret := & corev1.Secret {ObjectMeta : naming .MonitoringUserSecret (cluster )}
1212+ // Create new err variable to avoid abandoning the rest of the reconcile loop if there
1213+ // is an error getting the monitoring user secret
1214+ err := errors .WithStack (
1215+ r .Client .Get (ctx , client .ObjectKeyFromObject (monitoringUserSecret ), monitoringUserSecret ))
1216+ if err == nil {
1217+ pgPassword = string (monitoringUserSecret .Data ["password" ])
1218+ }
1219+ }
12181220
1219- if err == nil {
1220- collector .AddToPod (ctx , cluster .Spec .Instrumentation , cluster .Spec .ImagePullPolicy , instanceConfigMap , & instance .Spec .Template .Spec ,
1221- []corev1.VolumeMount {postgres .DataVolumeMount ()}, string (monitoringUserSecret .Data ["password" ]), false )
1221+ // If the OpenTelemetryLogging feature is enabled, we need to set includeLogrotate to true
1222+ includeLogrotate := false
1223+ if feature .Enabled (ctx , feature .OpenTelemetryLogs ) {
1224+ includeLogrotate = true
12221225 }
1226+
1227+ collector .AddToPod (ctx , cluster .Spec .Instrumentation , cluster .Spec .ImagePullPolicy , instanceConfigMap , & instance .Spec .Template .Spec ,
1228+ []corev1.VolumeMount {postgres .DataVolumeMount ()}, pgPassword , includeLogrotate )
12231229 }
12241230
12251231 // Add postgres-exporter to the instance Pod spec
@@ -1429,12 +1435,16 @@ func (r *Reconciler) reconcileInstanceConfigMap(
14291435 }
14301436 // If OTel logging is enabled, add logrotate config
14311437 if err == nil && otelConfig != nil && feature .Enabled (ctx , feature .OpenTelemetryLogs ) {
1432- logFilesToRotate := []string {
1438+ postgresFilesToRotate := []string {
14331439 postgres .LogDirectory () + "/postgresql.json" ,
14341440 postgres .LogDirectory () + "/postgresql.csv" ,
14351441 }
1436- err = collector .AddLogrotateConfig (ctx , cluster .Spec .Instrumentation , instanceConfigMap ,
1437- logFilesToRotate , collector .PostgresPostRotateScript )
1442+ postgresLogrotateConfig := collector.LogrotateConfig {
1443+ LogFiles : postgresFilesToRotate ,
1444+ PostrotateScript : collector .PostgresPostRotateScript ,
1445+ }
1446+ err = collector .AddLogrotateConfigs (ctx , cluster .Spec .Instrumentation , instanceConfigMap ,
1447+ []collector.LogrotateConfig {postgresLogrotateConfig })
14381448 }
14391449 if err == nil {
14401450 err = patroni .InstanceConfigMap (ctx , cluster , spec , instanceConfigMap )
0 commit comments