set wal_level config not on empty parameters map (#2189)
* set wal_level config not on empty parameters map * UPDATE event must trigger statefulSet sync when streams are added
This commit is contained in:
parent
b9165190e1
commit
7887ebbbce
|
|
@ -836,6 +836,11 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
|
||||||
c.logger.Infof("Storage resize is disabled (storage_resize_mode is off). Skipping volume sync.")
|
c.logger.Infof("Storage resize is disabled (storage_resize_mode is off). Skipping volume sync.")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// streams configuration
|
||||||
|
if len(oldSpec.Spec.Streams) == 0 && len(newSpec.Spec.Streams) > 0 {
|
||||||
|
syncStatefulSet = true
|
||||||
|
}
|
||||||
|
|
||||||
// Statefulset
|
// Statefulset
|
||||||
func() {
|
func() {
|
||||||
oldSs, err := c.generateStatefulSet(&oldSpec.Spec)
|
oldSs, err := c.generateStatefulSet(&oldSpec.Spec)
|
||||||
|
|
@ -851,6 +856,7 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
|
||||||
updateFailed = true
|
updateFailed = true
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
if syncStatefulSet || !reflect.DeepEqual(oldSs, newSs) {
|
if syncStatefulSet || !reflect.DeepEqual(oldSs, newSs) {
|
||||||
c.logger.Debugf("syncing statefulsets")
|
c.logger.Debugf("syncing statefulsets")
|
||||||
syncStatefulSet = false
|
syncStatefulSet = false
|
||||||
|
|
@ -942,6 +948,7 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error {
|
||||||
updateFailed = true
|
updateFailed = true
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// streams
|
||||||
if len(newSpec.Spec.Streams) > 0 {
|
if len(newSpec.Spec.Streams) > 0 {
|
||||||
if err := c.syncStreams(); err != nil {
|
if err := c.syncStreams(); err != nil {
|
||||||
c.logger.Errorf("could not sync streams: %v", err)
|
c.logger.Errorf("could not sync streams: %v", err)
|
||||||
|
|
@ -1034,7 +1041,7 @@ func (c *Cluster) Delete() {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//NeedsRepair returns true if the cluster should be included in the repair scan (based on its in-memory status).
|
// NeedsRepair returns true if the cluster should be included in the repair scan (based on its in-memory status).
|
||||||
func (c *Cluster) NeedsRepair() (bool, acidv1.PostgresStatus) {
|
func (c *Cluster) NeedsRepair() (bool, acidv1.PostgresStatus) {
|
||||||
c.specMu.RLock()
|
c.specMu.RLock()
|
||||||
defer c.specMu.RUnlock()
|
defer c.specMu.RUnlock()
|
||||||
|
|
|
||||||
|
|
@ -403,7 +403,10 @@ func (c *Cluster) syncStatefulSet() error {
|
||||||
c.logger.Warnf("could not get list of pods to apply PostgreSQL parameters only to be set via Patroni API: %v", err)
|
c.logger.Warnf("could not get list of pods to apply PostgreSQL parameters only to be set via Patroni API: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
requiredPgParameters := c.Spec.Parameters
|
requiredPgParameters := make(map[string]string)
|
||||||
|
for k, v := range c.Spec.Parameters {
|
||||||
|
requiredPgParameters[k] = v
|
||||||
|
}
|
||||||
// if streams are defined wal_level must be switched to logical
|
// if streams are defined wal_level must be switched to logical
|
||||||
if len(c.Spec.Streams) > 0 {
|
if len(c.Spec.Streams) > 0 {
|
||||||
requiredPgParameters["wal_level"] = "logical"
|
requiredPgParameters["wal_level"] = "logical"
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue