github.com/interconnectedcloud/qdr-operator@v0.0.0-20210826174505-576d2b33dac7/pkg/resources/routes/route.go (about) 1 package routes 2 3 import ( 4 "strconv" 5 6 v1alpha1 "github.com/interconnectedcloud/qdr-operator/pkg/apis/interconnectedcloud/v1alpha1" 7 "github.com/interconnectedcloud/qdr-operator/pkg/utils/selectors" 8 routev1 "github.com/openshift/api/route/v1" 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/apimachinery/pkg/util/intstr" 11 ) 12 13 // Create newRouteForCR method to create exposed route 14 func NewRouteForCR(m *v1alpha1.Interconnect, listener v1alpha1.Listener) *routev1.Route { 15 target := listener.Name 16 if target == "" { 17 target = strconv.Itoa(int(listener.Port)) 18 } 19 labels := selectors.LabelsForInterconnect(m.Name) 20 route := &routev1.Route{ 21 TypeMeta: metav1.TypeMeta{ 22 APIVersion: "v1", 23 Kind: "Route", 24 }, 25 ObjectMeta: metav1.ObjectMeta{ 26 Labels: labels, 27 Name: m.Name + "-" + target, 28 Namespace: m.Namespace, 29 }, 30 Spec: routev1.RouteSpec{ 31 Path: "", 32 Port: &routev1.RoutePort{ 33 TargetPort: intstr.FromInt(int(listener.Port)), 34 }, 35 To: routev1.RouteTargetReference{ 36 Kind: "Service", 37 Name: m.Name, 38 }, 39 }, 40 } 41 if listener.SslProfile != "" { 42 route.Spec.TLS = &routev1.TLSConfig{ 43 Termination: routev1.TLSTerminationPassthrough, 44 InsecureEdgeTerminationPolicy: routev1.InsecureEdgeTerminationPolicyNone, 45 } 46 } else { 47 route.Spec.TLS = &routev1.TLSConfig{ 48 Termination: routev1.TLSTerminationEdge, 49 InsecureEdgeTerminationPolicy: routev1.InsecureEdgeTerminationPolicyRedirect, 50 } 51 } 52 return route 53 }