46 lines
1.4 KiB
YAML
46 lines
1.4 KiB
YAML
{{- $app := .Values }}
|
|
{{- $ingress := $app.ingress }}
|
|
{{- if $ingress.enabled }}
|
|
{{- if not $app.service.enabled }}
|
|
{{- fail "It's required to set .Values.service.enabled: true when .Values.ingress.enabled: true"}}
|
|
{{- end }}
|
|
{{- $ctx := dict "helm" . }}
|
|
{{- $fullname := include "vm.fullname" $ctx }}
|
|
{{- $ns := include "vm.namespace" $ctx }}
|
|
apiVersion: networking.k8s.io/v1
|
|
kind: Ingress
|
|
metadata:
|
|
{{- with $ingress.annotations }}
|
|
annotations: {{ toYaml . | nindent 4 }}
|
|
{{- end }}
|
|
{{- $_ := set $ctx "extraLabels" $app.ingress.extraLabels }}
|
|
labels: {{ include "vm.labels" $ctx | nindent 4 }}
|
|
{{- $_ := unset $ctx "extraLabels" }}
|
|
name: {{ $fullname }}
|
|
namespace: {{ $ns }}
|
|
spec:
|
|
{{- with $ingress.ingressClassName }}
|
|
ingressClassName: {{ . }}
|
|
{{- end }}
|
|
{{- with $ingress.tls }}
|
|
tls: {{ tpl (toYaml .) $ | nindent 4 }}
|
|
{{- end }}
|
|
rules:
|
|
{{- range $host := $ingress.hosts }}
|
|
{{- $paths := ternary (list $host.path) $host.path (kindIs "string" $host.path) }}
|
|
- host: {{ tpl .name $ | quote }}
|
|
http:
|
|
paths:
|
|
{{- range $path := $paths }}
|
|
- path: {{ $path }}
|
|
{{- with $ingress.pathType }}
|
|
pathType: {{ . }}
|
|
{{- end }}
|
|
backend:
|
|
service:
|
|
name: {{ $fullname }}
|
|
port: {{ include "vm.ingress.port" $host | nindent 18 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|