func()

in operator/pkg/operator/injector/injector.go [169:198]


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
}