fix searching for users with namespace in name and improve e2e test
This commit is contained in:
		
							parent
							
								
									b1fab703ee
								
							
						
					
					
						commit
						ffdaee7e2d
					
				|  | @ -588,16 +588,11 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|             raise |             raise | ||||||
| 
 | 
 | ||||||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) |     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||||
|     def test_zz_cross_namespace_secrets(self): |     def test_cross_namespace_secrets(self): | ||||||
|         ''' |         ''' | ||||||
|             Test secrets in different namespace |             Test secrets in different namespace | ||||||
|         ''' |         ''' | ||||||
|         app_namespace = "appspace" |         # enable secret creation in separate namespace | ||||||
| 
 |  | ||||||
|         v1_appnamespace = client.V1Namespace(metadata=client.V1ObjectMeta(name=app_namespace)) |  | ||||||
|         self.k8s.api.core_v1.create_namespace(v1_appnamespace) |  | ||||||
|         self.k8s.wait_for_namespace_creation(app_namespace) |  | ||||||
| 
 |  | ||||||
|         patch_cross_namespace_secret = { |         patch_cross_namespace_secret = { | ||||||
|             "data": { |             "data": { | ||||||
|                 "enable_cross_namespace_secret": "true" |                 "enable_cross_namespace_secret": "true" | ||||||
|  | @ -605,30 +600,26 @@ class EndToEndTestCase(unittest.TestCase): | ||||||
|         } |         } | ||||||
|         self.k8s.update_config(patch_cross_namespace_secret, |         self.k8s.update_config(patch_cross_namespace_secret, | ||||||
|                           step="cross namespace secrets enabled") |                           step="cross namespace secrets enabled") | ||||||
|  |         self.eventuallyEqual(lambda: k8s.get_operator_state(), {"0": "idle"}, | ||||||
|  |                              "Operator does not get in sync") | ||||||
| 
 | 
 | ||||||
|  |         # create secret in test namespace | ||||||
|         self.k8s.api.custom_objects_api.patch_namespaced_custom_object( |         self.k8s.api.custom_objects_api.patch_namespaced_custom_object( | ||||||
|             'acid.zalan.do', 'v1', 'default', |             'acid.zalan.do', 'v1', 'default', | ||||||
|             'postgresqls', 'acid-minimal-cluster', |             'postgresqls', 'acid-minimal-cluster', | ||||||
|             { |             { | ||||||
|                 'spec': { |                 'spec': { | ||||||
|                     'users':{ |                     'users':{ | ||||||
|                         'appspace.db_user': [], |                         'test.db_user': [], | ||||||
|                     } |                     } | ||||||
|                 } |                 } | ||||||
|             }) |             }) | ||||||
| 
 |          | ||||||
|         self.eventuallyEqual(lambda: self.k8s.count_secrets_with_label("cluster-name=acid-minimal-cluster,application=spilo", app_namespace), |         self.eventuallyEqual(lambda: k8s.get_operator_state(), {"0": "idle"}, | ||||||
|  |                              "Operator does not get in sync") | ||||||
|  |         self.eventuallyEqual(lambda: self.k8s.count_secrets_with_label("cluster-name=acid-minimal-cluster,application=spilo", self.test_namespace), | ||||||
|                              1, "Secret not created for user in namespace") |                              1, "Secret not created for user in namespace") | ||||||
| 
 | 
 | ||||||
|         #reset the flag |  | ||||||
|         unpatch_cross_namespace_secret = { |  | ||||||
|                 "data": { |  | ||||||
|                     "enable_cross_namespace_secret": "false", |  | ||||||
|                 } |  | ||||||
|             } |  | ||||||
|         self.k8s.update_config(unpatch_cross_namespace_secret, step="disable cross namespace secrets") |  | ||||||
| 
 |  | ||||||
| 
 |  | ||||||
|     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) |     @timeout_decorator.timeout(TEST_TIMEOUT_SEC) | ||||||
|     def test_lazy_spilo_upgrade(self): |     def test_lazy_spilo_upgrade(self): | ||||||
|         ''' |         ''' | ||||||
|  |  | ||||||
|  | @ -386,7 +386,6 @@ func (c *Cluster) syncStatefulSet() error { | ||||||
| 		return fmt.Errorf("could not set cluster-wide PostgreSQL configuration options: %v", err) | 		return fmt.Errorf("could not set cluster-wide PostgreSQL configuration options: %v", err) | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| 	if instancesRestartRequired { | 	if instancesRestartRequired { | ||||||
| 		c.logger.Debugln("restarting Postgres server within pods") | 		c.logger.Debugln("restarting Postgres server within pods") | ||||||
| 		c.eventRecorder.Event(c.GetReference(), v1.EventTypeNormal, "Update", "restarting Postgres server within pods") | 		c.eventRecorder.Event(c.GetReference(), v1.EventTypeNormal, "Update", "restarting Postgres server within pods") | ||||||
|  | @ -626,7 +625,7 @@ func (c *Cluster) syncRoles() (err error) { | ||||||
| 		if u.Namespace != c.Namespace && u.Namespace != "" { | 		if u.Namespace != c.Namespace && u.Namespace != "" { | ||||||
| 			// to avoid the conflict of having multiple users of same name
 | 			// to avoid the conflict of having multiple users of same name
 | ||||||
| 			// but each in different namespace.
 | 			// but each in different namespace.
 | ||||||
| 			pgRole = fmt.Sprintf("%s.%s", u.Name, u.Namespace) | 			pgRole = fmt.Sprintf("%s.%s", u.Namespace, u.Name) | ||||||
| 		} | 		} | ||||||
| 		userNames = append(userNames, pgRole) | 		userNames = append(userNames, pgRole) | ||||||
| 		// add team member role name with rename suffix in case we need to rename it back
 | 		// add team member role name with rename suffix in case we need to rename it back
 | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue