github.com/interconnectedcloud/qdr-operator@v0.0.0-20210826174505-576d2b33dac7/pkg/resources/ingresses/ingress.go (about) 1 package ingresses 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 extv1b1 "k8s.io/api/extensions/v1beta1" 9 metav1 "k8s.io/apimachinery/pkg/apis/meta/v1" 10 "k8s.io/apimachinery/pkg/util/intstr" 11 ) 12 13 // Create newIngressForCR method to create exposed ingress 14 func NewIngressForCR(m *v1alpha1.Interconnect, listener v1alpha1.Listener) *extv1b1.Ingress { 15 target := listener.Name 16 if target == "" { 17 target = strconv.Itoa(int(listener.Port)) 18 } 19 labels := selectors.LabelsForInterconnect(m.Name) 20 ingress := &extv1b1.Ingress{ 21 TypeMeta: metav1.TypeMeta{ 22 APIVersion: "v1", 23 Kind: "Ingress", 24 }, 25 ObjectMeta: metav1.ObjectMeta{ 26 Labels: labels, 27 Name: m.Name + "-" + target, 28 Namespace: m.Namespace, 29 }, 30 Spec: extv1b1.IngressSpec{ 31 Rules: []extv1b1.IngressRule{ 32 { 33 Host: m.Name, 34 IngressRuleValue: extv1b1.IngressRuleValue{ 35 HTTP: &extv1b1.HTTPIngressRuleValue{ 36 Paths: []extv1b1.HTTPIngressPath{ 37 extv1b1.HTTPIngressPath{ 38 Path: "/", 39 Backend: extv1b1.IngressBackend{ 40 ServiceName: m.Name, 41 ServicePort: intstr.FromInt(int(listener.Port)), 42 }, 43 }, 44 }, 45 }, 46 }, 47 }, 48 }, 49 }, 50 } 51 return ingress 52 }