func ingress()

in appconfigmgrv2/controllers/ingress.go [101:144]


func ingress(t *appconfig.AppEnvConfigTemplateV2) *v1beta1.Ingress {
	var rules []v1beta1.IngressRule
	for i, s := range t.Spec.Services {
		if s.Ingress == nil {
			continue
		}

		r := v1beta1.IngressRule{
			Host: s.Ingress.Host,
			IngressRuleValue: v1beta1.IngressRuleValue{
				HTTP: &v1beta1.HTTPIngressRuleValue{
					Paths: []v1beta1.HTTPIngressPath{{
						Path: s.Ingress.Path,
						Backend: v1beta1.IngressBackend{
							ServiceName: serviceName(t, i),
							ServicePort: intstr.IntOrString{Type: intstr.Int, IntVal: s.ServicePort},
						},
					}},
				},
			},
		}
		rules = append(rules, r)
	}

	// No ingress resource should be created.
	if len(rules) == 0 {
		return nil
	}

	tls := []v1beta1.IngressTLS{}
	for _, name := range t.Spec.Ingress.TLS.CertSecrets {
		tls = append(tls, v1beta1.IngressTLS{SecretName: name})
	}

	ing := &v1beta1.Ingress{
		ObjectMeta: ingressMeta(t),
		Spec: v1beta1.IngressSpec{
			TLS:   tls,
			Rules: rules,
		},
	}

	return ing
}