Sync sts at pgversion upgrade (#1256)
When pgversion is updated to a higher major version number, sync statefulSets also. Co-authored-by: Rafia Sabih <rafia.sabih@zalando.de>
This commit is contained in:
		
							parent
							
								
									5076e669cb
								
							
						
					
					
						commit
						f28706e940
					
				|  | @ -596,6 +596,7 @@ func (c *Cluster) enforceMinResourceLimits(spec *acidv1.PostgresSpec) error { | ||||||
| // for a cluster that had no such job before. In this case a missing job is not an error.
 | // for a cluster that had no such job before. In this case a missing job is not an error.
 | ||||||
| func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error { | func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error { | ||||||
| 	updateFailed := false | 	updateFailed := false | ||||||
|  | 	syncStatetfulSet := false | ||||||
| 
 | 
 | ||||||
| 	c.mu.Lock() | 	c.mu.Lock() | ||||||
| 	defer c.mu.Unlock() | 	defer c.mu.Unlock() | ||||||
|  | @ -623,6 +624,7 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error { | ||||||
| 	} else if oldSpec.Spec.PostgresqlParam.PgVersion < newSpec.Spec.PostgresqlParam.PgVersion { | 	} else if oldSpec.Spec.PostgresqlParam.PgVersion < newSpec.Spec.PostgresqlParam.PgVersion { | ||||||
| 		c.logger.Infof("postgresql version increased (%q -> %q), major version upgrade can be done manually after StatefulSet Sync", | 		c.logger.Infof("postgresql version increased (%q -> %q), major version upgrade can be done manually after StatefulSet Sync", | ||||||
| 			oldSpec.Spec.PostgresqlParam.PgVersion, newSpec.Spec.PostgresqlParam.PgVersion) | 			oldSpec.Spec.PostgresqlParam.PgVersion, newSpec.Spec.PostgresqlParam.PgVersion) | ||||||
|  | 		syncStatetfulSet = true | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 	// Service
 | 	// Service
 | ||||||
|  | @ -699,8 +701,9 @@ func (c *Cluster) Update(oldSpec, newSpec *acidv1.Postgresql) error { | ||||||
| 			updateFailed = true | 			updateFailed = true | ||||||
| 			return | 			return | ||||||
| 		} | 		} | ||||||
| 		if !reflect.DeepEqual(oldSs, newSs) || !reflect.DeepEqual(oldSpec.Annotations, newSpec.Annotations) { | 		if syncStatetfulSet || !reflect.DeepEqual(oldSs, newSs) || !reflect.DeepEqual(oldSpec.Annotations, newSpec.Annotations) { | ||||||
| 			c.logger.Debugf("syncing statefulsets") | 			c.logger.Debugf("syncing statefulsets") | ||||||
|  | 			syncStatetfulSet = false | ||||||
| 			// TODO: avoid generating the StatefulSet object twice by passing it to syncStatefulSet
 | 			// TODO: avoid generating the StatefulSet object twice by passing it to syncStatefulSet
 | ||||||
| 			if err := c.syncStatefulSet(); err != nil { | 			if err := c.syncStatefulSet(); err != nil { | ||||||
| 				c.logger.Errorf("could not sync statefulsets: %v", err) | 				c.logger.Errorf("could not sync statefulsets: %v", err) | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue