Allow expanded DNS configuration

Signed-off-by: Gunju Kim <gjkim042@gmail.com>
This commit is contained in:
Gunju Kim 2021-08-13 10:34:18 +09:00
parent d0be7b90f1
commit 1224060f89
3 changed files with 8 additions and 9 deletions

View File

@ -48,9 +48,6 @@ const (
defaultShmSize = int64(1024 * 1024 * 64) defaultShmSize = int64(1024 * 1024 * 64)
// relativeRootfsPath is the rootfs path relative to bundle path. // relativeRootfsPath is the rootfs path relative to bundle path.
relativeRootfsPath = "rootfs" relativeRootfsPath = "rootfs"
// According to http://man7.org/linux/man-pages/man5/resolv.conf.5.html:
// "The search list is currently limited to six domains with a total of 256 characters."
maxDNSSearches = 6
// devShm is the default path of /dev/shm. // devShm is the default path of /dev/shm.
devShm = "/dev/shm" devShm = "/dev/shm"
// etcHosts is the default path of /etc/hosts file. // etcHosts is the default path of /etc/hosts file.

View File

@ -275,10 +275,6 @@ func (c *criService) setupSandboxFiles(id string, config *runtime.PodSandboxConf
func parseDNSOptions(servers, searches, options []string) (string, error) { func parseDNSOptions(servers, searches, options []string) (string, error) {
resolvContent := "" resolvContent := ""
if len(searches) > maxDNSSearches {
return "", errors.Errorf("DNSOption.Searches has more than %d domains", maxDNSSearches)
}
if len(searches) > 0 { if len(searches) > 0 {
resolvContent += fmt.Sprintf("search %s\n", strings.Join(searches, " ")) resolvContent += fmt.Sprintf("search %s\n", strings.Join(searches, " "))
} }

View File

@ -394,7 +394,8 @@ nameserver server.google.com
options timeout:1 options timeout:1
`, `,
}, },
"should return error if dns search exceeds limit(6)": { "expanded dns config should return correct content on modern libc (e.g. glibc 2.26 and above)": {
servers: []string{"8.8.8.8", "server.google.com"},
searches: []string{ searches: []string{
"server0.google.com", "server0.google.com",
"server1.google.com", "server1.google.com",
@ -404,7 +405,12 @@ options timeout:1
"server5.google.com", "server5.google.com",
"server6.google.com", "server6.google.com",
}, },
expectErr: true, options: []string{"timeout:1"},
expectedContent: `search server0.google.com server1.google.com server2.google.com server3.google.com server4.google.com server5.google.com server6.google.com
nameserver 8.8.8.8
nameserver server.google.com
options timeout:1
`,
}, },
} { } {
t.Logf("TestCase %q", desc) t.Logf("TestCase %q", desc)