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
}