cloudnative-pg / cloudnative-pg/plugin-barman-cloud

feat: make operator log level configurable via Helm chart and plugin parameters

Ouverte
#917 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
enhancement
Langage dominant
Go
Étoiles
192
Forks
75
Merge moyen
1 j 16 h
PR mergées (30 j)
18

Description

## 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`.

Guide de contribution

Ouvrir le guide de contribution

Piste de recherche

Commencez par kubernetes/deployment.yaml, values.yaml et le modèle de déploiement du chart Helm afin de suivre la manière dont le niveau de journalisation de l’opérateur est actuellement défini. Suivez ensuite le traitement des paramètres des plugins de Cluster pour la surcharge par cluster. Le travail est terminé lorsque les déploiements sans Helm utilisent info par défaut, que Helm expose un logLevel global et qu’un paramètre de plugin peut le remplacer pour un seul cluster.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
go, helm, kubernetes
Domaine
devops, infrastructure
Type d'issue
Fonctionnalité
Difficulté
4/5
Temps estimé
3-5 jours
Activité
Calme
Clarté
Plutôt claire
Accessibilité débutants
55/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.