Skip to content

Commit 30f2ba6

Browse files
evsashaЕвграфов Александр Александрович
andauthored
do not create endpoints when use config maps (zalando#1760)
* do not create endpoints when use config maps * delete cluster objects with 'leader' suffix Co-authored-by: Евграфов Александр Александрович <[email protected]>
1 parent 7e92fa6 commit 30f2ba6

File tree

1 file changed

+16
-13
lines changed

1 file changed

+16
-13
lines changed

pkg/cluster/cluster.go

Lines changed: 16 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ var (
4343
alphaNumericRegexp = regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9]*$")
4444
databaseNameRegexp = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$")
4545
userRegexp = regexp.MustCompile(`^[a-z0-9]([-_a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-_a-z0-9]*[a-z0-9])?)*$`)
46-
patroniObjectSuffixes = []string{"config", "failover", "sync"}
46+
patroniObjectSuffixes = []string{"config", "failover", "sync", "leader"}
4747
)
4848

4949
// Config contains operator-wide clients and configuration used from a cluster. TODO: remove struct duplication.
@@ -258,18 +258,20 @@ func (c *Cluster) Create() error {
258258

259259
for _, role := range []PostgresRole{Master, Replica} {
260260

261-
if c.Endpoints[role] != nil {
262-
return fmt.Errorf("%s endpoint already exists in the cluster", role)
263-
}
264-
if role == Master {
265-
// replica endpoint will be created by the replica service. Master endpoint needs to be created by us,
266-
// since the corresponding master service does not define any selectors.
267-
ep, err = c.createEndpoint(role)
268-
if err != nil {
269-
return fmt.Errorf("could not create %s endpoint: %v", role, err)
261+
if !c.patroniKubernetesUseConfigMaps() {
262+
if c.Endpoints[role] != nil {
263+
return fmt.Errorf("%s endpoint already exists in the cluster", role)
264+
}
265+
if role == Master {
266+
// replica endpoint will be created by the replica service. Master endpoint needs to be created by us,
267+
// since the corresponding master service does not define any selectors.
268+
ep, err = c.createEndpoint(role)
269+
if err != nil {
270+
return fmt.Errorf("could not create %s endpoint: %v", role, err)
271+
}
272+
c.logger.Infof("endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta))
273+
c.eventRecorder.Eventf(c.GetReference(), v1.EventTypeNormal, "Endpoints", "Endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta))
270274
}
271-
c.logger.Infof("endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta))
272-
c.eventRecorder.Eventf(c.GetReference(), v1.EventTypeNormal, "Endpoints", "Endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta))
273275
}
274276

275277
if c.Services[role] != nil {
@@ -1576,8 +1578,9 @@ func (c *Cluster) deletePatroniClusterObjects() error {
15761578

15771579
if !c.patroniKubernetesUseConfigMaps() {
15781580
actionsList = append(actionsList, c.deletePatroniClusterEndpoints)
1581+
} else {
1582+
actionsList = append(actionsList, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps)
15791583
}
1580-
actionsList = append(actionsList, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps)
15811584

15821585
c.logger.Debugf("removing leftover Patroni objects (endpoints / services and configmaps)")
15831586
for _, deleter := range actionsList {

0 commit comments

Comments
 (0)