Commit 990dc64
authored
feat(cluster): expose replicationSlots on the CNPG Cluster (#877)
Surfaces CloudNativePG's `spec.replicationSlots` on the cluster chart so
chart users can enable synchronization of user-created logical
replication slots between the primary and standbys. With PostgreSQL 17+
failover slots, this lets CDC consumers (e.g. Debezium) survive a CNPG
failover without losing the slot.
To make logical decoding slots survive failover, users must:
- enable `cluster.replicationSlots.highAvailability.synchronizeLogicalDecoding`
- set `cluster.postgresql.parameters.hot_standby_feedback: "on"`
- set `cluster.postgresql.parameters.sync_replication_slots: "on"`
- create the CDC client's logical slot with `failover = true`
Requires CloudNativePG 1.27+ and PostgreSQL 17+ for native failover
slots. The block is omitted entirely when the value is empty, so
existing deployments are unaffected.
The non-default-configuration chainsaw test is extended with a
`replicationSlots` block and the matching PostgreSQL parameters, and
asserts they appear verbatim on the rendered Cluster CR.
Signed-off-by: Philippe Noël <philippemnoel@gmail.com>1 parent 3c89afd commit 990dc64
6 files changed
Lines changed: 41 additions & 0 deletions
File tree
- charts/cluster
- templates
- test/postgresql-cluster-configuration
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
195 | 195 | | |
196 | 196 | | |
197 | 197 | | |
| 198 | + | |
198 | 199 | | |
199 | 200 | | |
200 | 201 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
101 | 101 | | |
102 | 102 | | |
103 | 103 | | |
| 104 | + | |
| 105 | + | |
| 106 | + | |
| 107 | + | |
| 108 | + | |
104 | 109 | | |
105 | 110 | | |
106 | 111 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
12 | 12 | | |
13 | 13 | | |
14 | 14 | | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
15 | 21 | | |
16 | 22 | | |
17 | 23 | | |
| |||
23 | 29 | | |
24 | 30 | | |
25 | 31 | | |
| 32 | + | |
26 | 33 | | |
| 34 | + | |
27 | 35 | | |
28 | 36 | | |
29 | 37 | | |
| |||
Lines changed: 8 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
87 | 87 | | |
88 | 88 | | |
89 | 89 | | |
| 90 | + | |
| 91 | + | |
| 92 | + | |
| 93 | + | |
| 94 | + | |
| 95 | + | |
90 | 96 | | |
91 | 97 | | |
92 | 98 | | |
| |||
98 | 104 | | |
99 | 105 | | |
100 | 106 | | |
| 107 | + | |
101 | 108 | | |
| 109 | + | |
102 | 110 | | |
103 | 111 | | |
104 | 112 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
510 | 510 | | |
511 | 511 | | |
512 | 512 | | |
| 513 | + | |
| 514 | + | |
| 515 | + | |
| 516 | + | |
| 517 | + | |
513 | 518 | | |
514 | 519 | | |
515 | 520 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
390 | 390 | | |
391 | 391 | | |
392 | 392 | | |
| 393 | + | |
| 394 | + | |
| 395 | + | |
| 396 | + | |
| 397 | + | |
| 398 | + | |
| 399 | + | |
| 400 | + | |
| 401 | + | |
| 402 | + | |
| 403 | + | |
| 404 | + | |
| 405 | + | |
| 406 | + | |
393 | 407 | | |
394 | 408 | | |
395 | 409 | | |
| |||
0 commit comments