in pkg/cmd/podidentity/detect.go [322:359]
func (dc *detectCmd) addProxyInitContainer(initContainers []corev1.Container) []corev1.Container {
if initContainers == nil {
initContainers = make([]corev1.Container, 0)
}
for _, container := range initContainers {
if strings.HasPrefix(container.Image, fmt.Sprintf("%s/%s", imageRepository, proxyInitImageName)) {
return initContainers
}
}
trueVal := true
// proxy-init needs to be run as root
runAsRoot := int64(0)
// add the init container to the container list
proxyInitContainer := corev1.Container{
Name: proxyInitContainerName,
Image: proxyInitImage,
ImagePullPolicy: corev1.PullIfNotPresent,
SecurityContext: &corev1.SecurityContext{
Privileged: &trueVal,
RunAsUser: &runAsRoot,
Capabilities: &corev1.Capabilities{
Add: []corev1.Capability{"NET_ADMIN"},
Drop: []corev1.Capability{"ALL"},
},
},
Env: []corev1.EnvVar{
{
Name: "PROXY_PORT",
Value: strconv.FormatInt(int64(dc.proxyPort), 10),
},
},
}
initContainers = append(initContainers, proxyInitContainer)
return initContainers
}