Skip to content

Replace dnstest.io with a zone served by dnsmasq locally#1061

Open
kgaughan wants to merge 5 commits into
goss-org:masterfrom
kgaughan:dnsmasq
Open

Replace dnstest.io with a zone served by dnsmasq locally#1061
kgaughan wants to merge 5 commits into
goss-org:masterfrom
kgaughan:dnsmasq

Conversation

@kgaughan
Copy link
Copy Markdown

@kgaughan kgaughan commented May 18, 2026

Checklist
  • make test-all (UNIX) passes. CI will also test this
  • unit and/or integration tests are included (if applicable)

Description of change

dnstest.io is now parked, so it's no longer suitable for running goss integration tests against.

I've instead replaced it with a zone served by dnsmasq running within the integration test containers. dnsmasq can serve as an authoritative DNS server for at least a single zone, so it's perfect for running integration tests like this. Serving the zone from within the integration test container means they'll be more resilient against issues and the zone can be maintained alongside the integration tests themselves.

Out of necessity, I've also worked on getting Alpine, Ubuntu, and Debian updated to maintained versions. I've had to remove 32-bit integration tests for them due to a lack of 32-bit images of jammy. I'm still working on getting Arch working, but haven't had much luck, unfortunately, which may be a blocker against getting this merged, but I think the others cover everything sufficiently as is. I'm hoping to get Arch working with the full integration test suite too. Fixed! It turns out I hadn't noticed the bootup wait in test.sh wasn't being done for Arch too.

I've added an affordance for people like me who use podman rather than docker in the form of the DOCKER_BIN environment variable: this way, it's a bit easier to run the integration test suite without constantly having to fiddle with test.sh.

kgaughan added 2 commits May 17, 2026 15:53
dnstest.io is now parked, so it's no longer suitable for testing.

By switching to using dnsmasq within the test, we make the tests more
resilient against something like this happening again.
kgaughan added 2 commits May 18, 2026 21:04
This adds some affordances for me, as I use podman, not docker, so
having a way to override the command is useful.

The `|| :` in the trap is so that as much of the cleanup happens as is
possible. It wasn't cleaning up the networking for me, which was
irritating when testing.
@ripienaar
Copy link
Copy Markdown
Collaborator

I've approved test runs here and there are some failures to investigate

@kgaughan
Copy link
Copy Markdown
Author

Hmmm... That was working before. I'll check it out.

@kgaughan
Copy link
Copy Markdown
Author

There's an updated version of the kernel for Rocky Linux, which is what broke the test. The ultimate fix for that, I think, is for somebody to run development/push_images.sh and get the MD5 files committed.

Ultimately, it might be an idea to get a proper pipeline in place for building and and pushing these images, maybe to the GH container registry rather than Docker Hub.

@kgaughan
Copy link
Copy Markdown
Author

It's possible there might be package updates for the other images, but I only have my Chromebook with me currently, and the Linux terminal for that doesn't play nice with docker container builds. Hopefully not though!

@kgaughan
Copy link
Copy Markdown
Author

Looks good!

@kgaughan
Copy link
Copy Markdown
Author

I think the Travis CI check should probably be disabled and the 'Golang ci' integration tests should be made required instead. The Travis pipeline is just running the integration tests, which is what the 'Golang ci' workflow is doing.

ripienaar
ripienaar previously approved these changes May 29, 2026
@ripienaar
Copy link
Copy Markdown
Collaborator

I dont have access to that for the repo, so will merge this and we can delete the travis yaml and then ask for that to be turned off

@ripienaar
Copy link
Copy Markdown
Collaborator

@aelsabbahy looks like we need to add me as a code owner to let me merge things

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