mirror of https://github.com/k3s-io/k3s
Merge pull request #68803 from dims/avoid-setting-masked-read-only-when-pod-is-privilged
Avoid setting Masked/ReadOnly paths when pod is privilegedpull/8/head
commit
76518f154b
|
@ -137,8 +137,10 @@ func modifyHostConfig(sc *runtimeapi.LinuxContainerSecurityContext, hostConfig *
|
|||
hostConfig.SecurityOpt = append(hostConfig.SecurityOpt, "no-new-privileges")
|
||||
}
|
||||
|
||||
hostConfig.MaskedPaths = sc.MaskedPaths
|
||||
hostConfig.ReadonlyPaths = sc.ReadonlyPaths
|
||||
if !hostConfig.Privileged {
|
||||
hostConfig.MaskedPaths = sc.MaskedPaths
|
||||
hostConfig.ReadonlyPaths = sc.ReadonlyPaths
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
|
|
@ -110,11 +110,27 @@ func TestModifyContainerConfig(t *testing.T) {
|
|||
|
||||
func TestModifyHostConfig(t *testing.T) {
|
||||
setNetworkHC := &dockercontainer.HostConfig{}
|
||||
|
||||
// When we have Privileged pods, we do not need to use the
|
||||
// Masked / Readonly paths.
|
||||
setPrivSC := &runtimeapi.LinuxContainerSecurityContext{}
|
||||
setPrivSC.Privileged = true
|
||||
setPrivSC.MaskedPaths = []string{"/hello/world/masked"}
|
||||
setPrivSC.ReadonlyPaths = []string{"/hello/world/readonly"}
|
||||
setPrivHC := &dockercontainer.HostConfig{
|
||||
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{
|
||||
CapAdd: []string{"addCapA", "addCapB"},
|
||||
CapDrop: []string{"dropCapA", "dropCapB"},
|
||||
|
@ -148,6 +164,11 @@ func TestModifyHostConfig(t *testing.T) {
|
|||
sc: setPrivSC,
|
||||
expected: setPrivHC,
|
||||
},
|
||||
{
|
||||
name: "container.SecurityContext.NoPrivileges",
|
||||
sc: unsetPrivSC,
|
||||
expected: unsetPrivHC,
|
||||
},
|
||||
{
|
||||
name: "container.SecurityContext.Capabilities",
|
||||
sc: &runtimeapi.LinuxContainerSecurityContext{
|
||||
|
|
Loading…
Reference in New Issue