in operator/pkg/operator/injector/injector.go [178:206]
func (s *SidecarInjectField) findInjectContainer(containers []corev1.Container) []*corev1.Container {
var targetContainers []*corev1.Container
if len(containers) == 0 {
return targetContainers
}
// validate the container is or not exist
if len(s.InjectContainer) == 0 {
for i := range containers {
targetContainers = append(targetContainers, &containers[i])
}
return targetContainers
}
containerMatcher, err := regexp.Compile(s.InjectContainer)
if err != nil {
log.Error(err, fmt.Sprintf("failed to compile regular expression: %s", s.InjectContainer))
targetContainers = append(targetContainers, &containers[0])
return targetContainers
}
for i := range containers {
if containerMatcher.MatchString(containers[i].Name) {
log.Info(fmt.Sprintf("container %s matched. ", containers[i].Name))
targetContainers = append(targetContainers, &containers[i])
}
}
return targetContainers
}