fix(ci,kubenuc): derive CoreDNS test-hosts and DNS checks from live Ingress objects - #1846
Merged
Merged
Conversation
…ngress objects validate-kubenuc.yml's CoreDNS override and DNS-verification steps hardcoded a placeholder-domain list, but the Robot Framework suite tests real hosts read from live Ingress objects, so the override never matched and every kubenuc PR's cluster-test job failed with ERR_NAME_NOT_RESOLVED. Both steps now discover hosts at runtime via kubectl+jq against the same Ingress objects discover_ingresses() reads, so the override and the tested hosts always agree, with no hardcoded domain (placeholder or real) left in the workflow. Signed-off-by: Daniele De Lorenzi <2905124+dark-vex@users.noreply.github.com>
validate-kubenuc.yml only runs cluster-test on PRs touching clusters/kubenuc/**, and this PR is otherwise workflow-only — add a no-op comment here to trigger the path filter and validate the CoreDNS fix for real before merging. Will be dropped in a follow-up commit once confirmed green. Signed-off-by: Daniele De Lorenzi <2905124+dark-vex@users.noreply.github.com>
kubenuc-full-cluster-e2e's cluster-test job ran clean on this PR (real discovered ingress hosts resolved via CoreDNS, DNS-verification step passed, Robot Framework ingress reachability test PASS) — dropping the temporary trigger touch so the merged diff is workflow-only again. Signed-off-by: Daniele De Lorenzi <2905124+dark-vex@users.noreply.github.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
validate-kubenuc.yml's "Configure CoreDNS and hosts for test domains" step built a CoreDNShostsoverride from a hardcoded 9-entry placeholder-domain list, but the Robot Framework ingress suite (tests/robot/robot-test-job.yaml,discover_ingresses()) tests the real hostnames read off liveIngressobjects — so the override never matched what was actually being resolved, and every kubenuc PR'scluster-testjob has been failing withnet::ERR_NAME_NOT_RESOLVEDsince 2026-08-09 (confirmed via 5 consecutive failing runs across unrelated Renovate PRs, so not caused by any single PR's content).nslookup'd the 3 hardcoded placeholder names (which always resolved against the override) and swallowed all failures with|| echo "DNS test completed".kubectl get ingress -A -o json | jq ..., mirroring exactly whatdiscover_ingresses()reads, so the CoreDNS override and the actually-tested hosts always agree. No domain — placeholder or real — is hardcoded anywhere in the workflow anymore, and the DNS-verification step now actually fails the job on a real resolution failure instead of being a no-op.Test plan
git diffreviewed; YAML validated (check-yamlpre-commit hook +yaml.safe_load)kubectl/jqoutput) to confirm the generated ConfigMap YAML and the per-hostnslookupscript are well-formed for single-host, multi-host, and empty-host-list casesdiscover_ingresses(), jq/bash portability, empty-list-masking-a-real-failure risk); both confirmed findings folded back in:set -o pipefailso akubectl get ingressfailure can't be silently misread as "no ingresses found"cluster-testjob green on this PR (noERR_NAME_NOT_RESOLVED), verified viagh run view --log