You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
feat: reload CNPG-i plugins automatically when their pods are rolled (cloudnative-pg#10836)
Previously, after upgrading a CNPG-i plugin (re-applying its manifest
with a new image), the operator kept talking to the plugin through the
connection it had opened during the most recent reconciliation. Clusters
using that plugin would not see the new version until something else
triggered a reconcile (a spec change, the periodic resync, or an
operator restart), which could leave clusters running against an old
plugin implementation for a long time (up to 10 hours, the default cache
resync period).
With this change, the operator watches the EndpointSlices that back
CNPG-i plugin Services in the operator namespace. When the plugin
Deployment finishes rolling out and the new Pods become Ready, the
EndpointSlice changes and every cluster using that plugin is enqueued
for reconciliation, ensuring the operator interacts with the updated
plugin promptly.
A new field index on Cluster (".spec.usedPlugins") is used to look up
all clusters affected by a given plugin without scanning the full
cluster list on every EndpointSlice event.
Signed-off-by: Leonardo Cecchi <leonardo.cecchi@enterprisedb.com>
Signed-off-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: Armando Ruocco <armando.ruocco@enterprisedb.com>
Co-authored-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
Co-authored-by: Gabriele Fedi <gabriele.fedi@enterprisedb.com>
(cherry picked from commit ec3305d)
Signed-off-by: Marco Nenciarini <marco.nenciarini@enterprisedb.com>
0 commit comments