mirror of
https://github.com/zalando/postgres-operator.git
synced 2026-10-05 14:43:59 +02:00
Improvements
-handle rollingUpdate flag -modularize code -rename config parameter name
This commit is contained in:
@@ -6,6 +6,7 @@ import (
|
||||
"fmt"
|
||||
"path"
|
||||
"sort"
|
||||
"strconv"
|
||||
|
||||
"github.com/sirupsen/logrus"
|
||||
|
||||
@@ -1149,13 +1150,14 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||
}
|
||||
|
||||
annotations = make(map[string]string)
|
||||
annotations[rollingUpdateStatefulsetAnnotationKey] = strconv.FormatBool(false)
|
||||
|
||||
statefulSet := &appsv1.StatefulSet{
|
||||
ObjectMeta: metav1.ObjectMeta{
|
||||
Name: c.statefulSetName(),
|
||||
Namespace: c.Namespace,
|
||||
Labels: c.labelsSet(true),
|
||||
Annotations: annotations,
|
||||
Annotations: c.PropagateAnnotationsToStatefulsets(annotations),
|
||||
},
|
||||
Spec: appsv1.StatefulSetSpec{
|
||||
Replicas: &numberOfInstances,
|
||||
|
||||
+22
-15
@@ -331,21 +331,8 @@ func (c *Cluster) syncStatefulSet() error {
|
||||
}
|
||||
}
|
||||
}
|
||||
ToPropagateAnnotations := c.OpConfig.StatefulsetPropAnnotations
|
||||
PgCRDAnnotations := c.Postgresql.ObjectMeta.GetAnnotations()
|
||||
annotations := make(map[string]string)
|
||||
|
||||
if ToPropagateAnnotations != nil && PgCRDAnnotations != nil {
|
||||
for _, anno := range ToPropagateAnnotations {
|
||||
for k, v := range PgCRDAnnotations {
|
||||
matched, err := regexp.MatchString(anno, k)
|
||||
if err == nil && matched {
|
||||
annotations[k] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
c.updateStatefulSetAnnotations(annotations)
|
||||
}
|
||||
annotations := c.PropagateAnnotationsToStatefulsets(c.Statefulset.Annotations)
|
||||
c.updateStatefulSetAnnotations(annotations)
|
||||
}
|
||||
|
||||
// Apply special PostgreSQL parameters that can only be set via the Patroni API.
|
||||
@@ -370,6 +357,26 @@ func (c *Cluster) syncStatefulSet() error {
|
||||
return nil
|
||||
}
|
||||
|
||||
// PropagateAnnotationsToStatefulsets updates annotations to statefulsets if required
|
||||
// based on the annotations in postgres CRD
|
||||
func (c *Cluster) PropagateAnnotationsToStatefulsets(annotations map[string]string) map[string]string {
|
||||
ToPropagateAnnotations := c.OpConfig.StatefulsetPropagateAnnotations
|
||||
PgCRDAnnotations := c.Postgresql.ObjectMeta.GetAnnotations()
|
||||
|
||||
if ToPropagateAnnotations != nil && PgCRDAnnotations != nil {
|
||||
for _, anno := range ToPropagateAnnotations {
|
||||
for k, v := range PgCRDAnnotations {
|
||||
matched, err := regexp.MatchString(anno, k)
|
||||
if err == nil && matched {
|
||||
annotations[k] = v
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
return annotations
|
||||
|
||||
}
|
||||
|
||||
// checkAndSetGlobalPostgreSQLConfiguration checks whether cluster-wide API parameters
|
||||
// (like max_connections) has changed and if necessary sets it via the Patroni API
|
||||
func (c *Cluster) checkAndSetGlobalPostgreSQLConfiguration() error {
|
||||
|
||||
Reference in New Issue
Block a user