Unverified Commit 76518f15 authored by k8s-ci-robot's avatar k8s-ci-robot Committed by GitHub

Merge pull request #68803 from dims/avoid-setting-masked-read-only-when-pod-is-privilged

Avoid setting Masked/ReadOnly paths when pod is privileged
parents 9a5857b1 02489f89
...@@ -137,8 +137,10 @@ func modifyHostConfig(sc *runtimeapi.LinuxContainerSecurityContext, hostConfig * ...@@ -137,8 +137,10 @@ func modifyHostConfig(sc *runtimeapi.LinuxContainerSecurityContext, hostConfig *
hostConfig.SecurityOpt = append(hostConfig.SecurityOpt, "no-new-privileges") hostConfig.SecurityOpt = append(hostConfig.SecurityOpt, "no-new-privileges")
} }
hostConfig.MaskedPaths = sc.MaskedPaths if !hostConfig.Privileged {
hostConfig.ReadonlyPaths = sc.ReadonlyPaths hostConfig.MaskedPaths = sc.MaskedPaths
hostConfig.ReadonlyPaths = sc.ReadonlyPaths
}
return nil return nil
} }
......
...@@ -110,11 +110,27 @@ func TestModifyContainerConfig(t *testing.T) { ...@@ -110,11 +110,27 @@ func TestModifyContainerConfig(t *testing.T) {
func TestModifyHostConfig(t *testing.T) { func TestModifyHostConfig(t *testing.T) {
setNetworkHC := &dockercontainer.HostConfig{} setNetworkHC := &dockercontainer.HostConfig{}
// When we have Privileged pods, we do not need to use the
// Masked / Readonly paths.
setPrivSC := &runtimeapi.LinuxContainerSecurityContext{} setPrivSC := &runtimeapi.LinuxContainerSecurityContext{}
setPrivSC.Privileged = true setPrivSC.Privileged = true
setPrivSC.MaskedPaths = []string{"/hello/world/masked"}
setPrivSC.ReadonlyPaths = []string{"/hello/world/readonly"}
setPrivHC := &dockercontainer.HostConfig{ setPrivHC := &dockercontainer.HostConfig{
Privileged: true, Privileged: true,
} }
unsetPrivSC := &runtimeapi.LinuxContainerSecurityContext{}
unsetPrivSC.Privileged = false
unsetPrivSC.MaskedPaths = []string{"/hello/world/masked"}
unsetPrivSC.ReadonlyPaths = []string{"/hello/world/readonly"}
unsetPrivHC := &dockercontainer.HostConfig{
Privileged: false,
MaskedPaths: []string{"/hello/world/masked"},
ReadonlyPaths: []string{"/hello/world/readonly"},
}
setCapsHC := &dockercontainer.HostConfig{ setCapsHC := &dockercontainer.HostConfig{
CapAdd: []string{"addCapA", "addCapB"}, CapAdd: []string{"addCapA", "addCapB"},
CapDrop: []string{"dropCapA", "dropCapB"}, CapDrop: []string{"dropCapA", "dropCapB"},
...@@ -149,6 +165,11 @@ func TestModifyHostConfig(t *testing.T) { ...@@ -149,6 +165,11 @@ func TestModifyHostConfig(t *testing.T) {
expected: setPrivHC, expected: setPrivHC,
}, },
{ {
name: "container.SecurityContext.NoPrivileges",
sc: unsetPrivSC,
expected: unsetPrivHC,
},
{
name: "container.SecurityContext.Capabilities", name: "container.SecurityContext.Capabilities",
sc: &runtimeapi.LinuxContainerSecurityContext{ sc: &runtimeapi.LinuxContainerSecurityContext{
Capabilities: inputCapabilities(), Capabilities: inputCapabilities(),
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment