Skip to content

Commit

Permalink
Merge pull request #97808 from aojea/miekdns
Browse files Browse the repository at this point in the history
remove e2e miekg/dns dependency
  • Loading branch information
k8s-ci-robot authored Jan 25, 2021
2 parents f5bb2c1 + 3790290 commit 18f4156
Show file tree
Hide file tree
Showing 6 changed files with 141 additions and 4 deletions.
2 changes: 1 addition & 1 deletion test/e2e/network/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -93,8 +93,8 @@ go_library(
"//test/e2e/storage/utils:go_default_library",
"//test/utils:go_default_library",
"//test/utils/image:go_default_library",
"//third_party/forked/golang/net:go_default_library",
"//vendor/github.com/GoogleCloudPlatform/k8s-cloud-provider/pkg/cloud:go_default_library",
"//vendor/github.com/miekg/dns:go_default_library",
"//vendor/github.com/onsi/ginkgo:go_default_library",
"//vendor/github.com/onsi/gomega:go_default_library",
"//vendor/google.golang.org/api/compute/v1:go_default_library",
Expand Down
5 changes: 2 additions & 3 deletions test/e2e/network/dns_common.go
Original file line number Diff line number Diff line change
Expand Up @@ -26,8 +26,6 @@ import (
v1 "k8s.io/api/core/v1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"

dnsutil "github.com/miekg/dns"

"k8s.io/apimachinery/pkg/fields"
"k8s.io/apimachinery/pkg/labels"
"k8s.io/apimachinery/pkg/util/intstr"
Expand All @@ -37,6 +35,7 @@ import (
"k8s.io/kubernetes/test/e2e/framework"
e2epod "k8s.io/kubernetes/test/e2e/framework/pod"
imageutils "k8s.io/kubernetes/test/utils/image"
dnsclient "k8s.io/kubernetes/third_party/forked/golang/net"

"github.com/onsi/ginkgo"
"github.com/onsi/gomega"
Expand Down Expand Up @@ -430,7 +429,7 @@ func createProbeCommand(namesToResolve []string, hostEntries []string, ptrLookup
fileNames = append(fileNames, podARecByTCPFileName)

if len(ptrLookupIP) > 0 {
ptrLookup, err := dnsutil.ReverseAddr(ptrLookupIP)
ptrLookup, err := dnsclient.Reverseaddr(ptrLookupIP)
if err != nil {
framework.Failf("Unable to obtain reverse IP address record from IP %s: %v", ptrLookupIP, err)
}
Expand Down
1 change: 1 addition & 0 deletions third_party/BUILD
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@ filegroup(
srcs = [
":package-srcs",
"//third_party/forked/golang/expansion:all-srcs",
"//third_party/forked/golang/net:all-srcs",
"//third_party/forked/golang/reflect:all-srcs",
"//third_party/forked/golang/template:all-srcs",
"//third_party/forked/gonum/graph:all-srcs",
Expand Down
28 changes: 28 additions & 0 deletions third_party/forked/golang/net/BUILD
Original file line number Diff line number Diff line change
@@ -0,0 +1,28 @@
load("@io_bazel_rules_go//go:def.bzl", "go_library", "go_test")

go_library(
name = "go_default_library",
srcs = ["dnsclient.go"],
importpath = "k8s.io/kubernetes/third_party/forked/golang/net",
visibility = ["//visibility:public"],
)

filegroup(
name = "package-srcs",
srcs = glob(["**"]),
tags = ["automanaged"],
visibility = ["//visibility:private"],
)

filegroup(
name = "all-srcs",
srcs = [":package-srcs"],
tags = ["automanaged"],
visibility = ["//visibility:public"],
)

go_test(
name = "go_default_test",
srcs = ["dnsclient_test.go"],
embed = [":go_default_library"],
)
58 changes: 58 additions & 0 deletions third_party/forked/golang/net/dnsclient.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This package is copied from Go library net.
// https://golang.org/src/net/dnsclient.go
// The original private function reverseaddr
// is exported as public function.

package net

import "net"

// Reverseaddr returns the in-addr.arpa. or ip6.arpa. hostname of the IP
// address addr suitable for rDNS (PTR) record lookup or an error if it fails
// to parse the IP address.
func Reverseaddr(addr string) (arpa string, err error) {
ip := net.ParseIP(addr)
if ip == nil {
return "", &net.DNSError{Err: "unrecognized address", Name: addr}
}
if ip.To4() != nil {
return uitoa(uint(ip[15])) + "." + uitoa(uint(ip[14])) + "." + uitoa(uint(ip[13])) + "." + uitoa(uint(ip[12])) + ".in-addr.arpa.", nil
}
// Must be IPv6
buf := make([]byte, 0, len(ip)*4+len("ip6.arpa."))
// Add it, in reverse, to the buffer
for i := len(ip) - 1; i >= 0; i-- {
v := ip[i]
buf = append(buf, hexDigit[v&0xF],
'.',
hexDigit[v>>4],
'.')
}
// Append "ip6.arpa." and return (buf already has the final .)
buf = append(buf, "ip6.arpa."...)
return string(buf), nil
}

// Convert unsigned integer to decimal string.
func uitoa(val uint) string {
if val == 0 { // avoid string allocation
return "0"
}
var buf [20]byte // big enough for 64bit value base 10
i := len(buf) - 1
for val >= 10 {
q := val / 10
buf[i] = byte('0' + val - q*10)
i--
val = q
}
// val < 10
buf[i] = byte('0' + val)
return string(buf[i:])
}

const hexDigit = "0123456789abcdef"
51 changes: 51 additions & 0 deletions third_party/forked/golang/net/dnsclient_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
// Copyright 2009 The Go Authors. All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.

// This package is copied from Go library net.
// https://golang.org/src/net/dnsclient.go
// The original private function reverseaddr
// is exported as public function.

package net

import (
"net"
"testing"
)

func TestReverseaddr(t *testing.T) {
var revAddrTests = []struct {
Addr string
Reverse string
ErrPrefix string
}{
{"1.2.3.4", "4.3.2.1.in-addr.arpa.", ""},
{"245.110.36.114", "114.36.110.245.in-addr.arpa.", ""},
{"::ffff:12.34.56.78", "78.56.34.12.in-addr.arpa.", ""},
{"::1", "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.arpa.", ""},
{"1::", "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.1.0.0.0.ip6.arpa.", ""},
{"1234:567::89a:bcde", "e.d.c.b.a.9.8.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.7.6.5.0.4.3.2.1.ip6.arpa.", ""},
{"1234:567:fefe:bcbc:adad:9e4a:89a:bcde", "e.d.c.b.a.9.8.0.a.4.e.9.d.a.d.a.c.b.c.b.e.f.e.f.7.6.5.0.4.3.2.1.ip6.arpa.", ""},
{"1.2.3", "", "unrecognized address"},
{"1.2.3.4.5", "", "unrecognized address"},
{"1234:567:bcbca::89a:bcde", "", "unrecognized address"},
{"1234:567::bcbc:adad::89a:bcde", "", "unrecognized address"},
}
for i, tt := range revAddrTests {
a, err := Reverseaddr(tt.Addr)
if len(tt.ErrPrefix) > 0 && err == nil {
t.Errorf("#%d: expected %q, got <nil> (error)", i, tt.ErrPrefix)
continue
}
if len(tt.ErrPrefix) == 0 && err != nil {
t.Errorf("#%d: expected <nil>, got %q (error)", i, err)
}
if err != nil && err.(*net.DNSError).Err != tt.ErrPrefix {
t.Errorf("#%d: expected %q, got %q (mismatched error)", i, tt.ErrPrefix, err.(*net.DNSError).Err)
}
if a != tt.Reverse {
t.Errorf("#%d: expected %q, got %q (reverse address)", i, tt.Reverse, a)
}
}
}

0 comments on commit 18f4156

Please sign in to comment.