Skip to content

Fix is_nxdomain returning NoAnswer#801

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

Fix is_nxdomain returning NoAnswer#801
azgabur merged 1 commit intoKuadrant:mainfrom
azgabur:is_nxdomain_fix

Conversation

@azgabur
Copy link
Copy Markdown
Member

@azgabur azgabur commented Oct 23, 2025

Fixes following problem: #799 (comment)

added check for AAAA records (futureproofing)

Signed-off-by: Alex Zgabur <azgabur@redhat.com>
@azgabur azgabur requested a review from averevki October 23, 2025 12:59
@azgabur
Copy link
Copy Markdown
Member Author

azgabur commented Oct 23, 2025

/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

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/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] 
testsuite/tests/singlecluster/gateway/reconciliation/test_invalid_issuer_reference.py::test_wrong_issuer_type 
testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_common_name 
[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 
[gw1] [ 15%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw0] [ 18%] 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] [ 21%] 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] [ 24%] 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] [ 27%] PASSED testsuite/tests/singlecluster/gateway/tlspolicy/test_cert_parameters.py::test_tls_cert_algorithm 
[gw1] [ 30%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_remove_endpoint.py::test_remove_endpoint 
[gw2] [ 33%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_default_provider.py::test_default_dns_provider 
testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
[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] 
[gw1] [ 39%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_no_default_provider.py::test_no_default_provider_secrets 
[gw3] [ 42%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_same_target.py::test_two_policies_one_gw[TLSPolicy] 
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 
[gw3] [ 45%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/default_provider/test_multiple_default_providers.py::test_multiple_default_provider_secrets 
[gw2] [ 48%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_additional_headers.py::test_additional_headers 
testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
[gw1] [ 51%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint_http.py::test_healthy_endpoint_http 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dns_policy_section_targeting_gateway.py::test_dns_policy_section_name_targeting_gateway_listener 
[gw3] [ 54%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_invalid_credentials.py::test_invalid_credentials 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
[gw2] [ 57%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_healthy_endpoint.py::test_healthy_endpoint 
testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
[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%] PASSED 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_no_dns_provider_secret.py::test_default_secret_provider_not_found 
[gw1] [ 66%] 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_tlspolicy_target_ref.py::test_update_tls_policy_target_ref 
[gw3] [ 69%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_authpolicy_target_ref.py::test_update_auth_policy_target_ref 
[gw0] [ 72%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/health_check/test_unhealthy_endpoint.py::test_unhealthy_endpoint 
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_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
[gw0] [ 75%] 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/test_affected_by.py::test_gateway_status 
[gw0] [ 78%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/test_affected_by.py::test_gateway_status 
[gw2] [ 81%] PASSED testsuite/tests/singlecluster/gateway/dnspolicy/test_dnspolicy_removal.py::test_dnspolicy_removal 
testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 
[gw1] [ 84%] PASSED 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 
[gw1] [ 87%] SKIPPED testsuite/tests/singlecluster/gateway/test_external_ca.py::test_letsencrypt 
[gw2] [ 90%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_ratelimitpolicy_target_ref.py::test_update_ratelimit_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw3] [ 93%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/change_targetref/test_update_dnspolicy_target_ref.py::test_update_dns_policy_target_ref 
testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 
[gw2] [ 96%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_listeners_dns.py::test_change_listener 
[gw3] [100%] PASSED testsuite/tests/singlecluster/gateway/reconciliation/listeners/test_gateway_basic_listeners.py::test_listeners 

================== 32 passed, 1 skipped in 490.30s (0:08:10) ===================

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.

👍

@azgabur azgabur merged commit 922fb7b 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.

2 participants