fix e2e test
This commit is contained in:
		
							parent
							
								
									80d4eb3c0d
								
							
						
					
					
						commit
						6a3645aeec
					
				|  | @ -127,9 +127,7 @@ configKubernetes: | |||
| 
 | ||||
|   # annotations to be ignored when comparing statefulsets, services etc. | ||||
|   # ignored_annotations: | ||||
|   # - "deployment-time" | ||||
|   # - "k8s.v1.cni.cncf.io/network-status" | ||||
| 
 | ||||
|   # - k8s.v1.cni.cncf.io/network-status | ||||
| 
 | ||||
|   # namespaced name of the secret containing infrastructure roles names and passwords | ||||
|   # infrastructure_roles_secret_name: postgresql-infrastructure-roles | ||||
|  |  | |||
|  | @ -707,39 +707,45 @@ class EndToEndTestCase(unittest.TestCase): | |||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||
|     def test_ignored_annotations(self): | ||||
|         ''' | ||||
|            Test if injected annotation does not cause failover when listed under ignored_annotations | ||||
|            Test if injected annotation does not cause replacement of resources when listed under ignored_annotations | ||||
|         ''' | ||||
|         k8s = self.k8s | ||||
|         cluster_label = 'application=spilo,cluster-name=acid-minimal-cluster' | ||||
| 
 | ||||
|         # get node of current master | ||||
|         master_node, _ = k8s.get_pg_nodes(cluster_label) | ||||
| 
 | ||||
|         patch_config_ignored_annotations = { | ||||
|             "data": { | ||||
|                 "ignored_annotations": "deployment-time", | ||||
|             } | ||||
|         } | ||||
|         k8s.update_config(patch_config_ignored_annotations) | ||||
| 
 | ||||
|         pg_crd_annotation = { | ||||
|         annotation_patch = { | ||||
|             "metadata": { | ||||
|                 "annotations": { | ||||
|                     "deployment-time": "2022-04-01 12:00:00" | ||||
|                     "k8s-status": "healthy" | ||||
|                 }, | ||||
|             } | ||||
|         } | ||||
|         k8s.api.custom_objects_api.patch_namespaced_custom_object( | ||||
|             "acid.zalan.do", "v1", "default", "postgresqls", "acid-minimal-cluster", pg_crd_annotation) | ||||
| 
 | ||||
|         annotations = { | ||||
|             "deployment-time": "2022-04-01 12:00:00", | ||||
|         } | ||||
|         self.eventuallyEqual(lambda: k8s.get_operator_state(), {"0": "idle"}, "Operator does not get in sync") | ||||
|         self.eventuallyTrue(lambda: k8s.check_statefulset_annotations(cluster_label, annotations), "Annotations missing") | ||||
|         try: | ||||
|             sts = k8s.api.apps_v1.read_namespaced_stateful_set('acid-minimal-cluster', 'default') | ||||
|             old_sts_creation_timestamp = sts.metadata.creation_timestamp | ||||
|             k8s.api.apps_v1.patch_namespaced_stateful_set(sts.metadata.name, sts.metadata.namespace, annotation_patch) | ||||
|             svc = k8s.api.core_v1.read_namespaced_service('acid-minimal-cluster', 'default') | ||||
|             old_svc_creation_timestamp = svc.metadata.creation_timestamp | ||||
|             k8s.api.core_v1.patch_namespaced_service(svc.metadata.name, svc.metadata.namespace, annotation_patch) | ||||
| 
 | ||||
|         current_master_node, _ = k8s.get_pg_nodes(cluster_label) | ||||
|         self.eventuallyEqual(lambda: master_node, current_master_node, "unexpected rolling update happened") | ||||
|             patch_config_ignored_annotations = { | ||||
|                 "data": { | ||||
|                     "ignored_annotations": "k8s-status", | ||||
|                 } | ||||
|             } | ||||
|             k8s.update_config(patch_config_ignored_annotations) | ||||
|             self.eventuallyEqual(lambda: k8s.get_operator_state(), {"0": "idle"}, "Operator does not get in sync") | ||||
| 
 | ||||
|             sts = k8s.api.apps_v1.read_namespaced_stateful_set('acid-minimal-cluster', 'default') | ||||
|             new_sts_creation_timestamp = sts.metadata.creation_timestamp | ||||
|             svc = k8s.api.core_v1.read_namespaced_service('acid-minimal-cluster', 'default') | ||||
|             new_svc_creation_timestamp = svc.metadata.creation_timestamp | ||||
| 
 | ||||
|             self.eventuallyEqual(old_sts_creation_timestamp, new_sts_creation_timestamp, "unexpected replacement of statefulset on sync") | ||||
|             self.eventuallyEqual(old_svc_creation_timestamp, new_svc_creation_timestamp, "unexpected replacement of master service on sync") | ||||
| 
 | ||||
|         except timeout_decorator.TimeoutError: | ||||
|             print('Operator log: {}'.format(k8s.get_operator_log())) | ||||
|             raise | ||||
| 
 | ||||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||
|     def test_infrastructure_roles(self): | ||||
|  |  | |||
|  | @ -60,8 +60,7 @@ configuration: | |||
|     enable_pod_disruption_budget: true | ||||
|     enable_sidecars: true | ||||
|     # ignored_annotations: | ||||
|     # - "deployment-time" | ||||
|     # - "k8s.v1.cni.cncf.io/network-status" | ||||
|     # - k8s.v1.cni.cncf.io/network-status | ||||
|     # infrastructure_roles_secret_name: "postgresql-infrastructure-roles" | ||||
|     # infrastructure_roles_secrets: | ||||
|     # - secretname: "monitoring-roles" | ||||
|  |  | |||
|  | @ -385,7 +385,7 @@ func (c *Cluster) compareStatefulSetWith(statefulSet *appsv1.StatefulSet) *compa | |||
| 	if changed, reason := c.compareAnnotations(c.Statefulset.Annotations, statefulSet.Annotations); changed { | ||||
| 		match = false | ||||
| 		needsReplace = true | ||||
| 		reasons = append(reasons, "new statefulset's annotations do not match "+reason) | ||||
| 		reasons = append(reasons, "new statefulset's annotations do not match: "+reason) | ||||
| 	} | ||||
| 
 | ||||
| 	needsRollUpdate, reasons = c.compareContainers("initContainers", c.Statefulset.Spec.Template.Spec.InitContainers, statefulSet.Spec.Template.Spec.InitContainers, needsRollUpdate, reasons) | ||||
|  | @ -734,7 +734,7 @@ func (c *Cluster) compareAnnotations(old, new map[string]string) (bool, string) | |||
| 			continue | ||||
| 		} | ||||
| 		if _, ok := new[key]; !ok { | ||||
| 			reason += fmt.Sprintf(" Removed '%s'.", key) | ||||
| 			reason += fmt.Sprintf(" Removed %q.", key) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  | @ -744,9 +744,9 @@ func (c *Cluster) compareAnnotations(old, new map[string]string) (bool, string) | |||
| 		} | ||||
| 		v, ok := old[key] | ||||
| 		if !ok { | ||||
| 			reason += fmt.Sprintf(" Added '%s' with value '%s'.", key, new[key]) | ||||
| 			reason += fmt.Sprintf(" Added %q with value %q.", key, new[key]) | ||||
| 		} else if v != new[key] { | ||||
| 			reason += fmt.Sprintf(" '%s' changed from '%s' to '%s'.", key, v, new[key]) | ||||
| 			reason += fmt.Sprintf(" %q changed from %q to %q.", key, v, new[key]) | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue