Prevent original labels from update
This commit is contained in:
		
							parent
							
								
									f1646c8204
								
							
						
					
					
						commit
						e645ca5c23
					
				|  | @ -75,7 +75,7 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         ''' |         ''' | ||||||
| 
 | 
 | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         cluster_label = 'cluster-name=acid-minimal-cluster' |         cluster_label = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||||
| 
 | 
 | ||||||
|         # enable load balancer services |         # enable load balancer services | ||||||
|         pg_patch_enable_lbs = { |         pg_patch_enable_lbs = { | ||||||
|  | @ -123,7 +123,7 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         Lower resource limits below configured minimum and let operator fix it |         Lower resource limits below configured minimum and let operator fix it | ||||||
|         ''' |         ''' | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         cluster_label = 'cluster-name=acid-minimal-cluster' |         cluster_label = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||||
|         _, failover_targets = k8s.get_pg_nodes(cluster_label) |         _, failover_targets = k8s.get_pg_nodes(cluster_label) | ||||||
| 
 | 
 | ||||||
|         # configure minimum boundaries for CPU and memory limits |         # configure minimum boundaries for CPU and memory limits | ||||||
|  | @ -190,15 +190,26 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|            Scale up from 2 to 3 and back to 2 pods by updating the Postgres manifest at runtime. |            Scale up from 2 to 3 and back to 2 pods by updating the Postgres manifest at runtime. | ||||||
|         ''' |         ''' | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         labels = "cluster-name=acid-minimal-cluster" |         labels = "application=spilo,cluster-name=acid-minimal-cluster" | ||||||
| 
 | 
 | ||||||
|         k8s.wait_for_pg_to_scale(3) |         try: | ||||||
|         self.assertEqual(3, k8s.count_pods_with_label(labels)) |             k8s.wait_for_pg_to_scale(3) | ||||||
|         self.assert_master_is_unique() |             self.assertEqual(3, k8s.count_pods_with_label(labels)) | ||||||
|  |             self.assert_master_is_unique() | ||||||
| 
 | 
 | ||||||
|         k8s.wait_for_pg_to_scale(2) |             k8s.wait_for_pg_to_scale(2) | ||||||
|         self.assertEqual(2, k8s.count_pods_with_label(labels)) |             self.assertEqual(2, k8s.count_pods_with_label(labels)) | ||||||
|         self.assert_master_is_unique() |             self.assert_master_is_unique() | ||||||
|  |         except timeout_decorator.TimeoutError: | ||||||
|  |             print('Operator log: {}'.format(k8s.get_operator_log())) | ||||||
|  |             pods = k8s.api.core_v1.list_namespaced_pod('default').items | ||||||
|  |             for p in pods: | ||||||
|  |                 response = k8s.api.core_v1.read_namespaced_pod( | ||||||
|  |                     name=p.metadata.name, | ||||||
|  |                     namespace='default' | ||||||
|  |                 ) | ||||||
|  |                 print('Pod: {}'.format(response)) | ||||||
|  |             raise | ||||||
| 
 | 
 | ||||||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) |     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||||
|     def test_taint_based_eviction(self): |     def test_taint_based_eviction(self): | ||||||
|  | @ -206,7 +217,7 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|            Add taint "postgres=:NoExecute" to node with master. This must cause a failover. |            Add taint "postgres=:NoExecute" to node with master. This must cause a failover. | ||||||
|         ''' |         ''' | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         cluster_label = 'cluster-name=acid-minimal-cluster' |         cluster_label = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||||
| 
 | 
 | ||||||
|         # get nodes of master and replica(s) (expected target of new master) |         # get nodes of master and replica(s) (expected target of new master) | ||||||
|         current_master_node, failover_targets = k8s.get_pg_nodes(cluster_label) |         current_master_node, failover_targets = k8s.get_pg_nodes(cluster_label) | ||||||
|  | @ -361,7 +372,8 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         ''' |         ''' | ||||||
|         For a database without connection pool, then turns it on, scale up, |         For a database without connection pool, then turns it on, scale up, | ||||||
|         turn off and on again. Test with different ways of doing this (via |         turn off and on again. Test with different ways of doing this (via | ||||||
|         enableConnectionPool or connectionPool configuration section). |         enableConnectionPool or connectionPool configuration section). At the | ||||||
|  |         end turn the connection pool off to not interfere with other tests. | ||||||
|         ''' |         ''' | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         service_labels = { |         service_labels = { | ||||||
|  | @ -560,7 +572,7 @@ class K8s: | ||||||
|         _ = self.api.custom_objects_api.patch_namespaced_custom_object( |         _ = self.api.custom_objects_api.patch_namespaced_custom_object( | ||||||
|             "acid.zalan.do", "v1", namespace, "postgresqls", "acid-minimal-cluster", body) |             "acid.zalan.do", "v1", namespace, "postgresqls", "acid-minimal-cluster", body) | ||||||
| 
 | 
 | ||||||
|         labels = 'cluster-name=acid-minimal-cluster' |         labels = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||||
|         while self.count_pods_with_label(labels) != number_of_instances: |         while self.count_pods_with_label(labels) != number_of_instances: | ||||||
|             time.sleep(self.RETRY_TIMEOUT_SEC) |             time.sleep(self.RETRY_TIMEOUT_SEC) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -420,18 +420,18 @@ func (c *Cluster) labelsSelector() *metav1.LabelSelector { | ||||||
| // not interfere with it (it lists all the pods via labels, and if there would
 | // not interfere with it (it lists all the pods via labels, and if there would
 | ||||||
| // be no difference, it will recreate also pooler pods).
 | // be no difference, it will recreate also pooler pods).
 | ||||||
| func (c *Cluster) connPoolLabelsSelector() *metav1.LabelSelector { | func (c *Cluster) connPoolLabelsSelector() *metav1.LabelSelector { | ||||||
| 	labels := c.labelsSet(false) | 	connPoolLabels := labels.Set(map[string]string{}) | ||||||
| 	connPoolLabels := map[string]string{ | 
 | ||||||
|  | 	extraLabels := labels.Set(map[string]string{ | ||||||
| 		"connection-pool": c.connPoolName(), | 		"connection-pool": c.connPoolName(), | ||||||
| 		"application":     "connection-pool", | 		"application":     "connection-pool", | ||||||
| 	} | 	}) | ||||||
| 
 | 
 | ||||||
| 	for k, v := range connPoolLabels { | 	connPoolLabels = labels.Merge(connPoolLabels, c.labelsSet(false)) | ||||||
| 		labels[k] = v | 	connPoolLabels = labels.Merge(connPoolLabels, extraLabels) | ||||||
| 	} |  | ||||||
| 
 | 
 | ||||||
| 	return &metav1.LabelSelector{ | 	return &metav1.LabelSelector{ | ||||||
| 		MatchLabels:      labels, | 		MatchLabels:      connPoolLabels, | ||||||
| 		MatchExpressions: nil, | 		MatchExpressions: nil, | ||||||
| 	} | 	} | ||||||
| } | } | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue