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