in controllers/gitserver/create_event_listener.go [217:285]
func (h *CreateEventListener) createRoute(ctx context.Context, gitServer *codebaseApi.GitServer) error {
log := ctrl.LoggerFrom(ctx)
log.Info("Creating Route for EventListener")
name := GenerateIngressName(gitServer.Name)
err := h.k8sClient.Get(ctx, client.ObjectKey{
Namespace: gitServer.Namespace,
Name: name,
}, &routeApi.Route{})
if err == nil {
log.Info("Route already exists", "Route", name)
return nil
}
if client.IgnoreNotFound(err) != nil {
return fmt.Errorf("failed to get Route: %w", err)
}
edpConf, err := platform.GetEdpConfig(ctx, h.k8sClient, gitServer.Namespace)
if err != nil {
return fmt.Errorf("failed to get dnsWildcard: %w", err)
}
const routeWeight = int32(100)
route := &routeApi.Route{
ObjectMeta: metav1.ObjectMeta{
Name: name,
Namespace: gitServer.Namespace,
},
Spec: routeApi.RouteSpec{
Host: fmt.Sprintf(
"el-%s-%s.%s",
gitServer.Name,
gitServer.Namespace,
edpConf.DnsWildcard,
),
TLS: &routeApi.TLSConfig{
InsecureEdgeTerminationPolicy: routeApi.InsecureEdgeTerminationPolicyRedirect,
Termination: routeApi.TLSTerminationEdge,
},
To: routeApi.RouteTargetReference{
Kind: "Service",
Name: generateServiceName(gitServer.Name),
Weight: ptr.To(routeWeight),
},
Port: &routeApi.RoutePort{
TargetPort: intstr.FromString("http-listener"),
},
WildcardPolicy: routeApi.WildcardPolicyNone,
},
}
if err = controllerutil.SetControllerReference(gitServer, route, h.k8sClient.Scheme()); err != nil {
return fmt.Errorf("failed to set controller reference for Route: %w", err)
}
if err = h.k8sClient.Create(ctx, route); err != nil {
return fmt.Errorf("failed to create Route: %w", err)
}
log.Info("Route has been created", "Route", route.Name)
return nil
}