Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

feat: configurable plugin name, to run plugin versions side by side and upgrade in waves

Abierto
#1,151 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
18/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
go, kubernetes, postgresql

Línea de trabajo

Start with the constant internal/cnpgi/metadata.PluginName and the cnpg.io/pluginName Service annotation, which discovery and identity both rely on. Before coding, the maintainers need to agree on the design: a configurable name, per-instance RBAC and object keys, and a shared ObjectStore CRD. Done means two plugin deployments with different names can serve different Clusters without touching each other's objects.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Is your feature request related to a problem?

Upgrading the plugin restarts every Cluster that uses it at the same time. The sidecar image comes from the plugin deployment (SIDECAR_IMAGE), so a new plugin version changes the instance pod spec of every Cluster that references barman-cloud.cloudnative-pg.io, and the operator rolls all of them. On a test cluster this was a 41 s outage for single-instance Clusters and a 12 s switchover for HA ones, all within the same minutes. There's no in-place path for the sidecar, unlike the instance manager's ENABLE_INSTANCE_MANAGER_INPLACE_UPDATES.

Where many independent databases share one Kubernetes cluster, we'd like to roll a plugin upgrade out in waves, the way a Postgres minor version can be moved one ImageCatalog at a time. Today that isn't possible: the plugin's name is a constant (internal/cnpgi/metadata.PluginName), so two plugin deployments at different versions can't run side by side. ObjectStore.spec.instanceSidecarConfiguration sets env, resources, args and log level, but not the sidecar image.

Describe the solution you'd like

A configurable plugin name: a flag or env var on the plugin deployment, defaulting to barman-cloud.cloudnative-pg.io. Then several plugin deployments can run side by side (for example barman-cloud-w1.cloudnative-pg.io and barman-cloud-w2.cloudnative-pg.io, each with its own sidecar image). Each Cluster names the instance it uses in .spec.plugins[].name, and an upgrade moves one instance at a time.

Details we expect it would need:

  • The name used for plugin discovery (the Service's cnpg.io/pluginName annotation and the identity response) and the name the sidecar and operator compare against both come from that setting.
  • The RBAC and resources the plugin creates per Cluster are keyed so that two instances never manage the same Cluster's objects.
  • The ObjectStore CRD stays shared. Instances at different versions must accept the same CRD version, which is already the case for patch releases.
Describe alternatives you've considered
  • A sidecar image field on ObjectStore: per database rather than per wave, and a larger change.
  • Operator CLUSTERS_ROLLOUT_DELAY: spaces the restarts out, but it is one cluster-wide queue that can't be aligned with maintenance windows.
  • The in-tree barmanObjectStore: deprecated.
Additional context

We'd be glad to send a PR if the approach is acceptable.

Lenguaje dominante
Go
Estrellas
200
Forks
82
Merge medio
2 d 6 h
PR fusionados (30 d)
19

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de cloudnative-pg/plugin-barman-cloud

Todos los issues de cloudnative-pg/plugin-barman-cloud

Issues similares

Más issues de Go

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.