cri: Make sure host sandbox files exist before adding them to mounts
As `setupSandboxFiles` was done in sandbox controller, it is difficult here to know if the sandbox controller has done and where the host path in. Make sure the host path exists before adding them to linux container mounts, otherwise, the container would generate some unnecessary mounts. Signed-off-by: Zhang Tianyang <burning9699@gmail.com>
This commit is contained in:
@@ -733,32 +733,21 @@ func TestLinuxContainerMounts(t *testing.T) {
|
||||
expectedMounts: nil,
|
||||
},
|
||||
{
|
||||
desc: "should skip hostname mount if the old sandbox doesn't have hostname file",
|
||||
desc: "should skip sandbox mounts if the old sandbox doesn't have sandbox file",
|
||||
statFn: func(path string) (os.FileInfo, error) {
|
||||
assert.Equal(t, filepath.Join(testRootDir, sandboxesDir, testSandboxID, "hostname"), path)
|
||||
return nil, errors.New("random error")
|
||||
sandboxRootDir := filepath.Join(testRootDir, sandboxesDir, testSandboxID)
|
||||
sandboxStateDir := filepath.Join(testStateDir, sandboxesDir, testSandboxID)
|
||||
switch path {
|
||||
case filepath.Join(sandboxRootDir, "hostname"), filepath.Join(sandboxRootDir, "hosts"),
|
||||
filepath.Join(sandboxRootDir, "resolv.conf"), filepath.Join(sandboxStateDir, "shm"):
|
||||
return nil, errors.New("random error")
|
||||
default:
|
||||
t.Fatalf("expected sandbox files, got: %s", path)
|
||||
}
|
||||
return nil, nil
|
||||
},
|
||||
securityContext: &runtime.LinuxContainerSecurityContext{},
|
||||
expectedMounts: []*runtime.Mount{
|
||||
{
|
||||
ContainerPath: "/etc/hosts",
|
||||
HostPath: filepath.Join(testRootDir, sandboxesDir, testSandboxID, "hosts"),
|
||||
Readonly: false,
|
||||
SelinuxRelabel: true,
|
||||
},
|
||||
{
|
||||
ContainerPath: resolvConfPath,
|
||||
HostPath: filepath.Join(testRootDir, sandboxesDir, testSandboxID, "resolv.conf"),
|
||||
Readonly: false,
|
||||
SelinuxRelabel: true,
|
||||
},
|
||||
{
|
||||
ContainerPath: "/dev/shm",
|
||||
HostPath: filepath.Join(testStateDir, sandboxesDir, testSandboxID, "shm"),
|
||||
Readonly: false,
|
||||
SelinuxRelabel: true,
|
||||
},
|
||||
},
|
||||
expectedMounts: nil,
|
||||
},
|
||||
} {
|
||||
test := test
|
||||
|
||||
Reference in New Issue
Block a user