1 {{- define "ingress.config.host" -}}
2 {{- $dot := default . .dot -}}
3 {{- $baseaddr := (required "'baseaddr' param, set to the specific part of the fqdn, is required." .baseaddr) -}}
4 {{- $burl := (required "'baseurl' param, set to the generic part of the fqdn, is required." $dot.Values.global.ingress.virtualhost.baseurl) -}}
5 {{ printf "%s.%s" $baseaddr $burl }}
8 {{- define "ingress.config.port" -}}
9 {{- $dot := default . .dot -}}
10 {{- if .Values.ingress -}}
11 {{- if .Values.global.ingress -}}
12 {{- if or (not .Values.global.ingress.virtualhost) (not .Values.global.ingress.virtualhost.enabled) -}}
15 {{- range .Values.ingress.service }}
16 {{ $baseaddr := required "baseaddr" .baseaddr }}
17 - path: {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
19 serviceName: {{ .name }}
20 servicePort: {{ .port }}
22 {{- else if .Values.ingress.service -}}
23 {{ range .Values.ingress.service }}
24 {{ $baseaddr := required "baseaddr" .baseaddr }}
25 - host: {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
29 serviceName: {{ .name }}
30 servicePort: {{ .port }}
33 - path: {{ printf "/%s" .Chart.Name }}
35 serviceName: {{ .Chart.Name }}
36 servicePort: {{ .Values.service.externalPort }}
43 {{- define "ingress.config.annotations.ssl" -}}
44 {{- if .Values.ingress.config -}}
45 {{- if .Values.ingress.config.ssl -}}
46 {{- if eq .Values.ingress.config.ssl "redirect" -}}
47 kubernetes.io/ingress.class: nginx
48 nginx.ingress.kubernetes.io/ssl-passthrough: "true"
49 nginx.ingress.kubernetes.io/ssl-redirect: "true"
50 {{- else if eq .Values.ingress.config.ssl "native" -}}
51 nginx.ingress.kubernetes.io/ssl-redirect: "true"
52 {{- else if eq .Values.ingress.config.ssl "none" -}}
53 nginx.ingress.kubernetes.io/ssl-redirect: "false"
60 {{- define "ingress.config.annotations" -}}
61 {{- if .Values.ingress -}}
62 {{- if .Values.ingress.annotations -}}
63 {{ toYaml .Values.ingress.annotations | indent 4 | trim }}
66 {{ include "ingress.config.annotations.ssl" . | indent 4 | trim }}
69 {{- define "common.ingress._overrideIfDefined" -}}
70 {{- $currValue := .currVal }}
71 {{- $parent := .parent }}
74 {{- if hasKey $parent $var }}
75 {{- default "" (index $parent $var) }}
77 {{- default "" $currValue -}}
80 {{- default "" $currValue }}
84 {{- define "common.ingress" -}}
85 {{- if .Values.ingress -}}
86 {{- $ingressEnabled := default false .Values.ingress.enabled -}}
87 {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" (default (dict) .Values.global.ingress) "var" "enabled") }}
88 {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" .Values.ingress "var" "enabledOverride") }}
89 {{- if $ingressEnabled }}
90 apiVersion: networking.k8s.io/v1beta1
93 name: {{ include "common.fullname" . }}-ingress
95 {{ include "ingress.config.annotations" . }}
97 app: {{ .Chart.Name }}
98 chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
99 release: {{ include "common.release" . }}
100 heritage: {{ .Release.Service }}
103 {{ include "ingress.config.port" . | trim }}
104 {{- if .Values.ingress.tls }}
106 {{ toYaml .Values.ingress.tls | indent 4 }}
108 {{- if .Values.ingress.config -}}
109 {{- if .Values.ingress.config.tls -}}
110 {{- $dot := default . .dot -}}
113 {{- range .Values.ingress.service }}{{ $baseaddr := required "baseaddr" .baseaddr }}
114 - {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
116 secretName: {{ required "secret" (tpl (default "" .Values.ingress.config.tls.secret) $dot) }}