fix searching for users with namespace in name and improve e2e test

This commit is contained in:
Felix Kunde 2021-07-26 15:23:51 +02:00
parent b1fab703ee
commit ffdaee7e2d
2 changed files with 11 additions and 21 deletions

View File

@ -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):
''' '''

View File

@ -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