mirror of https://github.com/k3s-io/k3s
Merge pull request #36785 from wlan0/kubelet
Automatic merge from submit-queue No need to ScrubDNS anymore @thockin This removes the DNS scrubber from kubelet.pull/6/head
commit
412a3d9914
|
@ -89,25 +89,10 @@ func (kl *Kubelet) providerRequiresNetworkingConfiguration() bool {
|
||||||
return supported
|
return supported
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the list of DNS servers and DNS search domains.
|
|
||||||
func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, searches []string, err error) {
|
|
||||||
var scrubber dnsScrubber
|
|
||||||
if kl.cloud != nil {
|
|
||||||
scrubber = kl.cloud
|
|
||||||
}
|
|
||||||
return parseResolvConf(reader, scrubber)
|
|
||||||
}
|
|
||||||
|
|
||||||
// A helper for testing.
|
|
||||||
type dnsScrubber interface {
|
|
||||||
ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string)
|
|
||||||
}
|
|
||||||
|
|
||||||
// parseResolveConf reads a resolv.conf file from the given reader, and parses
|
// parseResolveConf reads a resolv.conf file from the given reader, and parses
|
||||||
// it into nameservers and searches, possibly returning an error. The given
|
// it into nameservers and searches, possibly returning an error.
|
||||||
// dnsScrubber allows cloud providers to post-process dns names.
|
|
||||||
// TODO: move to utility package
|
// TODO: move to utility package
|
||||||
func parseResolvConf(reader io.Reader, dnsScrubber dnsScrubber) (nameservers []string, searches []string, err error) {
|
func (kl *Kubelet) parseResolvConf(reader io.Reader) (nameservers []string, searches []string, err error) {
|
||||||
file, err := ioutil.ReadAll(reader)
|
file, err := ioutil.ReadAll(reader)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, nil, err
|
return nil, nil, err
|
||||||
|
@ -137,10 +122,10 @@ func parseResolvConf(reader io.Reader, dnsScrubber dnsScrubber) (nameservers []s
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Give the cloud-provider a chance to post-process DNS settings.
|
// There used to be code here to scrub DNS for each cloud, but doesn't
|
||||||
if dnsScrubber != nil {
|
// make sense anymore since cloudproviders are being factored out.
|
||||||
nameservers, searches = dnsScrubber.ScrubDNS(nameservers, searches)
|
// contact @thockin or @wlan0 for more information
|
||||||
}
|
|
||||||
return nameservers, searches, nil
|
return nameservers, searches, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -66,15 +66,6 @@ func TestNodeIPParam(t *testing.T) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
type countingDNSScrubber struct {
|
|
||||||
counter *int
|
|
||||||
}
|
|
||||||
|
|
||||||
func (cds countingDNSScrubber) ScrubDNS(nameservers, searches []string) (nsOut, srchOut []string) {
|
|
||||||
(*cds.counter)++
|
|
||||||
return nameservers, searches
|
|
||||||
}
|
|
||||||
|
|
||||||
func TestParseResolvConf(t *testing.T) {
|
func TestParseResolvConf(t *testing.T) {
|
||||||
testCases := []struct {
|
testCases := []struct {
|
||||||
data string
|
data string
|
||||||
|
@ -104,8 +95,10 @@ func TestParseResolvConf(t *testing.T) {
|
||||||
{"nameserver 1.2.3.4\nsearch foo\nnameserver 5.6.7.8\nsearch bar", []string{"1.2.3.4", "5.6.7.8"}, []string{"bar"}},
|
{"nameserver 1.2.3.4\nsearch foo\nnameserver 5.6.7.8\nsearch bar", []string{"1.2.3.4", "5.6.7.8"}, []string{"bar"}},
|
||||||
{"#comment\nnameserver 1.2.3.4\n#comment\nsearch foo\ncomment", []string{"1.2.3.4"}, []string{"foo"}},
|
{"#comment\nnameserver 1.2.3.4\n#comment\nsearch foo\ncomment", []string{"1.2.3.4"}, []string{"foo"}},
|
||||||
}
|
}
|
||||||
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
|
kubelet := testKubelet.kubelet
|
||||||
for i, tc := range testCases {
|
for i, tc := range testCases {
|
||||||
ns, srch, err := parseResolvConf(strings.NewReader(tc.data), nil)
|
ns, srch, err := kubelet.parseResolvConf(strings.NewReader(tc.data))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Errorf("expected success, got %v", err)
|
t.Errorf("expected success, got %v", err)
|
||||||
continue
|
continue
|
||||||
|
@ -116,23 +109,6 @@ func TestParseResolvConf(t *testing.T) {
|
||||||
if !reflect.DeepEqual(srch, tc.searches) {
|
if !reflect.DeepEqual(srch, tc.searches) {
|
||||||
t.Errorf("[%d] expected searches %#v, got %#v", i, tc.searches, srch)
|
t.Errorf("[%d] expected searches %#v, got %#v", i, tc.searches, srch)
|
||||||
}
|
}
|
||||||
|
|
||||||
counter := 0
|
|
||||||
cds := countingDNSScrubber{&counter}
|
|
||||||
ns, srch, err = parseResolvConf(strings.NewReader(tc.data), cds)
|
|
||||||
if err != nil {
|
|
||||||
t.Errorf("expected success, got %v", err)
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(ns, tc.nameservers) {
|
|
||||||
t.Errorf("[%d] expected nameservers %#v, got %#v", i, tc.nameservers, ns)
|
|
||||||
}
|
|
||||||
if !reflect.DeepEqual(srch, tc.searches) {
|
|
||||||
t.Errorf("[%d] expected searches %#v, got %#v", i, tc.searches, srch)
|
|
||||||
}
|
|
||||||
if counter != 1 {
|
|
||||||
t.Errorf("[%d] expected dnsScrubber to have been called: got %d", i, counter)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue