44 lines
1.3 KiB
YAML
44 lines
1.3 KiB
YAML
{{- $ctx := dict "helm" . }}
|
|
{{- range $name, $app := .Values }}
|
|
{{- if and (kindIs "map" $app) $app.enabled ($app.ingress).enabled }}
|
|
{{- $ingress := $app.ingress }}
|
|
{{- $_ := set $ctx "extraLabels" $ingress.extraLabels }}
|
|
{{- $_ := set $ctx "appKey" $name }}
|
|
{{- $fullname := include "vm.plain.fullname" $ctx }}
|
|
---
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
{{- with $ingress.annotations }}
|
|
annotations: {{ toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
|
name: {{ $fullname }}
|
|
namespace: {{ include "vm.namespace" $ }}
|
|
spec:
|
|
{{- with $ingress.ingressClassName }}
|
|
ingressClassName: {{ . }}
|
|
{{- end }}
|
|
{{- with $ingress.tls }}
|
|
tls: {{ toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
rules:
|
|
{{- range $host := $app.ingress.hosts }}
|
|
{{- $paths := ternary (list $host.path) $host.path (kindIs "string" $host.path) }}
|
|
- host: {{ tpl $host.name $ | quote }}
|
|
http:
|
|
paths:
|
|
{{- range $path := $paths }}
|
|
- path: {{ $path }}
|
|
{{- with $app.ingress.pathType }}
|
|
pathType: {{ . }}
|
|
{{- end }}
|
|
backend:
|
|
service:
|
|
name: {{ $fullname }}
|
|
port: {{ include "vm.ingress.port" $host | nindent 18 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|