Visit ephemeral containers when calculating fs user

This commit is contained in:
carlory
2024-03-21 14:17:26 +08:00
parent a309fadbac
commit dd2dcabe5b
2 changed files with 57 additions and 12 deletions

View File

@@ -34,7 +34,7 @@ import (
"k8s.io/kubernetes/pkg/features"
"k8s.io/kubernetes/pkg/util/slice"
"k8s.io/kubernetes/pkg/volume"
utilptr "k8s.io/utils/pointer"
"k8s.io/utils/ptr"
)
func TestLoadPodFromFile(t *testing.T) {
@@ -169,14 +169,14 @@ func TestFsUserFrom(t *testing.T) {
InitContainers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
},
Containers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
{
@@ -195,19 +195,28 @@ func TestFsUserFrom(t *testing.T) {
InitContainers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(999),
RunAsUser: ptr.To[int64](999),
},
},
},
Containers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
},
EphemeralContainers: []v1.EphemeralContainer{
{
EphemeralContainerCommon: v1.EphemeralContainerCommon{
SecurityContext: &v1.SecurityContext{
RunAsUser: ptr.To[int64](1001),
},
},
},
},
@@ -215,6 +224,34 @@ func TestFsUserFrom(t *testing.T) {
},
wantFsUser: nil,
},
{
desc: "init and regular containers have runAsUser specified and the same",
pod: &v1.Pod{
Spec: v1.PodSpec{
SecurityContext: &v1.PodSecurityContext{},
InitContainers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: ptr.To[int64](1000),
},
},
},
Containers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: ptr.To[int64](1000),
},
},
{
SecurityContext: &v1.SecurityContext{
RunAsUser: ptr.To[int64](1000),
},
},
},
},
},
wantFsUser: ptr.To[int64](1000),
},
{
desc: "all have runAsUser specified and the same",
pod: &v1.Pod{
@@ -223,25 +260,34 @@ func TestFsUserFrom(t *testing.T) {
InitContainers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
},
Containers: []v1.Container{
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
{
SecurityContext: &v1.SecurityContext{
RunAsUser: utilptr.Int64Ptr(1000),
RunAsUser: ptr.To[int64](1000),
},
},
},
EphemeralContainers: []v1.EphemeralContainer{
{
EphemeralContainerCommon: v1.EphemeralContainerCommon{
SecurityContext: &v1.SecurityContext{
RunAsUser: ptr.To[int64](1000),
},
},
},
},
},
},
wantFsUser: utilptr.Int64Ptr(1000),
wantFsUser: ptr.To[int64](1000),
},
}