do not create endpoints when use config maps (#1760)
* do not create endpoints when use config maps * delete cluster objects with 'leader' suffix Co-authored-by: Евграфов Александр Александрович <aevgrafov@cmx.ru>
This commit is contained in:
		
							parent
							
								
									7e92fa6cb0
								
							
						
					
					
						commit
						30f2ba6525
					
				|  | @ -43,7 +43,7 @@ var ( | ||||||
| 	alphaNumericRegexp    = regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9]*$") | 	alphaNumericRegexp    = regexp.MustCompile("^[a-zA-Z][a-zA-Z0-9]*$") | ||||||
| 	databaseNameRegexp    = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") | 	databaseNameRegexp    = regexp.MustCompile("^[a-zA-Z_][a-zA-Z0-9_]*$") | ||||||
| 	userRegexp            = regexp.MustCompile(`^[a-z0-9]([-_a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-_a-z0-9]*[a-z0-9])?)*$`) | 	userRegexp            = regexp.MustCompile(`^[a-z0-9]([-_a-z0-9]*[a-z0-9])?(\.[a-z0-9]([-_a-z0-9]*[a-z0-9])?)*$`) | ||||||
| 	patroniObjectSuffixes = []string{"config", "failover", "sync"} | 	patroniObjectSuffixes = []string{"config", "failover", "sync", "leader"} | ||||||
| ) | ) | ||||||
| 
 | 
 | ||||||
| // Config contains operator-wide clients and configuration used from a cluster. TODO: remove struct duplication.
 | // Config contains operator-wide clients and configuration used from a cluster. TODO: remove struct duplication.
 | ||||||
|  | @ -258,18 +258,20 @@ func (c *Cluster) Create() error { | ||||||
| 
 | 
 | ||||||
| 	for _, role := range []PostgresRole{Master, Replica} { | 	for _, role := range []PostgresRole{Master, Replica} { | ||||||
| 
 | 
 | ||||||
| 		if c.Endpoints[role] != nil { | 		if !c.patroniKubernetesUseConfigMaps() { | ||||||
| 			return fmt.Errorf("%s endpoint already exists in the cluster", role) | 			if c.Endpoints[role] != nil { | ||||||
| 		} | 				return fmt.Errorf("%s endpoint already exists in the cluster", role) | ||||||
| 		if role == Master { | 			} | ||||||
| 			// replica endpoint will be created by the replica service. Master endpoint needs to be created by us,
 | 			if role == Master { | ||||||
| 			// since the corresponding master service does not define any selectors.
 | 				// replica endpoint will be created by the replica service. Master endpoint needs to be created by us,
 | ||||||
| 			ep, err = c.createEndpoint(role) | 				// since the corresponding master service does not define any selectors.
 | ||||||
| 			if err != nil { | 				ep, err = c.createEndpoint(role) | ||||||
| 				return fmt.Errorf("could not create %s endpoint: %v", role, err) | 				if err != nil { | ||||||
|  | 					return fmt.Errorf("could not create %s endpoint: %v", role, err) | ||||||
|  | 				} | ||||||
|  | 				c.logger.Infof("endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta)) | ||||||
|  | 				c.eventRecorder.Eventf(c.GetReference(), v1.EventTypeNormal, "Endpoints", "Endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta)) | ||||||
| 			} | 			} | ||||||
| 			c.logger.Infof("endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta)) |  | ||||||
| 			c.eventRecorder.Eventf(c.GetReference(), v1.EventTypeNormal, "Endpoints", "Endpoint %q has been successfully created", util.NameFromMeta(ep.ObjectMeta)) |  | ||||||
| 		} | 		} | ||||||
| 
 | 
 | ||||||
| 		if c.Services[role] != nil { | 		if c.Services[role] != nil { | ||||||
|  | @ -1576,8 +1578,9 @@ func (c *Cluster) deletePatroniClusterObjects() error { | ||||||
| 
 | 
 | ||||||
| 	if !c.patroniKubernetesUseConfigMaps() { | 	if !c.patroniKubernetesUseConfigMaps() { | ||||||
| 		actionsList = append(actionsList, c.deletePatroniClusterEndpoints) | 		actionsList = append(actionsList, c.deletePatroniClusterEndpoints) | ||||||
|  | 	} else { | ||||||
|  | 		actionsList = append(actionsList, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps) | ||||||
| 	} | 	} | ||||||
| 	actionsList = append(actionsList, c.deletePatroniClusterServices, c.deletePatroniClusterConfigMaps) |  | ||||||
| 
 | 
 | ||||||
| 	c.logger.Debugf("removing leftover Patroni objects (endpoints / services and configmaps)") | 	c.logger.Debugf("removing leftover Patroni objects (endpoints / services and configmaps)") | ||||||
| 	for _, deleter := range actionsList { | 	for _, deleter := range actionsList { | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue