Skip to content

test: kubectl-dns secret-generation command#841

Merged
averevki merged 1 commit intoKuadrant:mainfrom
averevki:dns-cli
Apr 13, 2026
Merged

test: kubectl-dns secret-generation command#841
averevki merged 1 commit intoKuadrant:mainfrom
averevki:dns-cli

Conversation

@averevki
Copy link
Copy Markdown
Contributor

@averevki averevki commented Jan 12, 2026

Description

  • Add support for kubectl-dns CLI tool integration to the test suite
  • Implement wrapper class and test for the kubectl-dns secret-generation command
  • Refactor CLI tooling by moving kuadrantctl into a dedicated testsuite/cli/ module

Verification steps

Run the new test:

make testsuite/tests/multicluster/coredns/two_clusters/kubectl_dns/test_secret_generation.py

Note: This test requires:

  • The kubectl-dns binary to be available in PATH or configured in config/settings.local.yaml
  • A multicluster CoreDNS setup with one primary and one secondary cluster
  • 2 kubeconfigs containing certificate-authority key with the cluster CA. You can set it for a kubeconfig by logging in with explicitly specified path to the cluster CA, aka. oc login --username=${} --password=${} <clusterapiurl> --certificate-authority=path/to/ca

Summary by CodeRabbit

Release Notes

  • New Features

    • Added support for multi-cluster CoreDNS secret generation using kubectl-dns.
  • Tests

    • Introduced test infrastructure and markers for command-line tool validation.
    • Added comprehensive test suite for multi-cluster DNS secret generation scenarios, including kubeconfig merging across clusters.
  • Chores

    • Updated default configuration to include kubectl-dns settings.

@averevki averevki requested review from azgabur and trepel January 12, 2026 17:08
@averevki averevki self-assigned this Jan 12, 2026
@averevki averevki added Test case New test case DNS Issues for DNSOperator labels Jan 12, 2026
@averevki averevki moved this to Ready For Review in Kuadrant Jan 12, 2026
@averevki averevki force-pushed the dns-cli branch 2 times, most recently from 6309fbe to aa44ba2 Compare January 13, 2026 13:53
@fabikova fabikova self-requested a review January 22, 2026 10:11
@averevki
Copy link
Copy Markdown
Contributor Author

/make smoke

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 26, 2026

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

Short Test Summary
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] - assert 200 == 401
 +  where 200 = <testsuite.httpx.Result object at 0x7f5627ccb170>.status_code
========================= 1 failed, 4 passed in 47.19s =========================
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: 64 installs, 0 updates, 0 removals

  - Installing aiofiles (25.1.0)
  - Installing anyio (4.12.1)
  - Installing apyproxy (0.2.2)
  - Installing authzed (1.24.1)
  - Installing backoff (2.2.1)
  - Installing build (1.4.0)
  - Installing cel-python (0.2.0)
  - Installing certifi (2026.1.4)
  - Installing cffi (2.0.0)
  - Installing charset-normalizer (3.4.4)
  - Installing cryptography (46.0.3)
  - Installing deprecation (2.1.0)
  - Installing dnspython (2.8.0)
  - Installing dynaconf (3.2.12)
  - Installing execnet (2.1.2)
  - Installing google-re2 (1.1.20251105)
  - Installing googleapis-common-protos (1.72.0)
  - Installing greenlet (3.3.1)
  - Installing grpc-interceptor (0.15.4)
  - Installing grpcio (1.76.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 h11 (0.16.0)
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 h2 (4.3.0)
  - Installing hpack (4.1.0)
  - Installing httpcore (1.0.9)
  - Installing httpx (0.28.1)
  - Installing hyperframe (6.1.0)
  - Installing idna (3.11)
  - Installing iniconfig (2.3.0)
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
  - Installing jinja2 (3.1.6)
  - Installing jmespath (1.1.0)
  - Installing jwcrypto (1.5.6)
  - Installing lark (0.12.0)
  - Installing lxml (6.0.2)
  - Installing markupsafe (3.0.3)
  - Installing openshift-client (2.0.5)
  - Installing packaging (26.0)
  - Installing playwright (1.57.0)
  - Installing pluggy (1.6.0)
  - Installing protobuf (6.33.4)
  - Installing protovalidate (1.0.0)
  - Installing pycparser (3.0)
  - Installing pyee (13.0.0)
  - Installing pygments (2.19.2)
  - Installing pyjwt (2.10.1)
  - Installing pyproject-hooks (1.2.0)
  - Installing pytest (9.0.2)
  - Installing pytest-base-url (2.1.0)
  - Installing pytest-html (4.2.0)
  - Installing pytest-metadata (3.1.1)
  - Installing pytest-playwright (0.7.2)
  - Installing pytest-xdist (3.8.0)
  - Installing python-dateutil (2.9.0.post0)
  - Installing python-keycloak (7.0.2)
  - Installing python-slugify (8.0.4)
  - Installing pyyaml (6.0.3)
  - Installing requests (2.32.5)
  - Installing requests-toolbelt (1.0.0)
  - Installing six (1.17.0)
  - Installing text-unidecode (1.3)
  - Installing types-python-dateutil (2.9.0.20260124)
  - Installing types-pyyaml (6.0.12.20250915)
  - Installing typing-extensions (4.15.0)
  - Installing urllib3 (2.6.3)
  - Installing weakget (1.0)
poetry run python -m pytest --tb=short -o cache_dir=./.pytest_cache.smoke -n4 -m 'smoke' --dist loadfile --enforce -vv testsuite/tests/
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
cachedir: .pytest_cache.smoke
metadata: {'Python': '3.12.3', 'Platform': 'Linux-6.11.0-1018-azure-x86_64-with-glibc2.39', 'Packages': {'pytest': '9.0.2', 'pluggy': '1.6.0'}, 'Plugins': {'base-url': '2.1.0', 'playwright': '0.7.2', 'xdist': '3.8.0', 'html': '4.2.0', 'anyio': '4.12.1', 'metadata': '3.1.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-17-jdk-amd64', 'Base URL': '', 'Kuadrant': []}

rootdir: /home/runner/work/testsuite/testsuite
configfile: pyproject.toml
plugins: base-url-2.1.0, playwright-0.7.2, xdist-3.8.0, html-4.2.0, anyio-4.12.1, metadata-3.1.1
created: 4/4 workers
4 workers [5 items]

scheduling tests via LoadFileScheduling

testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-route] 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] 
[gw3] [ 20%] FAILED testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] 
[gw0] [ 40%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw1] [ 60%] PASSED testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-route] 
testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-gateway] 
[gw1] [ 80%] PASSED testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-gateway] 
[gw0] [100%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 

=================================== FAILURES ===================================
_________________________ test_auth_identity[keycloak] _________________________
[gw3] linux -- Python 3.12.3 /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py:41: in test_auth_identity
    assert response.status_code == 401
E   assert 200 == 401
E    +  where 200 = <testsuite.httpx.Result object at 0x7f5627ccb170>.status_code
------------------------------ Captured log call -------------------------------
15:40:48 +0000 INFO:httpx:HTTP Request: GET http://172.18.255.207/get "HTTP/1.1 200 OK"
=========================== short test summary info ============================
FAILED testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] - assert 200 == 401
 +  where 200 = <testsuite.httpx.Result object at 0x7f5627ccb170>.status_code
========================= 1 failed, 4 passed in 47.19s =========================
make: *** [Makefile:33: smoke] Error 1

@averevki
Copy link
Copy Markdown
Contributor Author

/make smoke

@github-actions
Copy link
Copy Markdown

github-actions bot commented Jan 26, 2026

Test run completed (make smoke) 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: 64 installs, 0 updates, 0 removals

  - Installing aiofiles (25.1.0)
  - Installing anyio (4.12.1)
  - Installing apyproxy (0.2.2)
  - Installing authzed (1.24.1)
  - Installing backoff (2.2.1)
  - Installing build (1.4.0)
  - Installing cel-python (0.2.0)
  - Installing certifi (2026.1.4)
  - Installing cffi (2.0.0)
  - Installing charset-normalizer (3.4.4)
  - Installing cryptography (46.0.3)
  - Installing deprecation (2.1.0)
  - Installing dnspython (2.8.0)
  - Installing dynaconf (3.2.12)
  - Installing execnet (2.1.2)
  - Installing google-re2 (1.1.20251105)
  - Installing googleapis-common-protos (1.72.0)
  - Installing greenlet (3.3.1)
  - Installing grpc-interceptor (0.15.4)
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 grpcio (1.76.0)
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 h11 (0.16.0)
  - Installing h2 (4.3.0)
  - Installing hpack (4.1.0)
  - Installing httpcore (1.0.9)
  - Installing httpx (0.28.1)
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
  - Installing hyperframe (6.1.0)
  - Installing idna (3.11)
  - Installing iniconfig (2.3.0)
  - Installing jinja2 (3.1.6)
  - Installing jmespath (1.1.0)
  - Installing jwcrypto (1.5.6)
  - Installing lark (0.12.0)
  - Installing lxml (6.0.2)
  - Installing markupsafe (3.0.3)
  - Installing openshift-client (2.0.5)
  - Installing packaging (26.0)
  - Installing playwright (1.57.0)
  - Installing pluggy (1.6.0)
  - Installing protobuf (6.33.4)
  - Installing protovalidate (1.0.0)
  - Installing pycparser (3.0)
  - Installing pyee (13.0.0)
  - Installing pygments (2.19.2)
  - Installing pyjwt (2.10.1)
  - Installing pyproject-hooks (1.2.0)
  - Installing pytest (9.0.2)
  - Installing pytest-base-url (2.1.0)
  - Installing pytest-html (4.2.0)
  - Installing pytest-metadata (3.1.1)
  - Installing pytest-playwright (0.7.2)
  - Installing pytest-xdist (3.8.0)
  - Installing python-dateutil (2.9.0.post0)
  - Installing python-keycloak (7.0.2)
  - Installing python-slugify (8.0.4)
  - Installing pyyaml (6.0.3)
  - Installing requests (2.32.5)
  - Installing requests-toolbelt (1.0.0)
  - Installing six (1.17.0)
  - Installing text-unidecode (1.3)
  - Installing types-python-dateutil (2.9.0.20260124)
  - Installing types-pyyaml (6.0.12.20250915)
  - Installing typing-extensions (4.15.0)
  - Installing urllib3 (2.6.3)
  - Installing weakget (1.0)
poetry run python -m pytest --tb=short -o cache_dir=./.pytest_cache.smoke -n4 -m 'smoke' --dist loadfile --enforce -vv testsuite/tests/
============================= test session starts ==============================
platform linux -- Python 3.12.3, pytest-9.0.2, pluggy-1.6.0 -- /home/runner/.cache/pypoetry/virtualenvs/kuadrant-testsuite-6EPd9kcO-py3.12/bin/python
cachedir: .pytest_cache.smoke
metadata: {'Python': '3.12.3', 'Platform': 'Linux-6.11.0-1018-azure-x86_64-with-glibc2.39', 'Packages': {'pytest': '9.0.2', 'pluggy': '1.6.0'}, 'Plugins': {'base-url': '2.1.0', 'playwright': '0.7.2', 'xdist': '3.8.0', 'html': '4.2.0', 'anyio': '4.12.1', 'metadata': '3.1.1'}, 'CI': 'true', 'JAVA_HOME': '/usr/lib/jvm/temurin-17-jdk-amd64', 'Base URL': '', 'Kuadrant': []}

rootdir: /home/runner/work/testsuite/testsuite
configfile: pyproject.toml
plugins: base-url-2.1.0, playwright-0.7.2, xdist-3.8.0, html-4.2.0, anyio-4.12.1, metadata-3.1.1
created: 4/4 workers
4 workers [5 items]

scheduling tests via LoadFileScheduling

testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] 
testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-route] 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
[gw2] [ 20%] PASSED testsuite/tests/singlecluster/authorino/identity/auth/test_auth_identity.py::test_auth_identity[keycloak] 
[gw1] [ 40%] PASSED testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-route] 
testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-gateway] 
[gw0] [ 60%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_readiness 
testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 
[gw1] [ 80%] PASSED testsuite/tests/singlecluster/limitador/test_basic_limit.py::test_limit[2 requests every 15 sec-gateway] 
[gw0] [100%] PASSED testsuite/tests/singlecluster/gateway/test_basic.py::test_gateway_basic_dns_tls 

============================== 5 passed in 42.72s ==============================

Copy link
Copy Markdown
Member

@azgabur azgabur left a comment

Choose a reason for hiding this comment

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

Did not run the test yet

Comment thread testsuite/cli/kubectl_dns.py
Comment thread testsuite/kubernetes/client.py
azgabur
azgabur previously approved these changes Apr 8, 2026
Signed-off-by: averevki <sandyverevkin@gmail.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Apr 8, 2026

📝 Walkthrough

Walkthrough

The changes introduce a kubectl-dns CLI wrapper class, extend Kubernetes client utilities with kubeconfig merging and context-name retrieval, add configuration entries for kubectl-dns, define a CLI test marker, reorganise import paths, and implement a comprehensive test suite for kubectl-dns secret-generation validation in two-cluster CoreDNS setups.

Changes

Cohort / File(s) Summary
Configuration defaults
config/settings.local.yaml.tpl, config/settings.yaml
Added default kubectl-dns configuration entry with value "kubectl-dns" to both local template and default settings files.
Test infrastructure
pyproject.toml
Added new pytest marker cli to identify tests using CLI tools like kubectl-dns and kuadrantctl.
CLI wrapper tooling
testsuite/cli/kubectl_dns.py
Introduced KubectlDNS class wrapping kubectl-dns executable with run() method that executes subprocess commands with optional environment merging and default output capture settings.
Kubernetes client utilities
testsuite/kubernetes/client.py
Added current_context_name property to retrieve active kubeconfig context and create_merged_kubeconfig() method to merge two cluster configurations via temporary kubeconfig files with YAML parsing.
Import path updates
testsuite/tests/kuadrantctl/conftest.py
Updated KuadrantCTL import source from testsuite.kuadrantctl to testsuite.cli.kuadrantctl within existing fixture logic.
Secret-generation test suite
testsuite/tests/multicluster/coredns/two_clusters/kubectl_dns/test_secret_generation.py
Implemented CLI-marked test module with session-scoped binary-check fixture, module-scoped fixture executing kubectl-dns secret-generation against merged kubeconfig with cleanup finaliser, and test asserting DNS A record resolution matches expected IP addresses.

Sequence Diagram(s)

sequenceDiagram
    participant TS as Test Suite
    participant KD as KubectlDNS<br/>(CLI Wrapper)
    participant KC as Kubernetes<br/>Clusters
    participant DNS as DNS Resolution

    TS->>TS: Check kubectl-dns binary exists
    TS->>KC: Get primary cluster context
    TS->>KC: Get secondary cluster context
    TS->>KC: Create merged kubeconfig
    TS->>KD: Execute secret-generation command<br/>with merged config
    KD->>KC: Apply secret to secondary cluster
    KC-->>KD: Return exit code 0
    KD-->>TS: Command completed successfully
    TS->>DNS: Resolve configured hostname
    DNS-->>TS: Return A records (IP set)
    TS->>TS: Assert IPs match expected values
    TS->>KC: Delete generated secret<br/>(cleanup)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~25 minutes

Possibly related issues

Poem

🐰 Hops of joy through kubernetes streams,
Merging configs, fulfilling dreams!
kubectl-dns now has its test,
DNS secrets pass the quest! 🌐✨

🚥 Pre-merge checks | ✅ 2 | ❌ 1

❌ Failed checks (1 inconclusive)

Check name Status Explanation Resolution
Description check ❓ Inconclusive The PR description includes a description section explaining the changes, but lacks the structured 'Changes' and 'Verification' sections specified in the repository template. Reorganise the description to follow the template structure: separate 'Description', 'Changes', and 'Verification' sections with proper headings and formatting.
✅ Passed checks (2 passed)
Check name Status Explanation
Title check ✅ Passed The title follows the conventional commit format with 'test' type and clearly describes the main change: adding tests for the kubectl-dns secret-generation command, which aligns with the PR's primary objective.
Docstring Coverage ✅ Passed Docstring coverage is 90.00% which is sufficient. The required threshold is 80.00%.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@testsuite/kubernetes/client.py`:
- Around line 170-176: Before extending config1 with config2 entries, detect
name collisions among the "clusters", "contexts", and "users" entries by
comparing their metadata.name values (operate on config1 and config2 variables
and merged_config). If any duplicate names are found, either raise an exception
to fail fast or consistently rewrite config2's names (e.g., append a suffix) and
update all references inside config2's "contexts" (context.cluster and
context.user) and the "current-context" value accordingly, then perform the
merge using merged_config["clusters"].extend(...),
merged_config["contexts"].extend(...), merged_config["users"].extend(...).
Ensure the final merged_config has unique names across clusters/contexts/users
to avoid ambiguous lookups.

In
`@testsuite/tests/multicluster/coredns/two_clusters/kubectl_dns/test_secret_generation.py`:
- Line 11: Update the module-level pytest markers in the test file by adding the
multicluster and coredns_one_primary markers to the existing pytestmark list
(currently only contains pytest.mark.cli); locate the pytestmark definition and
change it to include pytest.mark.multicluster and
pytest.mark.coredns_one_primary alongside pytest.mark.cli so the test is
discovered when running suites filtered by those markers.
- Around line 23-24: The kubeconfig_secrets fixture is defined but never
executed; update its declaration so it runs automatically (e.g., change the
pytest.fixture(...) for kubeconfig_secrets to include autouse=True) or ensure
the tests explicitly request it, and if you make it autouse, register any
teardown with request.addfinalizer inside the kubeconfig_secrets function to
perform proper cleanup after kubectl_dns secret-generation runs; refer to the
kubeconfig_secrets fixture and the kubectl_dns secret-generation side effects
when making the change.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: b5fcb163-1c91-4e5a-94ac-2fbfd7d0ff9f

📥 Commits

Reviewing files that changed from the base of the PR and between d6450a3 and 6a382e0.

📒 Files selected for processing (10)
  • config/settings.local.yaml.tpl
  • config/settings.yaml
  • pyproject.toml
  • testsuite/cli/__init__.py
  • testsuite/cli/kuadrantctl.py
  • testsuite/cli/kubectl_dns.py
  • testsuite/kubernetes/client.py
  • testsuite/tests/kuadrantctl/conftest.py
  • testsuite/tests/multicluster/coredns/two_clusters/kubectl_dns/__init__.py
  • testsuite/tests/multicluster/coredns/two_clusters/kubectl_dns/test_secret_generation.py

Comment thread testsuite/kubernetes/client.py
@averevki averevki merged commit 41162ab into Kuadrant:main Apr 13, 2026
6 checks passed
@github-project-automation github-project-automation bot moved this from Ready For Review to Done in Kuadrant Apr 13, 2026
@averevki averevki deleted the dns-cli branch April 13, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

DNS Issues for DNSOperator Test case New test case

Projects

Status: Done

Development

Successfully merging this pull request may close these issues.

3 participants