func()

in pkg/webhook/pod_readiness_gate_injector.go [150:173]


func (m *PodReadinessGateInjector) isPodUsedByRoute(route core.Route, svcMap map[string]*corev1.Service) *corev1.Service {
	for _, rule := range route.Spec().Rules() {
		for _, backendRef := range rule.BackendRefs() {
			// from spec: "When [Group] unspecified or empty string, core API group is inferred."
			isGroupEqual := backendRef.Group() == nil || string(*backendRef.Group()) == corev1.GroupName
			isKindEqual := backendRef.Kind() != nil && string(*backendRef.Kind()) == "Service"
			svc, isNameEqual := svcMap[string(backendRef.Name())]

			namespace := route.Namespace()
			if backendRef.Namespace() != nil {
				namespace = string(*backendRef.Namespace())
			}
			isNamespaceEqual := svc != nil && namespace == svc.GetNamespace()

			if isGroupEqual && isKindEqual && isNameEqual && isNamespaceEqual {
				m.log.Debugf(context.TODO(), "Found route %s/%s that matches service %s/%s",
					route.Namespace(), route.Name(), svc.Namespace, svc.Name)

				return svc
			}
		}
	}
	return nil
}