Skip to content

Refactor gateway listener in dns section target test#799

Merged
azgabur merged 1 commit intoKuadrant:mainfrom
azgabur:dns_section_refactor
Oct 23, 2025
Merged

Refactor gateway listener in dns section target test#799
azgabur merged 1 commit intoKuadrant:mainfrom
azgabur:dns_section_refactor

Conversation

@azgabur
Copy link
Copy Markdown
Member

@azgabur azgabur commented Oct 22, 2025

The test worked previously too, but the gateway setup had one flaw. Resulting gateway had the default wildcard listener and the additional managed and unmanaged listeners, but these were http only. The client fixtures were using https protocol so it actually connected to the wildcard listener instead, not the managed or unamanaged listener.

I know this is a small change and it has no impact on the test result but for the future if the test would be changing it would solve some debugging time..

to verify:

make testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py

@azgabur azgabur requested a review from fabikova October 22, 2025 22:41
@azgabur azgabur force-pushed the dns_section_refactor branch 2 times, most recently from 17cdb58 to d223cc1 Compare October 22, 2025 23:11
Copy link
Copy Markdown
Contributor

@averevki averevki left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Good catch, but why do you want to use tlspolicy together with dnspolicy in this test? It should only test the section name change in dnspolicy. More atomic, if you will 😁

@azgabur
Copy link
Copy Markdown
Member Author

azgabur commented Oct 23, 2025

Yes another solution is to make the clients http, which is maybe better solution come to think of it 🤔

The test can have wildcard listener as the more specific hostname listener will be used instead of the wildcard when a request comes, of course not if they are on different ports as happened here..

You could remove the default listener and have only the managed and unmanaged ones but it makes little difference. I will add it regardless

Signed-off-by: Alex Zgabur <azgabur@redhat.com>
@azgabur azgabur force-pushed the dns_section_refactor branch from d223cc1 to 352adca Compare October 23, 2025 10:30
@averevki
Copy link
Copy Markdown
Contributor

/make dnstls

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 23, 2025

Test run completed (make dnstls) and can be found here

Short Test Summary
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider - httpx.ConnectError: [Errno -2] Name or service not known
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener - httpx.ConnectError: [Errno -2] Name or service not known
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint - AssertionError: assert False
 +  where False = wait_until(<function has_record_condition.<locals>._check at 0x7f7f744c3a60>)
 +    where wait_until = <testsuite.kuadrant.policy.dns.DNSPolicy object at 0x7f7f744da090>.wait_until
 +    and   <function has_record_condition.<locals>._check at 0x7f7f744c3a60> = has_record_condition('Ready', 'False', 'HealthChecksFailed', 'Not publishing unhealthy records')
FAILED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref - assert not True
 +  where True = has_dns_error()
 +    where has_dns_error = <testsuite.httpx.Result object at 0x7f7f740408c0>.has_dns_error
ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:21Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:40:02Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:43Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:44Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:52:45Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:52:46Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
======= 4 failed, 13 passed, 1 skipped, 15 errors in 1287.63s (0:21:27) ========
Full Output
poetry lock
Creating virtualenv kuadrant-testsuite-6EPd9kcO-py3.12 in /home/runner/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies...

Writing lock file
Installing dependencies from lock file

