mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-08-12 13:31:52 +00:00
Merge pull request #127046 from thockin/purge_jessie_dnsutils
Clean up DNS e2e wrt Jessie/Wheezy
This commit is contained in:
commit
203293ebbf
@ -33,6 +33,7 @@ import (
|
|||||||
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
|
e2eservice "k8s.io/kubernetes/test/e2e/framework/service"
|
||||||
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
e2eskipper "k8s.io/kubernetes/test/e2e/framework/skipper"
|
||||||
"k8s.io/kubernetes/test/e2e/network/common"
|
"k8s.io/kubernetes/test/e2e/network/common"
|
||||||
|
imageutils "k8s.io/kubernetes/test/utils/image"
|
||||||
admissionapi "k8s.io/pod-security-admission/api"
|
admissionapi "k8s.io/pod-security-admission/api"
|
||||||
|
|
||||||
"github.com/onsi/ginkgo/v2"
|
"github.com/onsi/ginkgo/v2"
|
||||||
@ -58,15 +59,20 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
fmt.Sprintf("kubernetes.default.svc.%s", framework.TestContext.ClusterDNSDomain),
|
fmt.Sprintf("kubernetes.default.svc.%s", framework.TestContext.ClusterDNSDomain),
|
||||||
}
|
}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
// TODO: We should change this whole test mechanism to run the same probes
|
||||||
|
// against a known list of different base images. Agnhost happens to be alpine
|
||||||
|
// (MUSL libc) for the moment, and jessie is (an old version of) libc.
|
||||||
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
// Added due to #8512. This is critical for GCE and GKE deployments.
|
// Added due to #8512. This is critical for GCE and GKE deployments.
|
||||||
@ -80,15 +86,17 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
// [LinuxOnly]: As Windows currently does not support resolving PQDNs.
|
// [LinuxOnly]: As Windows currently does not support resolving PQDNs.
|
||||||
@ -101,15 +109,17 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, hostEntries, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, hostEntries, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -121,15 +131,17 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(nil, hostEntries, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(nil, hostEntries, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(nil, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(nil, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes /etc/hosts and exposes the results by HTTP.
|
// Run a pod which probes /etc/hosts and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe /etc/hosts")
|
ginkgo.By("creating a pod to probe /etc/hosts")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -172,17 +184,19 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod.ObjectMeta.Labels = testServiceSelector
|
pod.ObjectMeta.Labels = testServiceSelector
|
||||||
|
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -225,17 +239,19 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod.ObjectMeta.Labels = testServiceSelector
|
pod.ObjectMeta.Labels = testServiceSelector
|
||||||
|
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -265,19 +281,21 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", podHostname, serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", podHostname, serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
hostNames := []string{hostFQDN, podHostname}
|
hostNames := []string{hostFQDN, podHostname}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(nil, hostNames, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(nil, hostNames, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(nil, hostNames, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(nil, hostNames, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod1 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod1 := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod1.ObjectMeta.Labels = testServiceSelector
|
pod1.ObjectMeta.Labels = testServiceSelector
|
||||||
pod1.Spec.Hostname = podHostname
|
pod1.Spec.Hostname = podHostname
|
||||||
pod1.Spec.Subdomain = serviceName
|
pod1.Spec.Subdomain = serviceName
|
||||||
|
|
||||||
validateDNSResults(ctx, f, pod1, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod1, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -308,19 +326,21 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
subdomain := fmt.Sprintf("%s.%s.svc.%s", serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
subdomain := fmt.Sprintf("%s.%s.svc.%s", serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
namesToResolve := []string{hostFQDN, subdomain}
|
namesToResolve := []string{hostFQDN, subdomain}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod1 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod1 := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod1.ObjectMeta.Labels = testServiceSelector
|
pod1.ObjectMeta.Labels = testServiceSelector
|
||||||
pod1.Spec.Hostname = podHostname
|
pod1.Spec.Hostname = podHostname
|
||||||
pod1.Spec.Subdomain = serviceName
|
pod1.Spec.Subdomain = serviceName
|
||||||
|
|
||||||
validateDNSResults(ctx, f, pod1, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod1, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -343,16 +363,18 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
return f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(ctx, externalNameService.Name, metav1.DeleteOptions{})
|
return f.ClientSet.CoreV1().Services(f.Namespace.Name).Delete(ctx, externalNameService.Name, metav1.DeleteOptions{})
|
||||||
})
|
})
|
||||||
hostFQDN := fmt.Sprintf("%s.%s.svc.%s", serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.svc.%s", serviceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
wheezyProbeCmd, wheezyFileName := createTargetedProbeCommand(hostFQDN, "CNAME", "wheezy")
|
agnhostProbeCmd, agnhostFileName := createTargetedProbeCommand(hostFQDN, "CNAME", "agnhost")
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileName := createTargetedProbeCommand(hostFQDN, "CNAME", "jessie")
|
jessieProbeCmd, jessieFileName := createTargetedProbeCommand(hostFQDN, "CNAME", "jessie")
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod1 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod1 := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
|
|
||||||
validateTargetedProbeOutput(ctx, f, pod1, []string{wheezyFileName, jessieFileName}, "foo.example.com.")
|
validateTargetedProbeOutput(ctx, f, pod1, []string{agnhostFileName, jessieFileName}, "foo.example.com.")
|
||||||
|
|
||||||
// Test changing the externalName field
|
// Test changing the externalName field
|
||||||
ginkgo.By("changing the externalName to bar.example.com")
|
ginkgo.By("changing the externalName to bar.example.com")
|
||||||
@ -360,16 +382,18 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
s.Spec.ExternalName = "bar.example.com"
|
s.Spec.ExternalName = "bar.example.com"
|
||||||
})
|
})
|
||||||
framework.ExpectNoError(err, "failed to change externalName of service: %s", serviceName)
|
framework.ExpectNoError(err, "failed to change externalName of service: %s", serviceName)
|
||||||
wheezyProbeCmd, wheezyFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "wheezy")
|
agnhostProbeCmd, agnhostFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "agnhost")
|
||||||
|
agnhostProber = dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "jessie")
|
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, "CNAME", "jessie")
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber = dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a second pod to probe DNS")
|
ginkgo.By("creating a second pod to probe DNS")
|
||||||
pod2 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod2 := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
|
|
||||||
validateTargetedProbeOutput(ctx, f, pod2, []string{wheezyFileName, jessieFileName}, "bar.example.com.")
|
validateTargetedProbeOutput(ctx, f, pod2, []string{agnhostFileName, jessieFileName}, "bar.example.com.")
|
||||||
|
|
||||||
// Test changing type from ExternalName to ClusterIP
|
// Test changing type from ExternalName to ClusterIP
|
||||||
ginkgo.By("changing the service to type=ClusterIP")
|
ginkgo.By("changing the service to type=ClusterIP")
|
||||||
@ -386,19 +410,21 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
}
|
}
|
||||||
// TODO: For dual stack we can run from here two createTargetedProbeCommand()
|
// TODO: For dual stack we can run from here two createTargetedProbeCommand()
|
||||||
// one looking for an A record and another one for an AAAA record
|
// one looking for an A record and another one for an AAAA record
|
||||||
wheezyProbeCmd, wheezyFileName = createTargetedProbeCommand(hostFQDN, targetRecord, "wheezy")
|
agnhostProbeCmd, agnhostFileName = createTargetedProbeCommand(hostFQDN, targetRecord, "agnhost")
|
||||||
|
agnhostProber = dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, targetRecord, "jessie")
|
jessieProbeCmd, jessieFileName = createTargetedProbeCommand(hostFQDN, targetRecord, "jessie")
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber = dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a third pod to probe DNS")
|
ginkgo.By("creating a third pod to probe DNS")
|
||||||
pod3 := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod3 := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
|
|
||||||
svc, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Get(ctx, externalNameService.Name, metav1.GetOptions{})
|
svc, err := f.ClientSet.CoreV1().Services(f.Namespace.Name).Get(ctx, externalNameService.Name, metav1.GetOptions{})
|
||||||
framework.ExpectNoError(err, "failed to get service: %s", externalNameService.Name)
|
framework.ExpectNoError(err, "failed to get service: %s", externalNameService.Name)
|
||||||
|
|
||||||
validateTargetedProbeOutput(ctx, f, pod3, []string{wheezyFileName, jessieFileName}, svc.Spec.ClusterIP)
|
validateTargetedProbeOutput(ctx, f, pod3, []string{agnhostFileName, jessieFileName}, svc.Spec.ClusterIP)
|
||||||
})
|
})
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -570,9 +596,11 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, hostEntries, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, hostEntries, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
ginkgo.By("Creating a pod with expanded DNS configuration to probe DNS")
|
ginkgo.By("Creating a pod with expanded DNS configuration to probe DNS")
|
||||||
@ -585,7 +613,7 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
fmt.Sprintf("%038d.k8s.io", 5),
|
fmt.Sprintf("%038d.k8s.io", 5),
|
||||||
fmt.Sprintf("%038d.k8s.io", 6), // 260 characters
|
fmt.Sprintf("%038d.k8s.io", 6), // 260 characters
|
||||||
}
|
}
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod.Spec.DNSPolicy = v1.DNSClusterFirst
|
pod.Spec.DNSPolicy = v1.DNSClusterFirst
|
||||||
pod.Spec.DNSConfig = &v1.PodDNSConfig{
|
pod.Spec.DNSConfig = &v1.PodDNSConfig{
|
||||||
Searches: testSearchPaths,
|
Searches: testSearchPaths,
|
||||||
@ -596,7 +624,7 @@ var _ = common.SIGDescribe("DNS", func() {
|
|||||||
},
|
},
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -614,9 +642,11 @@ var _ = common.SIGDescribe("DNS", feature.RelaxedDNSSearchValidation, framework.
|
|||||||
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
hostFQDN := fmt.Sprintf("%s.%s.%s.svc.%s", dnsTestPodHostName, dnsTestServiceName, f.Namespace.Name, framework.TestContext.ClusterDNSDomain)
|
||||||
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
hostEntries := []string{hostFQDN, dnsTestPodHostName}
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, hostEntries, "", "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, hostEntries, "", "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, hostEntries, "", "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
ginkgo.By("Creating a pod with expanded DNS configuration to probe DNS")
|
ginkgo.By("Creating a pod with expanded DNS configuration to probe DNS")
|
||||||
@ -624,12 +654,12 @@ var _ = common.SIGDescribe("DNS", feature.RelaxedDNSSearchValidation, framework.
|
|||||||
".",
|
".",
|
||||||
"_sip._tcp.abc_d.example.com",
|
"_sip._tcp.abc_d.example.com",
|
||||||
}
|
}
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod.Spec.DNSPolicy = v1.DNSClusterFirst
|
pod.Spec.DNSPolicy = v1.DNSClusterFirst
|
||||||
pod.Spec.DNSConfig = &v1.PodDNSConfig{
|
pod.Spec.DNSConfig = &v1.PodDNSConfig{
|
||||||
Searches: testSearchPaths,
|
Searches: testSearchPaths,
|
||||||
}
|
}
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
@ -663,18 +693,20 @@ var _ = common.SIGDescribe("DNS HostNetwork", func() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
// TODO: Validate both IPv4 and IPv6 families for dual-stack
|
||||||
wheezyProbeCmd, wheezyFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "wheezy", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
agnhostProbeCmd, agnhostFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "agnhost", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
|
agnhostProber := dnsQuerier{name: "agnhost", image: imageutils.Agnhost, cmd: agnhostProbeCmd}
|
||||||
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
jessieProbeCmd, jessieFileNames := createProbeCommand(namesToResolve, nil, regularService.Spec.ClusterIP, "jessie", f.Namespace.Name, framework.TestContext.ClusterDNSDomain, framework.TestContext.ClusterIsIPv6())
|
||||||
ginkgo.By("Running these commands on wheezy: " + wheezyProbeCmd + "\n")
|
jessieProber := dnsQuerier{name: "jessie", image: imageutils.JessieDnsutils, cmd: jessieProbeCmd}
|
||||||
|
ginkgo.By("Running these commands on agnhost: " + agnhostProbeCmd + "\n")
|
||||||
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
ginkgo.By("Running these commands on jessie: " + jessieProbeCmd + "\n")
|
||||||
|
|
||||||
// Run a pod which probes DNS and exposes the results by HTTP.
|
// Run a pod which probes DNS and exposes the results by HTTP.
|
||||||
ginkgo.By("creating a pod to probe DNS")
|
ginkgo.By("creating a pod to probe DNS")
|
||||||
pod := createDNSPod(f.Namespace.Name, wheezyProbeCmd, jessieProbeCmd, dnsTestPodHostName, dnsTestServiceName)
|
pod := createDNSPod(f.Namespace.Name, []dnsQuerier{agnhostProber, jessieProber}, dnsTestPodHostName, dnsTestServiceName)
|
||||||
pod.ObjectMeta.Labels = testServiceSelector
|
pod.ObjectMeta.Labels = testServiceSelector
|
||||||
pod.Spec.HostNetwork = true
|
pod.Spec.HostNetwork = true
|
||||||
pod.Spec.DNSPolicy = v1.DNSClusterFirstWithHostNet
|
pod.Spec.DNSPolicy = v1.DNSClusterFirstWithHostNet
|
||||||
validateDNSResults(ctx, f, pod, append(wheezyFileNames, jessieFileNames...))
|
validateDNSResults(ctx, f, pod, append(agnhostFileNames, jessieFileNames...))
|
||||||
})
|
})
|
||||||
|
|
||||||
// https://issues.k8s.io/67019
|
// https://issues.k8s.io/67019
|
||||||
|
@ -352,7 +352,13 @@ func (t *dnsTestCommon) deleteDNSServerPod(ctx context.Context) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd, podHostName, serviceName string) *v1.Pod {
|
type dnsQuerier struct {
|
||||||
|
name string // container name
|
||||||
|
image imageutils.ImageID // container image
|
||||||
|
cmd string // a shell-script in a string
|
||||||
|
}
|
||||||
|
|
||||||
|
func createDNSPod(namespace string, probers []dnsQuerier, podHostName, serviceName string) *v1.Pod {
|
||||||
podName := "dns-test-" + string(uuid.NewUUID())
|
podName := "dns-test-" + string(uuid.NewUUID())
|
||||||
volumes := []v1.Volume{
|
volumes := []v1.Volume{
|
||||||
{
|
{
|
||||||
@ -369,21 +375,31 @@ func createDNSPod(namespace, wheezyProbeCmd, jessieProbeCmd, podHostName, servic
|
|||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// This is an "agnhost pod" but we use the 0th container as a webserver.
|
||||||
// TODO: Consider scraping logs instead of running a webserver.
|
// TODO: Consider scraping logs instead of running a webserver.
|
||||||
dnsPod := e2epod.NewAgnhostPod(namespace, podName, volumes, mounts, nil, "test-webserver")
|
dnsPod := e2epod.NewAgnhostPod(namespace, podName, volumes, mounts, nil, "test-webserver")
|
||||||
dnsPod.Spec.Containers[0].Name = "webserver"
|
dnsPod.Spec.Containers[0].Name = "webserver"
|
||||||
|
|
||||||
querier := e2epod.NewAgnhostContainer("querier", mounts, nil, wheezyProbeCmd)
|
probeCtrs := []v1.Container{}
|
||||||
querier.Command = []string{"sh", "-c"}
|
for _, probe := range probers {
|
||||||
|
name := probe.name + "-querier"
|
||||||
jessieQuerier := v1.Container{
|
if probe.image == imageutils.Agnhost {
|
||||||
Name: "jessie-querier",
|
// agnhost is special cased, to keep all of its logic consistent.
|
||||||
Image: imageutils.GetE2EImage(imageutils.JessieDnsutils),
|
ctr := e2epod.NewAgnhostContainer(name, mounts, nil)
|
||||||
Command: []string{"sh", "-c", jessieProbeCmd},
|
ctr.Command = []string{"sh", "-c", probe.cmd}
|
||||||
VolumeMounts: mounts,
|
probeCtrs = append(probeCtrs, ctr)
|
||||||
|
} else {
|
||||||
|
ctr := v1.Container{
|
||||||
|
Name: name,
|
||||||
|
Image: imageutils.GetE2EImage(probe.image),
|
||||||
|
Command: []string{"sh", "-c", probe.cmd},
|
||||||
|
VolumeMounts: mounts,
|
||||||
|
}
|
||||||
|
probeCtrs = append(probeCtrs, ctr)
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
dnsPod.Spec.Containers = append(dnsPod.Spec.Containers, querier, jessieQuerier)
|
dnsPod.Spec.Containers = append(dnsPod.Spec.Containers, probeCtrs...)
|
||||||
dnsPod.Spec.Hostname = podHostName
|
dnsPod.Spec.Hostname = podHostName
|
||||||
dnsPod.Spec.Subdomain = serviceName
|
dnsPod.Spec.Subdomain = serviceName
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user