merge with master plus minor fix
This commit is contained in:
commit
154d70a456
|
|
@ -1191,7 +1191,7 @@ func (c *Cluster) generateStatefulSet(spec *acidv1.PostgresSpec) (*appsv1.Statef
|
||||||
Name: c.statefulSetName(),
|
Name: c.statefulSetName(),
|
||||||
Namespace: c.Namespace,
|
Namespace: c.Namespace,
|
||||||
Labels: c.labelsSet(true),
|
Labels: c.labelsSet(true),
|
||||||
Annotations: c.PropagateAnnotationsToStatefulsets(annotations),
|
Annotations: c.AnnotationsToPropagate(annotations),
|
||||||
},
|
},
|
||||||
Spec: appsv1.StatefulSetSpec{
|
Spec: appsv1.StatefulSetSpec{
|
||||||
Replicas: &numberOfInstances,
|
Replicas: &numberOfInstances,
|
||||||
|
|
|
||||||
|
|
@ -853,3 +853,24 @@ func (c *Cluster) updateConnectionPoolerDeployment(oldDeploymentSpec, newDeploym
|
||||||
|
|
||||||
return deployment, nil
|
return deployment, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//updateConnectionPoolerAnnotations updates the annotations of connection pooler deployment
|
||||||
|
func (c *Cluster) updateConnectionPoolerAnnotations(annotations map[string]string) (*appsv1.Deployment, error) {
|
||||||
|
c.logger.Debugf("updating connection pooler annotations")
|
||||||
|
patchData, err := metaAnnotationsPatch(annotations)
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not form patch for the deployment metadata: %v", err)
|
||||||
|
}
|
||||||
|
result, err := c.KubeClient.Deployments(c.ConnectionPooler.Deployment.Namespace).Patch(
|
||||||
|
context.TODO(),
|
||||||
|
c.ConnectionPooler.Deployment.Name,
|
||||||
|
types.MergePatchType,
|
||||||
|
[]byte(patchData),
|
||||||
|
metav1.PatchOptions{},
|
||||||
|
"")
|
||||||
|
if err != nil {
|
||||||
|
return nil, fmt.Errorf("could not patch conenction pooler annotations %q: %v", patchData, err)
|
||||||
|
}
|
||||||
|
return result, nil
|
||||||
|
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -353,8 +353,7 @@ func (c *Cluster) syncStatefulSet() error {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
annotations := c.AnnotationsToPropagate(c.Statefulset.Annotations)
|
||||||
annotations := c.PropagateAnnotationsToStatefulsets(c.Statefulset.Annotations)
|
|
||||||
c.updateStatefulSetAnnotations(annotations)
|
c.updateStatefulSetAnnotations(annotations)
|
||||||
|
|
||||||
if !podsRollingUpdateRequired && !c.OpConfig.EnableLazySpiloUpgrade {
|
if !podsRollingUpdateRequired && !c.OpConfig.EnableLazySpiloUpgrade {
|
||||||
|
|
@ -395,9 +394,9 @@ func (c *Cluster) syncStatefulSet() error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
// PropagateAnnotationsToStatefulsets updates annotations to statefulsets if required
|
// AnnotationsToPropagate get the annotations to update if required
|
||||||
// based on the annotations in postgres CRD
|
// based on the annotations in postgres CRD
|
||||||
func (c *Cluster) PropagateAnnotationsToStatefulsets(annotations map[string]string) map[string]string {
|
func (c *Cluster) AnnotationsToPropagate(annotations map[string]string) map[string]string {
|
||||||
ToPropagateAnnotations := c.OpConfig.StatefulsetPropagateAnnotations
|
ToPropagateAnnotations := c.OpConfig.StatefulsetPropagateAnnotations
|
||||||
PgCRDAnnotations := c.Postgresql.ObjectMeta.GetAnnotations()
|
PgCRDAnnotations := c.Postgresql.ObjectMeta.GetAnnotations()
|
||||||
|
|
||||||
|
|
@ -405,14 +404,18 @@ func (c *Cluster) PropagateAnnotationsToStatefulsets(annotations map[string]stri
|
||||||
for _, anno := range ToPropagateAnnotations {
|
for _, anno := range ToPropagateAnnotations {
|
||||||
for k, v := range PgCRDAnnotations {
|
for k, v := range PgCRDAnnotations {
|
||||||
matched, err := regexp.MatchString(anno, k)
|
matched, err := regexp.MatchString(anno, k)
|
||||||
if err == nil && matched {
|
if err != nil {
|
||||||
|
c.logger.Errorf("annotations matching issue: %v", err)
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
if matched {
|
||||||
annotations[k] = v
|
annotations[k] = v
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return annotations
|
|
||||||
|
|
||||||
|
return annotations
|
||||||
}
|
}
|
||||||
|
|
||||||
// checkAndSetGlobalPostgreSQLConfiguration checks whether cluster-wide API parameters
|
// checkAndSetGlobalPostgreSQLConfiguration checks whether cluster-wide API parameters
|
||||||
|
|
@ -841,6 +844,11 @@ func (c *Cluster) syncConnectionPoolerWorker(oldSpec, newSpec *acidv1.Postgresql
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
newAnnotations := c.AnnotationsToPropagate(c.ConnectionPooler.Deployment.Annotations)
|
||||||
|
if newAnnotations != nil {
|
||||||
|
c.updateConnectionPoolerAnnotations(newAnnotations)
|
||||||
|
}
|
||||||
|
|
||||||
service, err := c.KubeClient.
|
service, err := c.KubeClient.
|
||||||
Services(c.Namespace).
|
Services(c.Namespace).
|
||||||
Get(context.TODO(), c.connectionPoolerName(), metav1.GetOptions{})
|
Get(context.TODO(), c.connectionPoolerName(), metav1.GetOptions{})
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue