cloudnative-pg / cloudnative-pg/plugin-barman-cloud
feat: make operator log level configurable via Helm chart and plugin parameters
- Lingua principale
- Go
- Stelle
- 191
- Fork
- 72
- Merge medio
- 2g 21h
- PR unite (30g)
- 21
Descrizione
## Summary
The operator deployment currently has `--log-level=debug` hardcoded in its args (both in [`kubernetes/deployment.yaml`](https://github.com/cloudnative-pg/plugin-barman-cloud/blob/main/kubernetes/deployment.yaml) and the Helm chart template), and there is no way to tune log verbosity either globally or per cluster.
## Current behavior
The operator emits debug-level logs unconditionally. In a production environment with multiple clusters and frequent WAL archiving, this generates a significant volume of log entries (e.g. `generated patch`, lifecycle reconciliation details) that are not actionable and add noise to log aggregation systems (Loki, CloudWatch, etc.).
## Desired behavior
Two complementary levels of control:
**1. Global** — expose the log level as a configurable Helm value:
```yaml
# values.yaml
logLevel: info # default: info (or warn)
```
Wired into the deployment args as `--log-level={{ .Values.logLevel }}`.
**2. Per cluster** — allow overriding verbosity through the `plugins` parameters in the `Cluster` spec, so individual clusters can emit debug logs without affecting the rest:
```yaml
plugins:
- name: barman-cloud.cloudnative-pg.io
isWALArchiver: true
parameters:
barmanObjectName: my-store
logLevel: debug # optional, overrides the global default
```
Additionally, the default in `kubernetes/deployment.yaml` (used for non-Helm installations) should be updated from `debug` to `info`, since running with debug verbosity in production is not a sensible default regardless of the installation method.
## Alternatives considered
- Patching the Deployment directly — reverted on every sync when using GitOps tools like ArgoCD.
- Filtering at the log aggregation layer — works but hides a configuration gap.
## Environment
Helm chart `cnpg/plugin-barman-cloud` v0.6.0, operator image `v0.12.0`, ArgoCD with `selfHeal: true`.
Guida per i contributori
Apri la guida per i contributori
Direzione di ricerca
Start with kubernetes/deployment.yaml, values.yaml, and the Helm chart deployment template to trace how the operator log level is currently set. Then follow the Cluster plugins parameters handling for the per-cluster override. Done means non-Helm deployments default to info, Helm exposes a global logLevel, and a plugin parameter can override it for one cluster.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Valutazione
- Stack tecnologico
- go, helm, kubernetes
- Ambito
- devops, infrastructure
- Tipo di issue
- Funzionalità
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Stato di attività
- Tranquilla
- Chiarezza
- Abbastanza chiara
- Idoneità per principianti
- 55/100