Package operations: 59 installs, 0 updates, 0 removals

  - Installing pycparser (2.23)
  - Installing six (1.17.0)
  - Installing certifi (2025.10.5)
  - Installing cffi (2.0.0)
  - Installing h11 (0.16.0)
  - Installing charset-normalizer (3.4.4)
  - Installing iniconfig (2.3.0)
  - Installing idna (3.11)
  - Installing jmespath (1.0.1)
  - Installing lark (0.12.0)
  - Installing packaging (25.0)
  - Installing pluggy (1.6.0)
  - Installing pygments (2.19.2)
  - Installing python-dateutil (2.9.0.post0)
  - Installing pyyaml (6.0.3)
  - Installing sniffio (1.3.1)
  - Installing types-python-dateutil (2.9.0.20251008)
  - Installing types-pyyaml (6.0.12.20250915)
  - Installing typing-extensions (4.15.0)
  - Installing urllib3 (2.5.0)
  - Installing anyio (4.11.0)
  - Installing cel-python (0.2.0)
  - Installing cryptography (46.0.3)
  - Installing google-re2 (1.1.20250805)
  - Installing grpcio (1.76.0)
  - Installing hpack (4.1.0)
  - Installing httpcore (1.0.9)
  - Installing hyperframe (6.1.0)
  - Installing markupsafe (3.0.3)
  - Installing protobuf (6.33.0)
  - Installing pyproject-hooks (1.2.0)
  - Installing pytest (8.4.2)
  - Installing requests (2.32.5)
  - Installing aiofiles (25.1.0)
  - Installing async-property (0.2.2)
  - Installing build (1.3.0)
  - Installing deprecation (2.1.0)
  - Installing execnet (2.1.1)
  - Installing googleapis-common-protos (1.71.0)
  - Installing h2 (4.3.0)
  - Installing grpc-interceptor (0.15.4)
  - Installing httpx (0.28.1)
  - Installing jinja2 (3.1.6)
  - Installing requests-toolbelt (1.0.0)
  - Installing pytest-metadata (3.1.1)
  - Installing jwcrypto (1.5.6)
  - Installing protovalidate (1.0.0)
  - Installing apyproxy (0.2.2)
  - Installing authzed (1.23.0)
  - Installing backoff (2.2.1)
  - Installing dnspython (2.8.0)
  - Installing dynaconf (3.2.12)
  - Installing lxml (6.0.2)
  - Installing openshift-client (2.0.5)
  - Installing pyjwt (2.10.1)
  - Installing pytest-html (4.1.1)
  - Installing pytest-xdist (3.8.0)
  - Installing python-keycloak (5.8.1)
  - Installing weakget (1.0)
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/annotations_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/annotations_pb2.pyi over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/http_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/http_pb2.pyi over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/rpc/status_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/rpc/status_pb2.pyi over existing file
poetry run python -m pytest --tb=short -o cache_dir=./.pytest_cache.dnstls -n4 -m 'dnspolicy or tlspolicy' --dist loadfile --enforce -vv testsuite
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.4.2, pluggy-1.6.0 -- /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
cachedir: .pytest_cache.dnstls
metadata: {'Python': '3.12.3', 'Platform': 'Linux-6.11.0-1018-azure-x86_64-with-glibc2.39', 'Packages': {'pytest': '8.4.2', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.11.0', 'html': '4.1.1', 'xdist': '3.8.0', 'metadata': '3.1.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-17-jdk-amd64', 'Kuadrant': []}

rootdir: /home/runner/work/testsuite/testsuite
configfile: pyproject.toml
plugins: anyio-4.11.0, html-4.1.1, xdist-3.8.0, metadata-3.1.1
created: 4/4 workers
4 workers [33 items]

scheduling tests via LoadFileScheduling

testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_common_name 
testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_wrong_issuer_type 
[gw1] [  3%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[TLSPolicy] 
[gw1] [  6%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[TLSPolicy] 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
[gw0] [  9%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_wrong_issuer_type 
testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_non_existing_issuer 
[gw0] [ 12%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_non_existing_issuer 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider 
[gw2] [ 15%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_common_name 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_duration 
[gw2] [ 18%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_duration 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_usages 
[gw2] [ 21%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_usages 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_algorithm 
[gw2] [ 24%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_algorithm 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http 
[gw0] [ 27%] FAILED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
[gw1] [ 30%] ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw1] [ 33%] ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
[gw1] [ 36%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener 
[gw3] [ 39%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] 
[gw3] [ 42%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] 
[gw2] [ 45%] ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_multiple_default_providers.py::test_multiple_default_provider_secrets 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint 
[gw3] [ 48%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_multiple_default_providers.py::test_multiple_default_provider_secrets 
testsuite/tests/singlecluster/gateway/dnspolicy/test_no_dns_provider_secret.py::test_default_secret_provider_not_found 
[gw3] [ 51%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_no_dns_provider_secret.py::test_default_secret_provider_not_found 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
[gw0] [ 54%] ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
[gw1] [ 57%] FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
[gw2] [ 60%] ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint 
[gw3] [ 63%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 
[gw0] [ 66%] ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/test_delegate_and_provider_ref.py::test_delegate_true_and_provider_ref_are_mutually_exclusive 
[gw0] [ 69%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_delegate_and_provider_ref.py::test_delegate_true_and_provider_ref_are_mutually_exclusive 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 
[gw1] [ 72%] ERROR testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
[gw1] [ 75%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw2] [ 78%] FAILED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
[gw2] [ 81%] FAILED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status 
[gw3] [ 84%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref 
[gw0] [ 87%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 
[gw1] [ 90%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw2] [ 93%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status 
[gw3] [ 96%] ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref 
testsuite/tests/singlecluster/gateway/test_external_ca.py::test_letsencrypt 
[gw3] [100%] SKIPPED testsuite/tests/singlecluster/gateway/test_external_ca.py::test_letsencrypt 

==================================== ERRORS ====================================
___________________ ERROR at setup of test_gateway_readiness ___________________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
_________________ ERROR at setup of test_gateway_basic_dns_tls _________________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
____________ ERROR at setup of test_two_policies_one_gw[DNSPolicy] _____________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
____________ ERROR at setup of test_two_policies_one_gw[TLSPolicy] _____________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
_________________ ERROR at setup of test_healthy_endpoint_http _________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py:39: in commit
    dns_policy.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:21Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
__________________ ERROR at setup of test_additional_headers ___________________
[gw0] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py:79: in commit
    dns_policy.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:40:02Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
------------------------------ Captured log setup ------------------------------
10:40:01 +0000 INFO:httpx:HTTP Request: PUT http://172.18.255.212:8080/mockserver/expectation "HTTP/1.1 201 Created"
____________________ ERROR at setup of test_remove_endpoint ____________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/conftest.py:58: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
_____________ ERROR at setup of test_update_auth_policy_target_ref _____________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:43Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:44Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
___________________ ERROR at setup of test_healthy_endpoint ____________________
[gw0] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/conftest.py:58: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
___________________ ERROR at setup of test_dnspolicy_removal ___________________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py:28: in commit
    dns_policy.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
__________ ERROR at setup of test_update_ratelimit_policy_target_ref ___________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
_______________________ ERROR at setup of test_listeners _______________________
[gw0] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
____________________ ERROR at setup of test_change_listener ____________________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
____________________ ERROR at setup of test_gateway_status _____________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/conftest.py:92: in commit
    component.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:52:45Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:52:46Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
_____________ ERROR at setup of test_update_tls_policy_target_ref ______________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/conftest.py:104: in dns_policy2
    policy.wait_for_ready()
testsuite/kuadrant/policy/__init__.py:79: in wait_for_ready
    self.wait_for_full_enforced()
testsuite/kuadrant/policy/dns.py:182: in wait_for_full_enforced
    super().wait_for_full_enforced(timelimit=timelimit)
testsuite/kuadrant/policy/__init__.py:99: in wait_for_full_enforced
    assert success, f"{self.kind()} didn't reach required state, instead it was: {self.model.status.conditions}"
           ^^^^^^^
E   AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
=================================== FAILURES ===================================
__________________________ test_default_dns_provider ___________________________
[gw0] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:101: in map_httpcore_exceptions
    yield
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request
    resp = self._pool.handle_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request
    raise exc from None
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request
    response = connection.handle_request(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request
    raise exc
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request
    stream = self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp
    with map_exceptions(exc_map):
/usr/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_exceptions.py:14: in map_exceptions
    raise to_exc(exc) from exc
E   httpcore.ConnectError: [Errno -2] Name or service not known

The above exception was the direct cause of the following exception:
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py:63: in test_default_dns_provider
    assert response.status_code == 200
           ^^^^^^^^^^^^^^^^^^^^
testsuite/httpx/__init__.py:88: in __getattr__
    raise self.error
testsuite/httpx/__init__.py:168: in request
    response = super().request(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:825: in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:914: in send
    response = self._send_handling_auth(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth
    response = self._send_handling_redirects(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects
    response = self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request
    response = transport.handle_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request
    with map_httpcore_exceptions():
/usr/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:118: in map_httpcore_exceptions
    raise mapped_exc(message) from exc
E   httpx.ConnectError: [Errno -2] Name or service not known
------------------------------ Captured log call -------------------------------
10:39:20 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:39:21 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:39:22 +0000 INFO:backoff:Backing off request(...) for 2.0s (Result[error=[Errno -2] Name or service not known])
10:39:24 +0000 INFO:backoff:Backing off request(...) for 3.0s (Result[error=[Errno -2] Name or service not known])
10:39:27 +0000 INFO:backoff:Backing off request(...) for 5.0s (Result[error=[Errno -2] Name or service not known])
10:39:32 +0000 INFO:backoff:Backing off request(...) for 8.0s (Result[error=[Errno -2] Name or service not known])
10:39:41 +0000 INFO:backoff:Backing off request(...) for 13.0s (Result[error=[Errno -2] Name or service not known])
10:39:54 +0000 ERROR:backoff:Giving up request(...) after 8 tries (Result[error=[Errno -2] Name or service not known])
___________ test_dns_policy_section_name_targeting_gateway_listener ____________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:101: in map_httpcore_exceptions
    yield
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:250: in handle_request
    resp = self._pool.handle_request(req)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:256: in handle_request
    raise exc from None
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection_pool.py:236: in handle_request
    response = connection.handle_request(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:101: in handle_request
    raise exc
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:78: in handle_request
    stream = self._connect(request)
             ^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_sync/connection.py:124: in _connect
    stream = self._network_backend.connect_tcp(**kwargs)
             ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_backends/sync.py:207: in connect_tcp
    with map_exceptions(exc_map):
/usr/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpcore/_exceptions.py:14: in map_exceptions
    raise to_exc(exc) from exc
E   httpcore.ConnectError: [Errno -2] Name or service not known

The above exception was the direct cause of the following exception:
testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py:137: in test_dns_policy_section_name_targeting_gateway_listener
    assert response_managed.status_code == 200, "Managed domain should be accessible"
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
testsuite/httpx/__init__.py:88: in __getattr__
    raise self.error
testsuite/httpx/__init__.py:168: in request
    response = super().request(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:825: in request
    return self.send(request, auth=auth, follow_redirects=follow_redirects)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:914: in send
    response = self._send_handling_auth(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:942: in _send_handling_auth
    response = self._send_handling_redirects(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:979: in _send_handling_redirects
    response = self._send_single_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_client.py:1014: in _send_single_request
    response = transport.handle_request(request)
               ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:249: in handle_request
    with map_httpcore_exceptions():
/usr/lib/python3.12/contextlib.py:158: in __exit__
    self.gen.throw(value)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/httpx/_transports/default.py:118: in map_httpcore_exceptions
    raise mapped_exc(message) from exc
E   httpx.ConnectError: [Errno -2] Name or service not known
------------------------------ Captured log call -------------------------------
10:45:00 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:45:01 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:45:02 +0000 INFO:backoff:Backing off request(...) for 2.0s (Result[error=[Errno -2] Name or service not known])
10:45:04 +0000 INFO:backoff:Backing off request(...) for 3.0s (Result[error=[Errno -2] Name or service not known])
10:45:07 +0000 INFO:backoff:Backing off request(...) for 5.0s (Result[error=[Errno -2] Name or service not known])
10:45:12 +0000 INFO:backoff:Backing off request(...) for 8.0s (Result[error=[Errno -2] Name or service not known])
10:45:20 +0000 INFO:backoff:Backing off request(...) for 13.0s (Result[error=[Errno -2] Name or service not known])
10:45:33 +0000 ERROR:backoff:Giving up request(...) after 8 tries (Result[error=[Errno -2] Name or service not known])
___________________________ test_unhealthy_endpoint ____________________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py:40: in test_unhealthy_endpoint
    assert dns_policy.wait_until(
E   AssertionError: assert False
E    +  where False = wait_until(<function has_record_condition.<locals>._check at 0x7f7f744c3a60>)
E    +    where wait_until = <testsuite.kuadrant.policy.dns.DNSPolicy object at 0x7f7f744da090>.wait_until
E    +    and   <function has_record_condition.<locals>._check at 0x7f7f744c3a60> = has_record_condition('Ready', 'False', 'HealthChecksFailed', 'Not publishing unhealthy records')
------------------------------ Captured log call -------------------------------
10:50:14 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:50:15 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:50:16 +0000 INFO:backoff:Backing off request(...) for 2.0s (Result[error=[Errno -2] Name or service not known])
10:50:18 +0000 INFO:backoff:Backing off request(...) for 3.0s (Result[error=[Errno -2] Name or service not known])
10:50:21 +0000 INFO:backoff:Backing off request(...) for 5.0s (Result[error=[Errno -2] Name or service not known])
10:50:26 +0000 INFO:backoff:Backing off request(...) for 8.0s (Result[error=[Errno -2] Name or service not known])
10:50:34 +0000 INFO:backoff:Backing off request(...) for 13.0s (Result[error=[Errno -2] Name or service not known])
10:50:47 +0000 ERROR:backoff:Giving up request(...) after 8 tries (Result[error=[Errno -2] Name or service not known])
______________________ test_update_dns_policy_target_ref _______________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py:21: in test_update_dns_policy_target_ref
    assert not response.has_dns_error()
E   assert not True
E    +  where True = has_dns_error()
E    +    where has_dns_error = <testsuite.httpx.Result object at 0x7f7f740408c0>.has_dns_error
------------------------------ Captured log call -------------------------------
10:52:06 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:52:07 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -2] Name or service not known])
10:52:08 +0000 INFO:backoff:Backing off request(...) for 2.0s (Result[error=[Errno -2] Name or service not known])
10:52:10 +0000 INFO:backoff:Backing off request(...) for 3.0s (Result[error=[Errno -2] Name or service not known])
10:52:13 +0000 INFO:backoff:Backing off request(...) for 5.0s (Result[error=[Errno -2] Name or service not known])
10:52:18 +0000 INFO:backoff:Backing off request(...) for 8.0s (Result[error=[Errno -2] Name or service not known])
10:52:26 +0000 INFO:backoff:Backing off request(...) for 13.0s (Result[error=[Errno -2] Name or service not known])
10:52:39 +0000 ERROR:backoff:Giving up request(...) after 8 tries (Result[error=[Errno -2] Name or service not known])
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider - httpx.ConnectError: [Errno -2] Name or service not known
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener - httpx.ConnectError: [Errno -2] Name or service not known
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint - AssertionError: assert False
 +  where False = wait_until(<function has_record_condition.<locals>._check at 0x7f7f744c3a60>)
 +    where wait_until = <testsuite.kuadrant.policy.dns.DNSPolicy object at 0x7f7f744da090>.wait_until
 +    and   <function has_record_condition.<locals>._check at 0x7f7f744c3a60> = has_record_condition('Ready', 'False', 'HealthChecksFailed', 'Not publishing unhealthy records')
FAILED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref - assert not True
 +  where True = has_dns_error()
 +    where has_dns_error = <testsuite.httpx.Result object at 0x7f7f740408c0>.has_dns_error
ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:13Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:19Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:39:21Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:39:20Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:40:02Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:40:01Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:44:34Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:44:43Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:44:44Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}, {'lastTransitionTime': '2025-10-23T10:45:15Z', 'message': 'All sub-resources are healthy', 'reason': 'SubResourcesHealthy', 'status': 'True', 'type': 'SubResourcesHealthy'}]
ERROR testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:45:39Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:49:51Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:38Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:50:58Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:52:45Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:52:46Z', 'message': 'DNSPolicy has encountered some issues: policy is not enforced on any DNSRecord: not a single DNSRecord is ready', 'reason': 'Unknown', 'status': 'False', 'type': 'Enforced'}]
ERROR testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref - AssertionError: dnspolicy didn't reach required state, instead it was: [{'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been accepted', 'reason': 'Accepted', 'status': 'True', 'type': 'Accepted'}, {'lastTransitionTime': '2025-10-23T10:55:04Z', 'message': 'DNSPolicy has been successfully enforced : no DNSRecords created based on policy and gateway configuration', 'reason': 'Enforced', 'status': 'True', 'type': 'Enforced'}]
======= 4 failed, 13 passed, 1 skipped, 15 errors in 1287.63s (0:21:27) ========
make: *** [Makefile:70: dnstls] Error 1

@github-actions
Copy link
Copy Markdown

github-actions Bot commented Oct 23, 2025

Test run completed (make dnstls) and can be found here

Short Test Summary
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: unmanaged.x9kwjwm.aws.kuadrant-qe.hcpapps.net. IN A
FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix2-runner--5x84.aa4cyda.aws.kuadrant-qe.hcpapps.net. IN A
FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix1-runner--ndhu.38bnhrk.aws.kuadrant-qe.hcpapps.net. IN A
============= 3 failed, 29 passed, 1 skipped in 357.92s (0:05:57) ==============
Full Output
poetry lock
Creating virtualenv kuadrant-testsuite-6EPd9kcO-py3.12 in /home/runner/.cache/pypoetry/virtualenvs
Updating dependencies
Resolving dependencies...

Writing lock file
Installing dependencies from lock file

Package operations: 59 installs, 0 updates, 0 removals

  - Installing pycparser (2.23)
  - Installing six (1.17.0)
  - Installing certifi (2025.10.5)
  - Installing cffi (2.0.0)
  - Installing charset-normalizer (3.4.4)
  - Installing h11 (0.16.0)
  - Installing idna (3.11)
  - Installing iniconfig (2.3.0)
  - Installing jmespath (1.0.1)
  - Installing lark (0.12.0)
  - Installing packaging (25.0)
  - Installing pluggy (1.6.0)
  - Installing pygments (2.19.2)
  - Installing python-dateutil (2.9.0.post0)
  - Installing pyyaml (6.0.3)
  - Installing sniffio (1.3.1)
  - Installing types-python-dateutil (2.9.0.20251008)
  - Installing types-pyyaml (6.0.12.20250915)
  - Installing typing-extensions (4.15.0)
  - Installing urllib3 (2.5.0)
  - Installing anyio (4.11.0)
  - Installing cel-python (0.2.0)
  - Installing cryptography (46.0.3)
  - Installing google-re2 (1.1.20250805)
  - Installing grpcio (1.76.0)
  - Installing hpack (4.1.0)
  - Installing httpcore (1.0.9)
  - Installing hyperframe (6.1.0)
  - Installing markupsafe (3.0.3)
  - Installing protobuf (6.33.0)
  - Installing pyproject-hooks (1.2.0)
  - Installing pytest (8.4.2)
  - Installing requests (2.32.5)
  - Installing aiofiles (25.1.0)
  - Installing async-property (0.2.2)
  - Installing build (1.3.0)
  - Installing deprecation (2.1.0)
  - Installing execnet (2.1.1)
  - Installing googleapis-common-protos (1.71.0)
  - Installing grpc-interceptor (0.15.4)
  - Installing h2 (4.3.0)
  - Installing httpx (0.28.1)
  - Installing jinja2 (3.1.6)
  - Installing jwcrypto (1.5.6)
  - Installing protovalidate (1.0.0)
  - Installing pytest-metadata (3.1.1)
  - Installing requests-toolbelt (1.0.0)
  - Installing apyproxy (0.2.2)
  - Installing authzed (1.23.0)
  - Installing backoff (2.2.1)
  - Installing dnspython (2.8.0)
  - Installing dynaconf (3.2.12)
  - Installing lxml (6.0.2)
  - Installing openshift-client (2.0.5)
  - Installing pyjwt (2.10.1)
  - Installing pytest-html (4.1.1)
  - Installing pytest-xdist (3.8.0)
  - Installing python-keycloak (5.8.1)
  - Installing weakget (1.0)
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/annotations_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/annotations_pb2.pyi over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/http_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/api/http_pb2.pyi over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/rpc/status_pb2.py over existing file
Installing /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/google/rpc/status_pb2.pyi over existing file
poetry run python -m pytest --tb=short -o cache_dir=./.pytest_cache.dnstls -n4 -m 'dnspolicy or tlspolicy' --dist loadfile --enforce -vv testsuite
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-8.4.2, pluggy-1.6.0 -- /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
cachedir: .pytest_cache.dnstls
metadata: {'Python': '3.12.3', 'Platform': 'Linux-6.11.0-1018-azure-x86_64-with-glibc2.39', 'Packages': {'pytest': '8.4.2', 'pluggy': '1.6.0'}, 'Plugins': {'anyio': '4.11.0', 'html': '4.1.1', 'xdist': '3.8.0', 'metadata': '3.1.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-17-jdk-amd64', 'Kuadrant': []}

rootdir: /home/runner/work/testsuite/testsuite
configfile: pyproject.toml
plugins: anyio-4.11.0, html-4.1.1, xdist-3.8.0, metadata-3.1.1
created: 4/4 workers
4 workers [33 items]

scheduling tests via LoadFileScheduling

testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_common_name 
testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_wrong_issuer_type 
testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] 
[gw1] [  3%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[TLSPolicy] 
[gw1] [  6%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_gw_doesnt_exist.py::test_no_gw[TLSPolicy] 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
[gw2] [  9%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_wrong_issuer_type 
testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_non_existing_issuer 
[gw2] [ 12%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_non_existing_issuer 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider 
[gw0] [ 15%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_common_name 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_duration 
[gw0] [ 18%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_duration 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_usages 
[gw0] [ 21%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_usages 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_algorithm 
[gw0] [ 24%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_algorithm 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http 
[gw2] [ 27%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
[gw1] [ 30%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw1] [ 33%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw3] [ 36%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[DNSPolicy] 
testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
[gw3] [ 39%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] 
[gw0] [ 42%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_multiple_default_providers.py::test_multiple_default_provider_secrets 
[gw1] [ 45%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener 
[gw3] [ 48%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_multiple_default_providers.py::test_multiple_default_provider_secrets 
[gw2] [ 51%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
[gw2] [ 54%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/test_delegate_and_provider_ref.py::test_delegate_true_and_provider_ref_are_mutually_exclusive 
[gw2] [ 57%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_delegate_and_provider_ref.py::test_delegate_true_and_provider_ref_are_mutually_exclusive 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref 
[gw0] [ 60%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint 
[gw1] [ 63%] FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener 
testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
[gw1] [ 66%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
[gw3] [ 69%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
[gw2] [ 72%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_tlspolicy_target_ref.py::test_update_tls_policy_target_ref 
[gw0] [ 75%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 
testsuite/tests/singlecluster/gateway/dnspolicy/test_no_dns_provider_secret.py::test_default_secret_provider_not_found 
[gw0] [ 78%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_no_dns_provider_secret.py::test_default_secret_provider_not_found 
testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status 
[gw2] [ 81%] FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw0] [ 84%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status 
[gw3] [ 87%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 
[gw1] [ 90%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
testsuite/tests/singlecluster/gateway/test_external_ca.py::test_letsencrypt 
[gw1] [ 93%] SKIPPED testsuite/tests/singlecluster/gateway/test_external_ca.py::test_letsencrypt 
[gw2] [ 96%] FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw3] [100%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 

=================================== FAILURES ===================================
___________ test_dns_policy_section_name_targeting_gateway_listener ____________
[gw1] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py:142: in test_dns_policy_section_name_targeting_gateway_listener
    assert is_nxdomain(unmanaged_domain), "Unmanaged domain should not resolve (NXDOMAIN expected)"
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
testsuite/utils.py:200: in is_nxdomain
    dns.resolver.resolve(hostname)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1572: in resolve
    return get_default_resolver().resolve(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1340: in resolve
    (answer, done) = resolution.query_result(response, None)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:845: in query_result
    raise NoAnswer(response=answer.response)
E   dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: unmanaged.x9kwjwm.aws.kuadrant-qe.hcpapps.net. IN A
------------------------------ Captured log call -------------------------------
11:56:04 +0000 INFO:httpx:HTTP Request: GET http://managed.x9kwjwm.aws.kuadrant-qe.hcpapps.net/get "HTTP/1.1 200 OK"
11:56:04 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:06 +0000 INFO:backoff:Backing off request(...) for 1.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:07 +0000 INFO:backoff:Backing off request(...) for 2.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:09 +0000 INFO:backoff:Backing off request(...) for 3.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:12 +0000 INFO:backoff:Backing off request(...) for 5.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:17 +0000 INFO:backoff:Backing off request(...) for 8.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:25 +0000 INFO:backoff:Backing off request(...) for 13.0s (Result[error=[Errno -5] No address associated with hostname])
11:56:38 +0000 ERROR:backoff:Giving up request(...) after 8 tries (Result[error=[Errno -5] No address associated with hostname])
________________________________ test_listeners ________________________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py:26: in test_listeners
    assert is_nxdomain(second_domain)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^
testsuite/utils.py:200: in is_nxdomain
    dns.resolver.resolve(hostname)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1572: in resolve
    return get_default_resolver().resolve(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1340: in resolve
    (answer, done) = resolution.query_result(response, None)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:845: in query_result
    raise NoAnswer(response=answer.response)
E   dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix2-runner--5x84.aa4cyda.aws.kuadrant-qe.hcpapps.net. IN A
------------------------------ Captured log call -------------------------------
11:57:52 +0000 INFO:httpx:HTTP Request: GET https://prefix1-runner--wuvu.aa4cyda.aws.kuadrant-qe.hcpapps.net/get "HTTP/1.1 200 OK"
_____________________________ test_change_listener _____________________________
[gw2] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py:31: in test_change_listener
    assert is_nxdomain(wildcard_domain)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
testsuite/utils.py:200: in is_nxdomain
    dns.resolver.resolve(hostname)
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1572: in resolve
    return get_default_resolver().resolve(
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:1340: in resolve
    (answer, done) = resolution.query_result(response, None)
                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
../../../.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/lib/python3.12/site-packages/dns/resolver.py:845: in query_result
    raise NoAnswer(response=answer.response)
E   dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix1-runner--ndhu.38bnhrk.aws.kuadrant-qe.hcpapps.net. IN A
------------------------------ Captured log call -------------------------------
11:58:14 +0000 INFO:httpx:HTTP Request: GET https://prefix1-runner--ndhu.38bnhrk.aws.kuadrant-qe.hcpapps.net/get "HTTP/1.1 200 OK"
11:59:27 +0000 INFO:httpx:HTTP Request: GET https://prefix2-runner--ifl2.38bnhrk.aws.kuadrant-qe.hcpapps.net/get "HTTP/1.1 200 OK"
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: unmanaged.x9kwjwm.aws.kuadrant-qe.hcpapps.net. IN A
FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix2-runner--5x84.aa4cyda.aws.kuadrant-qe.hcpapps.net. IN A
FAILED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener - dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: prefix1-runner--ndhu.38bnhrk.aws.kuadrant-qe.hcpapps.net. IN A
============= 3 failed, 29 passed, 1 skipped in 357.92s (0:05:57) ==============
make: *** [Makefile:70: dnstls] Error 1

@Kuadrant Kuadrant deleted a comment from github-actions Bot Oct 23, 2025
@fabikova
Copy link
Copy Markdown
Contributor

@azgabur I'm looking at the last CI run and I don't quite understand the failure - dns.resolver.NoAnswer. Could you explain what this failure means, please?

@azgabur
Copy link
Copy Markdown
Member Author

azgabur commented Oct 23, 2025

The github action bot and also my local ISP provider have access to dns resolvers that check dnssec so the error on some tests

dns.resolver.NoAnswer: The DNS response does not contain an answer to the question: unmanaged.x9kwjwm.***. IN A

happening when is_nxdomain util function checks for response expecting NXDOMAIN but getting NOERROR even though the domain actually does not exist, but due to recent DNSSEC enablement on our domains the authoritative nameserver actually contains 0-lenght NSEC record in the zone the as proof of non-existance and that causes NOERROR to be sent out indicating to the resolver "there is some other record under this name"
Two solutions:

  • Turn off dnssec as we do not test it anyways
  • Modify is_nxdomain to work with dnssec

I will take a look at second solution if it wont be feasible I will just turn off the dnssec

@fabikova
Copy link
Copy Markdown
Contributor

thanks for explanation!

@azgabur azgabur merged commit 5eeec83 into Kuadrant:main Oct 23, 2025
3 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants