add a test for multiple namespaces
This commit is contained in:
parent
4bb20da4f5
commit
7075d11975
|
|
@ -32,6 +32,12 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
# set a single k8s wrapper for all tests
|
# set a single k8s wrapper for all tests
|
||||||
k8s = cls.k8s = K8s()
|
k8s = cls.k8s = K8s()
|
||||||
|
|
||||||
|
# operator deploys pod service account there on start up
|
||||||
|
# needed for test_multi_namespace_support()
|
||||||
|
cls.namespace = "test"
|
||||||
|
v1_namespace = client.V1Namespace(metadata=client.V1ObjectMeta(name=cls.namespace))
|
||||||
|
k8s.api.core_v1.create_namespace(v1_namespace)
|
||||||
|
|
||||||
# submit the most recent operator image built on the Docker host
|
# submit the most recent operator image built on the Docker host
|
||||||
with open("manifests/postgres-operator.yaml", 'r+') as f:
|
with open("manifests/postgres-operator.yaml", 'r+') as f:
|
||||||
operator_deployment = yaml.load(f, Loader=yaml.Loader)
|
operator_deployment = yaml.load(f, Loader=yaml.Loader)
|
||||||
|
|
@ -52,6 +58,22 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
k8s.create_with_kubectl("manifests/minimal-postgres-manifest.yaml")
|
k8s.create_with_kubectl("manifests/minimal-postgres-manifest.yaml")
|
||||||
k8s.wait_for_pod_start('spilo-role=master')
|
k8s.wait_for_pod_start('spilo-role=master')
|
||||||
|
|
||||||
|
@timeout_decorator.timeout(TEST_TIMEOUT_SEC)
|
||||||
|
def test_multi_namespace_support(self):
|
||||||
|
'''
|
||||||
|
Create a customized Postgres cluster in a non-default namespace.
|
||||||
|
'''
|
||||||
|
k8s = self.k8s
|
||||||
|
|
||||||
|
with open("manifests/complete-postgres-manifest.yaml", 'r+') as f:
|
||||||
|
pg_manifest = yaml.load(f, Loader=yaml.Loader)
|
||||||
|
pg_manifest["metadata"]["namespace"] = self.namespace
|
||||||
|
yaml.dump(pg_manifest, f, Dumper=yaml.Dumper)
|
||||||
|
|
||||||
|
k8s.create_with_kubectl("manifests/complete-postgres-manifest.yaml")
|
||||||
|
k8s.wait_for_pod_start("spilo-role=master", self.namespace)
|
||||||
|
self.assert_master_is_unique(self.namespace, version="acid-test-cluster")
|
||||||
|
|
||||||
@timeout_decorator.timeout(TEST_TIMEOUT_SEC)
|
@timeout_decorator.timeout(TEST_TIMEOUT_SEC)
|
||||||
def test_scaling(self):
|
def test_scaling(self):
|
||||||
"""
|
"""
|
||||||
|
|
@ -190,14 +212,14 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
self.assertTrue(0 == len(jobs),
|
self.assertTrue(0 == len(jobs),
|
||||||
"Expected 0 logical backup jobs, found {}".format(len(jobs)))
|
"Expected 0 logical backup jobs, found {}".format(len(jobs)))
|
||||||
|
|
||||||
def assert_master_is_unique(self, namespace='default'):
|
def assert_master_is_unique(self, namespace='default', version="acid-minimal-cluster"):
|
||||||
"""
|
"""
|
||||||
Check that there is a single pod in the k8s cluster with the label "spilo-role=master"
|
Check that there is a single pod in the k8s cluster with the label "spilo-role=master"
|
||||||
To be called manually after operations that affect pods
|
To be called manually after operations that affect pods
|
||||||
"""
|
"""
|
||||||
|
|
||||||
k8s = self.k8s
|
k8s = self.k8s
|
||||||
labels = 'spilo-role=master,version=acid-minimal-cluster'
|
labels = 'spilo-role=master,version=' + version
|
||||||
|
|
||||||
num_of_master_pods = k8s.count_pods_with_label(labels, namespace)
|
num_of_master_pods = k8s.count_pods_with_label(labels, namespace)
|
||||||
self.assertEqual(num_of_master_pods, 1, "Expected 1 master pod, found {}".format(num_of_master_pods))
|
self.assertEqual(num_of_master_pods, 1, "Expected 1 master pod, found {}".format(num_of_master_pods))
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue