mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-29 22:46:12 +00:00
extract content-generation concern from ensureHostsFile
add tests to assert the output of `ensureHostsFile`
This commit is contained in:
parent
f0ce5bd8d8
commit
e21da839e5
@ -213,6 +213,12 @@ func ensureHostsFile(fileName, hostIP, hostName, hostDomainName string) error {
|
|||||||
glog.V(4).Infof("kubernetes-managed etc-hosts file exits. Will not be recreated: %q", fileName)
|
glog.V(4).Infof("kubernetes-managed etc-hosts file exits. Will not be recreated: %q", fileName)
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
content := hostsFileContent(hostIP, hostName, hostDomainName)
|
||||||
|
return ioutil.WriteFile(fileName, content, 0644)
|
||||||
|
}
|
||||||
|
|
||||||
|
// hostsFileContent is the content of the managed etc hosts
|
||||||
|
func hostsFileContent(hostIP, hostName, hostDomainName string) []byte {
|
||||||
var buffer bytes.Buffer
|
var buffer bytes.Buffer
|
||||||
buffer.WriteString("# Kubernetes-managed hosts file.\n")
|
buffer.WriteString("# Kubernetes-managed hosts file.\n")
|
||||||
buffer.WriteString("127.0.0.1\tlocalhost\n") // ipv4 localhost
|
buffer.WriteString("127.0.0.1\tlocalhost\n") // ipv4 localhost
|
||||||
@ -226,7 +232,7 @@ func ensureHostsFile(fileName, hostIP, hostName, hostDomainName string) error {
|
|||||||
} else {
|
} else {
|
||||||
buffer.WriteString(fmt.Sprintf("%s\t%s\n", hostIP, hostName))
|
buffer.WriteString(fmt.Sprintf("%s\t%s\n", hostIP, hostName))
|
||||||
}
|
}
|
||||||
return ioutil.WriteFile(fileName, buffer.Bytes(), 0644)
|
return buffer.Bytes()
|
||||||
}
|
}
|
||||||
|
|
||||||
// truncatePodHostnameIfNeeded truncates the pod hostname if it's longer than 63 chars.
|
// truncatePodHostnameIfNeeded truncates the pod hostname if it's longer than 63 chars.
|
||||||
|
@ -114,6 +114,49 @@ func TestMakeMounts(t *testing.T) {
|
|||||||
assert.Equal(t, expectedMounts, mounts, "mounts of container %+v", container)
|
assert.Equal(t, expectedMounts, mounts, "mounts of container %+v", container)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestHostsFileContent(t *testing.T) {
|
||||||
|
testCases := []struct {
|
||||||
|
hostIP string
|
||||||
|
hostName string
|
||||||
|
hostDomainName string
|
||||||
|
expectedContent string
|
||||||
|
}{
|
||||||
|
{
|
||||||
|
"123.45.67.89",
|
||||||
|
"podFoo",
|
||||||
|
"",
|
||||||
|
`# Kubernetes-managed hosts file.
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
fe00::0 ip6-mcastprefix
|
||||||
|
fe00::1 ip6-allnodes
|
||||||
|
fe00::2 ip6-allrouters
|
||||||
|
123.45.67.89 podFoo
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"203.0.113.1",
|
||||||
|
"podFoo",
|
||||||
|
"domainFoo",
|
||||||
|
`# Kubernetes-managed hosts file.
|
||||||
|
127.0.0.1 localhost
|
||||||
|
::1 localhost ip6-localhost ip6-loopback
|
||||||
|
fe00::0 ip6-localnet
|
||||||
|
fe00::0 ip6-mcastprefix
|
||||||
|
fe00::1 ip6-allnodes
|
||||||
|
fe00::2 ip6-allrouters
|
||||||
|
203.0.113.1 podFoo.domainFoo podFoo
|
||||||
|
`,
|
||||||
|
},
|
||||||
|
}
|
||||||
|
|
||||||
|
for _, testCase := range testCases {
|
||||||
|
actualContent := string(hostsFileContent(testCase.hostIP, testCase.hostName, testCase.hostDomainName))
|
||||||
|
assert.Equal(t, testCase.expectedContent, actualContent, "hosts file content not expected")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestRunInContainerNoSuchPod(t *testing.T) {
|
func TestRunInContainerNoSuchPod(t *testing.T) {
|
||||||
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
testKubelet := newTestKubelet(t, false /* controllerAttachDetachEnabled */)
|
||||||
defer testKubelet.Cleanup()
|
defer testKubelet.Cleanup()
|
||||||
|
Loading…
Reference in New Issue
Block a user