Compare Postgres pod priority on Sync (#1144)
* compare Postgres pod priority on Sync Co-authored-by: Sergey Dudoladov <sergey.dudoladov@zalando.de>
This commit is contained in:
		
							parent
							
								
									ab95eaa6ef
								
							
						
					
					
						commit
						2a21cc4393
					
				|  | @ -20,4 +20,4 @@ script: | |||
|   - hack/verify-codegen.sh | ||||
|   - travis_wait 20 go test -race -covermode atomic -coverprofile=profile.cov ./pkg/... -v | ||||
|   - goveralls -coverprofile=profile.cov -service=travis-ci -v | ||||
|   - make e2e | ||||
|   - travis_wait 20 make e2e | ||||
|  |  | |||
|  | @ -2,6 +2,10 @@ version: "2017-09-20" | |||
| pipeline: | ||||
|     - id: build-postgres-operator | ||||
|       type: script | ||||
|       vm: large | ||||
|       cache: | ||||
|         paths: | ||||
|           - /go/pkg/mod | ||||
|       commands: | ||||
|         - desc: 'Update' | ||||
|           cmd: | | ||||
|  |  | |||
|  | @ -85,6 +85,7 @@ data: | |||
|   pod_service_account_name: "postgres-pod" | ||||
|   # pod_service_account_role_binding_definition: "" | ||||
|   pod_terminate_grace_period: 5m | ||||
|   # pod_priority_class_name: "postgres-pod-priority" | ||||
|   # postgres_superuser_teams: "postgres_superusers" | ||||
|   # protected_role_names: "admin" | ||||
|   ready_wait_interval: 3s | ||||
|  |  | |||
|  | @ -0,0 +1,11 @@ | |||
| apiVersion: scheduling.k8s.io/v1 | ||||
| description: 'This priority class must be used only for databases controlled by the | ||||
|   Postgres operator' | ||||
| kind: PriorityClass | ||||
| metadata: | ||||
|   labels: | ||||
|     application: postgres-operator | ||||
|   name: postgres-pod-priority | ||||
| preemptionPolicy: PreemptLowerPriority | ||||
| globalDefault: false | ||||
| value: 1000000 | ||||
|  | @ -459,6 +459,15 @@ func (c *Cluster) compareStatefulSetWith(statefulSet *appsv1.StatefulSet) *compa | |||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	// we assume any change in priority happens by rolling out a new priority class
 | ||||
| 	// changing the priority value in an existing class is not supproted
 | ||||
| 	if c.Statefulset.Spec.Template.Spec.PriorityClassName != statefulSet.Spec.Template.Spec.PriorityClassName { | ||||
| 		match = false | ||||
| 		needsReplace = true | ||||
| 		needsRollUpdate = true | ||||
| 		reasons = append(reasons, "new statefulset's pod priority class in spec doesn't match the current one") | ||||
| 	} | ||||
| 
 | ||||
| 	// lazy Spilo update: modify the image in the statefulset itself but let its pods run with the old image
 | ||||
| 	// until they are re-created for other reasons, for example node rotation
 | ||||
| 	if c.OpConfig.EnableLazySpiloUpgrade && !reflect.DeepEqual(c.Statefulset.Spec.Template.Spec.Containers[0].Image, statefulSet.Spec.Template.Spec.Containers[0].Image) { | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue