add e2e test and introduce option in configmap
This commit is contained in:
		
							parent
							
								
									36e67f77c9
								
							
						
					
					
						commit
						9cc7ed3929
					
				|  | @ -457,7 +457,7 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         k8s = self.k8s |         k8s = self.k8s | ||||||
|         patch_custom_service_annotations = { |         patch_custom_service_annotations = { | ||||||
|             "data": { |             "data": { | ||||||
|                 "custom_service_annotations": "foo:bar", |                 "custom_service_annotatons": "foo:bar", | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
|         k8s.update_config(patch_custom_service_annotations) |         k8s.update_config(patch_custom_service_annotations) | ||||||
|  | @ -477,9 +477,9 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|             "foo": "bar", |             "foo": "bar", | ||||||
|         } |         } | ||||||
|         self.assertTrue(k8s.check_service_annotations( |         self.assertTrue(k8s.check_service_annotations( | ||||||
|             "cluster-name=acid-service-annotations,spilo-role=master", annotations)) |             "cluster-name=acid-minimal-cluster,spilo-role=master", annotations)) | ||||||
|         self.assertTrue(k8s.check_service_annotations( |         self.assertTrue(k8s.check_service_annotations( | ||||||
|             "cluster-name=acid-service-annotations,spilo-role=replica", annotations)) |             "cluster-name=acid-minimal-cluster,spilo-role=replica", annotations)) | ||||||
| 
 | 
 | ||||||
|         # clean up |         # clean up | ||||||
|         unpatch_custom_service_annotations = { |         unpatch_custom_service_annotations = { | ||||||
|  | @ -489,6 +489,44 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         } |         } | ||||||
|         k8s.update_config(unpatch_custom_service_annotations) |         k8s.update_config(unpatch_custom_service_annotations) | ||||||
| 
 | 
 | ||||||
|  |     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||||
|  |     def test_statefulset_annotation_propagation(self): | ||||||
|  |         ''' | ||||||
|  |            Inject annotation to Postgresql CRD and check it's propagation to stateful set | ||||||
|  |         ''' | ||||||
|  |         k8s = self.k8s | ||||||
|  |         cluster_label = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||||
|  | 
 | ||||||
|  |         patch_sset_propagate_annotations = { | ||||||
|  |             "data": { | ||||||
|  |                 "statefulset_propagate_annotations": "deployment-time,downscaler/*", | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         k8s.update_config(patch_sset_propagate_annotations) | ||||||
|  | 
 | ||||||
|  |         pg_crd_annotations = { | ||||||
|  |             "metadata": { | ||||||
|  |                 "annotations": [ | ||||||
|  |                     { | ||||||
|  |                         "deployment-time": "2020-04-30 12:00:00", | ||||||
|  |                     }, | ||||||
|  |                     { | ||||||
|  |                         "downscaler/downtime_replicas": "0", | ||||||
|  |                     }, | ||||||
|  |                 ], | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         k8s.api.custom_objects_api.patch_namespaced_custom_object( | ||||||
|  |             "acid.zalan.do", "v1", "default", "postgresqls", "acid-minimal-cluster", pg_crd_annotations) | ||||||
|  | 
 | ||||||
|  |         k8s.delete_operator_pod() | ||||||
|  | 
 | ||||||
|  |         annotations = { | ||||||
|  |             "deployment-time": "2020-04-30 12:00:00", | ||||||
|  |             "downscaler/downtime_replicas": "0", | ||||||
|  |         } | ||||||
|  |         self.assertTrue(k8s.check_statefulset_annotations(cluster_label, annotations)) | ||||||
|  | 
 | ||||||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) |     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||||
|     def test_taint_based_eviction(self): |     def test_taint_based_eviction(self): | ||||||
|         ''' |         ''' | ||||||
|  | @ -701,6 +739,16 @@ class K8s: | ||||||
|                     return False |                     return False | ||||||
|         return True |         return True | ||||||
| 
 | 
 | ||||||
|  |     def check_statefulset_annotations(self, sset_labels, annotations, namespace='default'): | ||||||
|  |         ssets = self.api.apps_v1.list_namespaced_stateful_set(namespace, label_selector=sset_labels, limit=1).items | ||||||
|  |         for sset in ssets: | ||||||
|  |             if len(sset.metadata.annotations) < len(annotations): | ||||||
|  |                 return False | ||||||
|  |             for key in sset.metadata.annotations: | ||||||
|  |                 if sset.metadata.annotations[key] != annotations[key]: | ||||||
|  |                     return False | ||||||
|  |         return True | ||||||
|  | 
 | ||||||
|     def wait_for_pg_to_scale(self, number_of_instances, namespace='default'): |     def wait_for_pg_to_scale(self, number_of_instances, namespace='default'): | ||||||
| 
 | 
 | ||||||
|         body = { |         body = { | ||||||
|  |  | ||||||
|  | @ -94,6 +94,7 @@ data: | ||||||
|   # sidecar_docker_images: "" |   # sidecar_docker_images: "" | ||||||
|   # set_memory_request_to_limit: "false" |   # set_memory_request_to_limit: "false" | ||||||
|   spilo_privileged: "false" |   spilo_privileged: "false" | ||||||
|  |   # statefulset_propagate_annotation: "deployment-time,downscaler/*" | ||||||
|   super_username: postgres |   super_username: postgres | ||||||
|   # team_admin_role: "admin" |   # team_admin_role: "admin" | ||||||
|   # team_api_role_configuration: "log_statement:all" |   # team_api_role_configuration: "log_statement:all" | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue