Skip to content

fix(ci,kubenuc): derive CoreDNS test-hosts and DNS checks from live Ingress objects - #1846

Merged
dark-vex merged 4 commits into
mainfrom
fix/kubenuc-coredns-dynamic-host-discovery
Aug 10, 2026
Merged

fix(ci,kubenuc): derive CoreDNS test-hosts and DNS checks from live Ingress objects#1846
dark-vex merged 4 commits into
mainfrom
fix/kubenuc-coredns-dynamic-host-discovery

Conversation

@dark-vex

@dark-vex dark-vex commented Aug 10, 2026

Copy link
Copy Markdown
Owner

Summary

  • validate-kubenuc.yml's "Configure CoreDNS and hosts for test domains" step built a CoreDNS hosts override 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 live Ingress objects — so the override never matched what was actually being resolved, and every kubenuc PR's cluster-test job has been failing with net::ERR_NAME_NOT_RESOLVED since 2026-08-09 (confirmed via 5 consecutive failing runs across unrelated Renovate PRs, so not caused by any single PR's content).
  • The "Verify DNS resolution in cluster" step was a false-green guard for the same reason: it only nslookup'd the 3 hardcoded placeholder names (which always resolved against the override) and swallowed all failures with || echo "DNS test completed".
  • Both steps now derive the host list at runtime via kubectl get ingress -A -o json | jq ..., mirroring exactly what discover_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 diff reviewed; YAML validated (check-yaml pre-commit hook + yaml.safe_load)
  • Both changed shell blocks simulated locally (mock kubectl/jq output) to confirm the generated ConfigMap YAML and the per-host nslookup script are well-formed for single-host, multi-host, and empty-host-list cases
  • Independent review from Codex and Fable against the same scoped question (host-list coverage vs discover_ingresses(), jq/bash portability, empty-list-masking-a-real-failure risk); both confirmed findings folded back in:
    • added set -o pipefail so a kubectl get ingress failure can't be silently misread as "no ingresses found"
    • preserved the CoreDNS-logs diagnostic dump on DNS-check failure (previously always ran; now captured and reported before failing the step)
  • cluster-test job green on this PR (no ERR_NAME_NOT_RESOLVED), verified via gh run view --log
  • Re-run/rebase the currently-blocked kubenuc PRs (e.g. chore(deps): update redis Docker tag to v28.0.2 #1833) after merge to confirm they go green too

…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>
@dark-vex
dark-vex merged commit 8790dd6 into main Aug 10, 2026
13 checks passed
@dark-vex
dark-vex deleted the fix/kubenuc-coredns-dynamic-host-discovery branch August 10, 2026 20:18
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.

1 participant