Fixing yaml dump. Removing restart pending between tests.
This commit is contained in:
parent
aa3100ca34
commit
d88e62fc79
|
|
@ -3,7 +3,15 @@
|
||||||
watch -c "
|
watch -c "
|
||||||
kubectl get postgresql
|
kubectl get postgresql
|
||||||
echo
|
echo
|
||||||
|
echo -n 'Rolling upgrade pending: '
|
||||||
|
kubectl get statefulset -o jsonpath='{.items..metadata.annotations.zalando-postgres-operator-rolling-update-required}'
|
||||||
|
echo
|
||||||
|
echo
|
||||||
kubectl get pods
|
kubectl get pods
|
||||||
echo
|
echo
|
||||||
kubectl get statefulsets
|
kubectl get statefulsets
|
||||||
|
echo
|
||||||
|
kubectl get pods -l name=postgres-operator -o jsonpath='{.items..metadata.annotations.step}'
|
||||||
|
echo
|
||||||
|
kubectl get pods -l application=spilo -o jsonpath='{.items..spec.containers..image}'
|
||||||
"
|
"
|
||||||
|
|
@ -75,6 +75,11 @@ class K8s:
|
||||||
namespace='default'
|
namespace='default'
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def pg_get_status(self, name="acid-minimal-cluster", namespace="default"):
|
||||||
|
pg = self.api.custom_objects_api.get_namespaced_custom_object(
|
||||||
|
"acid.zalan.do", "v1", namespace, "postgresqls", name)
|
||||||
|
return pg.get("status", {}).get("PostgresClusterStatus", None)
|
||||||
|
|
||||||
def wait_for_pod_start(self, pod_labels, namespace='default'):
|
def wait_for_pod_start(self, pod_labels, namespace='default'):
|
||||||
pod_phase = 'No pod running'
|
pod_phase = 'No pod running'
|
||||||
while pod_phase != 'Running':
|
while pod_phase != 'Running':
|
||||||
|
|
@ -194,6 +199,9 @@ class K8s:
|
||||||
self.api.core_v1.patch_namespaced_config_map("postgres-operator", "default", config_map_patch)
|
self.api.core_v1.patch_namespaced_config_map("postgres-operator", "default", config_map_patch)
|
||||||
self.delete_operator_pod(step=step)
|
self.delete_operator_pod(step=step)
|
||||||
|
|
||||||
|
def patch_statefulset(self, data, name="acid-minimal-cluster", namespace="default"):
|
||||||
|
self.api.apps_v1.patch_namespaced_stateful_set(name, namespace, data)
|
||||||
|
|
||||||
def create_with_kubectl(self, path):
|
def create_with_kubectl(self, path):
|
||||||
return subprocess.run(
|
return subprocess.run(
|
||||||
["kubectl", "apply", "-f", path],
|
["kubectl", "apply", "-f", path],
|
||||||
|
|
|
||||||
|
|
@ -97,6 +97,8 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
with open("manifests/postgres-operator.yaml", 'r+') as f:
|
with open("manifests/postgres-operator.yaml", 'r+') as f:
|
||||||
operator_deployment = yaml.safe_load(f)
|
operator_deployment = yaml.safe_load(f)
|
||||||
operator_deployment["spec"]["template"]["spec"]["containers"][0]["image"] = os.environ['OPERATOR_IMAGE']
|
operator_deployment["spec"]["template"]["spec"]["containers"][0]["image"] = os.environ['OPERATOR_IMAGE']
|
||||||
|
|
||||||
|
with open("manifests/postgres-operator.yaml", 'w') as f:
|
||||||
yaml.dump(operator_deployment, f, Dumper=yaml.Dumper)
|
yaml.dump(operator_deployment, f, Dumper=yaml.Dumper)
|
||||||
|
|
||||||
for filename in ["operator-service-account-rbac.yaml",
|
for filename in ["operator-service-account-rbac.yaml",
|
||||||
|
|
@ -465,6 +467,7 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
Lower resource limits below configured minimum and let operator fix it
|
Lower resource limits below configured minimum and let operator fix it
|
||||||
'''
|
'''
|
||||||
k8s = self.k8s
|
k8s = self.k8s
|
||||||
|
# self.eventuallyEqual(lambda: k8s.pg_get_status(), "Running", "Cluster not healthy at start")
|
||||||
|
|
||||||
# configure minimum boundaries for CPU and memory limits
|
# configure minimum boundaries for CPU and memory limits
|
||||||
minCPULimit = '503m'
|
minCPULimit = '503m'
|
||||||
|
|
@ -476,7 +479,6 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
"min_memory_limit": minMemoryLimit
|
"min_memory_limit": minMemoryLimit
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
k8s.update_config(patch_min_resource_limits)
|
|
||||||
|
|
||||||
# lower resource limits below minimum
|
# lower resource limits below minimum
|
||||||
pg_patch_resources = {
|
pg_patch_resources = {
|
||||||
|
|
@ -496,6 +498,9 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
k8s.api.custom_objects_api.patch_namespaced_custom_object(
|
k8s.api.custom_objects_api.patch_namespaced_custom_object(
|
||||||
"acid.zalan.do", "v1", "default", "postgresqls", "acid-minimal-cluster", pg_patch_resources)
|
"acid.zalan.do", "v1", "default", "postgresqls", "acid-minimal-cluster", pg_patch_resources)
|
||||||
|
|
||||||
|
k8s.patch_statefulset({"metadata":{"annotations":{"zalando-postgres-operator-rolling-update-required": "False"}}})
|
||||||
|
k8s.update_config(patch_min_resource_limits, "Minimum resource test")
|
||||||
|
|
||||||
self.eventuallyEqual(lambda: k8s.count_running_pods(), 2, "No two pods running after lazy rolling upgrade")
|
self.eventuallyEqual(lambda: k8s.count_running_pods(), 2, "No two pods running after lazy rolling upgrade")
|
||||||
self.eventuallyEqual(lambda: len(k8s.get_patroni_running_members()), 2, "Postgres status did not enter running")
|
self.eventuallyEqual(lambda: len(k8s.get_patroni_running_members()), 2, "Postgres status did not enter running")
|
||||||
|
|
||||||
|
|
@ -509,6 +514,12 @@ class EndToEndTestCase(unittest.TestCase):
|
||||||
|
|
||||||
self.eventuallyTrue(verify_pod_limits, "Pod limits where not adjusted")
|
self.eventuallyTrue(verify_pod_limits, "Pod limits where not adjusted")
|
||||||
|
|
||||||
|
@classmethod
|
||||||
|
def setUp(cls):
|
||||||
|
# cls.k8s.update_config({}, step="Setup")
|
||||||
|
cls.k8s.patch_statefulset({"meta":{"annotations":{"zalando-postgres-operator-rolling-update-required": False}}})
|
||||||
|
pass
|
||||||
|
|
||||||
@timeout_decorator.timeout(TEST_TIMEOUT_SEC)
|
@timeout_decorator.timeout(TEST_TIMEOUT_SEC)
|
||||||
def test_multi_namespace_support(self):
|
def test_multi_namespace_support(self):
|
||||||
'''
|
'''
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue