From 4a7e796a46bb4e7ef474657a5f131014e8a72147 Mon Sep 17 00:00:00 2001 From: Maarten de Waard <maarten@greenhost.nl> Date: Fri, 1 Oct 2021 11:06:17 +0200 Subject: [PATCH] Test if all expected replicas are ready for deployments and statefulsets, improve test for daemonsets TRIGGER_JOBS=enable-nextcloud,enable-monitoring,enable-wekan,enable-wordpress,enable-rocketchat --- test/pytest/test_resources.py | 34 +++++++++++++++++++++++----------- 1 file changed, 23 insertions(+), 11 deletions(-) diff --git a/test/pytest/test_resources.py b/test/pytest/test_resources.py index 98657e5e5..4246f8296 100644 --- a/test/pytest/test_resources.py +++ b/test/pytest/test_resources.py @@ -227,10 +227,18 @@ def test_deployments(resource, namespace): resource = deployment.metadata.name namespace = deployment.metadata.namespace deployment = api.read_namespaced_deployment_status(resource, namespace) - ready = deployment.status.replicas == deployment.status.ready_replicas - print(f'Deployment "{resource}" in namespace "{namespace}": {ready}') - if not ready: + for condition in deployment.status.conditions: + if condition.type == 'Available': + available = condition.status == 'True' + replicas = deployment.spec.replicas + ready_replicas = deployment.status.ready_replicas + # Check if all replicas from the spec are ready + print(f'Deployment "{resource}" in namespace "{namespace}": ' + f'{available} ({ready_replicas}/{replicas})') + + + if not available or replicas != ready_replicas: failed += 1 failed_resources.append(resource) @@ -267,10 +275,12 @@ def test_statefulsets(resource, namespace): for statefulset in statefulsets.items: resource = statefulset.metadata.name namespace = statefulset.metadata.namespace - status = api.read_namespaced_stateful_set_status(resource, namespace) - ready = status.status.replicas == status.status.ready_replicas - print(f'statefulset "{resource}" in namespace "{namespace}": {ready}') - if not ready: + statefulset = api.read_namespaced_stateful_set_status(resource, namespace) + replicas = statefulset.spec.replicas + ready_replicas = statefulset.status.ready_replicas + print(f'statefulset "{resource}" in namespace "{namespace}": ' + f'{ready_replicas}/{replicas}') + if replicas != ready_replicas: failed += 1 failed_resources.append(resource) @@ -307,10 +317,12 @@ def test_daemonsets(resource, namespace): for daemonset in daemonsets.items: resource = daemonset.metadata.name namespace = daemonset.metadata.namespace - status = api.read_namespaced_daemon_set_status(resource, namespace) - ready = status.status.desired_number_scheduled == status.status.number_available - print(f'daemonset "{resource}" in namespace "{namespace}": {ready}') - if not ready: + daemonset = api.read_namespaced_daemon_set_status(resource, namespace) + desired_number_scheduled = daemonset.status.desired_number_scheduled + number_ready = daemonset.status.number_ready + print(f'daemonset "{resource}" in namespace "{namespace}": ' + f'{number_ready}/{desired_number_scheduled}') + if desired_number_scheduled != number_ready: failed += 1 failed_resources.append(resource) -- GitLab