From 9973262b83507ccb16c097aef9ca56b35a1cbf4a Mon Sep 17 00:00:00 2001 From: Felix Kunde Date: Tue, 28 Feb 2023 09:14:22 +0100 Subject: [PATCH] sync stateful set when syncing streams during ADD event (#2245) --- pkg/cluster/cluster.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pkg/cluster/cluster.go b/pkg/cluster/cluster.go index 590fe6564..aa1a921df 100644 --- a/pkg/cluster/cluster.go +++ b/pkg/cluster/cluster.go @@ -370,16 +370,22 @@ func (c *Cluster) Create() error { // something fails, report warning c.createConnectionPooler(c.installLookupFunction) + // remember slots to detect deletion from manifest + for slotName, desiredSlot := range c.Spec.Patroni.Slots { + c.replicationSlots[slotName] = desiredSlot + } + if len(c.Spec.Streams) > 0 { + // creating streams requires syncing the statefulset first + err = c.syncStatefulSet() + if err != nil { + return fmt.Errorf("could not sync statefulset: %v", err) + } if err = c.syncStreams(); err != nil { c.logger.Errorf("could not create streams: %v", err) } } - for slotName, desiredSlot := range c.Spec.Patroni.Slots { - c.replicationSlots[slotName] = desiredSlot - } - return nil }