From a83f6b7f8e16acc010961432e45e82135ce029a5 Mon Sep 17 00:00:00 2001 From: jochen Date: Mon, 31 Aug 2026 13:39:58 +0200 Subject: [PATCH] Assign the resolver configuration module that suits the machine MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit These machines run systemd-resolved, so resolv-conf would fight it over the file. Both claim the-resolver-configuration so that assigning the wrong one is refused rather than fought over — and the test was picking the wrong one. --- test/integration/mesh.test.ts | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/test/integration/mesh.test.ts b/test/integration/mesh.test.ts index fd3bb39..c84ce37 100644 --- a/test/integration/mesh.test.ts +++ b/test/integration/mesh.test.ts @@ -1375,7 +1375,11 @@ test("a service is reached by a name under the machine it runs on", { // // The mesh writes the data; a module runs the daemon. Both manifests are read from the // repository rather than written here, so what is proven is what ships. - for (const name of ["dnsmasq", "resolv-conf"]) { + // `resolved-split-dns`, not `resolv-conf`: these machines run systemd-resolved, which owns + // /etc/resolv.conf. The two claim the same thing precisely so that assigning the wrong one is a + // refusal rather than a fight over the file — and picking the wrong one here would have been + // testing that fight. + for (const name of ["dnsmasq", "resolved-split-dns"]) { const manifest = readFileSync(`${moduleExamples}/${name}.json`, "utf8"); await must("anchor", `cat > /tmp/${name}.json <<'MANIFEST'\n${manifest}\nMANIFEST`); await must("anchor", `docker cp /tmp/${name}.json mesh-control:/${name}.json`); @@ -1387,7 +1391,7 @@ test("a service is reached by a name under the machine it runs on", { // does, which is the arrangement this design refuses everywhere else. for (const machine of ["anchor", "laptop"]) { await mesh(`assign ${machine} dnsmasq`); - await mesh(`assign ${machine} resolv-conf`); + await mesh(`assign ${machine} resolved-split-dns`); } await mesh("push"); await new Promise((r) => setTimeout(r, 25_000)); @@ -1454,7 +1458,7 @@ test("a service is reached by a name under the machine it runs on", { "the resolver answered for a name that is not the mesh's"); for (const machine of ["anchor", "laptop"]) { - await mesh(`unassign ${machine} resolv-conf`); + await mesh(`unassign ${machine} resolved-split-dns`); await mesh(`unassign ${machine} dnsmasq`); } await mesh("push");