mirror of
https://github.com/juanfont/headscale.git
synced 2025-05-02 07:53:42 -04:00
integration: remove failing resolvconf tests (#2549)
Signed-off-by: Kristoffer Dalby <kristoffer@tailscale.com>
This commit is contained in:
parent
2b38f7bef7
commit
57861507ab
1
.github/workflows/test-integration.yaml
vendored
1
.github/workflows/test-integration.yaml
vendored
@ -49,7 +49,6 @@ jobs:
|
|||||||
- TestDERPVerifyEndpoint
|
- TestDERPVerifyEndpoint
|
||||||
- TestResolveMagicDNS
|
- TestResolveMagicDNS
|
||||||
- TestResolveMagicDNSExtraRecordsPath
|
- TestResolveMagicDNSExtraRecordsPath
|
||||||
- TestValidateResolvConf
|
|
||||||
- TestDERPServerScenario
|
- TestDERPServerScenario
|
||||||
- TestDERPServerWebsocketScenario
|
- TestDERPServerWebsocketScenario
|
||||||
- TestPingAllByIP
|
- TestPingAllByIP
|
||||||
|
@ -238,166 +238,3 @@ func TestResolveMagicDNSExtraRecordsPath(t *testing.T) {
|
|||||||
assertCommandOutputContains(t, client, []string{"dig", "copy.myvpn.example.com"}, "8.8.8.8")
|
assertCommandOutputContains(t, client, []string{"dig", "copy.myvpn.example.com"}, "8.8.8.8")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TestValidateResolvConf validates that the resolv.conf file
|
|
||||||
// ends up as expected in our Tailscale containers.
|
|
||||||
// All the containers are based on Alpine, meaning Tailscale
|
|
||||||
// will overwrite the resolv.conf file.
|
|
||||||
// On other platform, Tailscale will integrate with a dns manager
|
|
||||||
// if available (like systemd-resolved).
|
|
||||||
func TestValidateResolvConf(t *testing.T) {
|
|
||||||
IntegrationSkip(t)
|
|
||||||
|
|
||||||
resolvconf := func(conf string) string {
|
|
||||||
return strings.ReplaceAll(`# resolv.conf(5) file generated by tailscale
|
|
||||||
# For more info, see https://tailscale.com/s/resolvconf-overwrite
|
|
||||||
# DO NOT EDIT THIS FILE BY HAND -- CHANGES WILL BE OVERWRITTEN
|
|
||||||
`+conf, "\t", "")
|
|
||||||
}
|
|
||||||
|
|
||||||
tests := []struct {
|
|
||||||
name string
|
|
||||||
conf map[string]string
|
|
||||||
wantConfCompareFunc func(*testing.T, string)
|
|
||||||
}{
|
|
||||||
// New config
|
|
||||||
{
|
|
||||||
name: "no-config",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "",
|
|
||||||
"HEADSCALE_DNS_MAGIC_DNS": "false",
|
|
||||||
"HEADSCALE_DNS_NAMESERVERS_GLOBAL": "",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
assert.Contains(t, got, "Generated by Docker Engine")
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "global-only",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "",
|
|
||||||
"HEADSCALE_DNS_MAGIC_DNS": "false",
|
|
||||||
"HEADSCALE_DNS_NAMESERVERS_GLOBAL": "8.8.8.8 1.1.1.1",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "base-integration-config",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "very-unique-domain.net",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
search very-unique-domain.net
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "base-magic-dns-off",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_MAGIC_DNS": "false",
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "very-unique-domain.net",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
search very-unique-domain.net
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "base-extra-search-domains",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_SEARCH_DOMAINS": "test1.no test2.no",
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "with-local-dns.net",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
search with-local-dns.net test1.no test2.no
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "base-nameservers-split",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_NAMESERVERS_SPLIT": `{foo.bar.com: ["1.1.1.1"]}`,
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "with-local-dns.net",
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
search with-local-dns.net
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "base-full-no-magic",
|
|
||||||
conf: map[string]string{
|
|
||||||
"HEADSCALE_DNS_MAGIC_DNS": "false",
|
|
||||||
"HEADSCALE_DNS_BASE_DOMAIN": "all-of.it",
|
|
||||||
"HEADSCALE_DNS_NAMESERVERS_GLOBAL": `8.8.8.8`,
|
|
||||||
"HEADSCALE_DNS_SEARCH_DOMAINS": "test1.no test2.no",
|
|
||||||
// TODO(kradalby): this currently isn't working, need to fix it
|
|
||||||
// "HEADSCALE_DNS_NAMESERVERS_SPLIT": `{foo.bar.com: ["1.1.1.1"]}`,
|
|
||||||
// "HEADSCALE_DNS_EXTRA_RECORDS": `[{ name: "prometheus.myvpn.example.com", type: "A", value: "100.64.0.4" }]`,
|
|
||||||
},
|
|
||||||
wantConfCompareFunc: func(t *testing.T, got string) {
|
|
||||||
want := resolvconf(`
|
|
||||||
nameserver 100.100.100.100
|
|
||||||
search all-of.it test1.no test2.no
|
|
||||||
`)
|
|
||||||
assert.Equal(t, want, got)
|
|
||||||
},
|
|
||||||
},
|
|
||||||
}
|
|
||||||
|
|
||||||
for _, tt := range tests {
|
|
||||||
t.Run(tt.name, func(t *testing.T) {
|
|
||||||
spec := ScenarioSpec{
|
|
||||||
NodesPerUser: 3,
|
|
||||||
Users: []string{"user1", "user2"},
|
|
||||||
}
|
|
||||||
|
|
||||||
scenario, err := NewScenario(spec)
|
|
||||||
assertNoErr(t, err)
|
|
||||||
defer scenario.ShutdownAssertNoPanics(t)
|
|
||||||
|
|
||||||
err = scenario.CreateHeadscaleEnv([]tsic.Option{}, hsic.WithTestName("resolvconf"), hsic.WithConfigEnv(tt.conf))
|
|
||||||
assertNoErrHeadscaleEnv(t, err)
|
|
||||||
|
|
||||||
allClients, err := scenario.ListTailscaleClients()
|
|
||||||
assertNoErrListClients(t, err)
|
|
||||||
|
|
||||||
err = scenario.WaitForTailscaleSync()
|
|
||||||
assertNoErrSync(t, err)
|
|
||||||
|
|
||||||
// Poor mans cache
|
|
||||||
_, err = scenario.ListTailscaleClientsFQDNs()
|
|
||||||
assertNoErrListFQDN(t, err)
|
|
||||||
|
|
||||||
_, err = scenario.ListTailscaleClientsIPs()
|
|
||||||
assertNoErrListClientIPs(t, err)
|
|
||||||
|
|
||||||
time.Sleep(30 * time.Second)
|
|
||||||
|
|
||||||
for _, client := range allClients {
|
|
||||||
b, err := client.ReadFile("/etc/resolv.conf")
|
|
||||||
assertNoErr(t, err)
|
|
||||||
|
|
||||||
t.Logf("comparing resolv conf of %s", client.Hostname())
|
|
||||||
tt.wantConfCompareFunc(t, string(b))
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user