[DOC] Update example override files in quick start guide documentation
[oom.git] / kubernetes / common / common / templates / _ingress.tpl
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 }}
6 {{- end -}}
7
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) -}}
13   - http:
14       paths:
15 {{- range .Values.ingress.service }}
16 {{ $baseaddr := required "baseaddr" .baseaddr }}
17         - path: {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
18           backend:
19             serviceName: {{ .name }}
20             servicePort: {{ .port }}
21 {{- end -}}
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) }}
26     http:
27       paths:
28       - backend:
29           serviceName: {{ .name }}
30           servicePort: {{ .port }}
31 {{- end -}}
32 {{- else -}}
33         - path: {{ printf "/%s" .Chart.Name }}
34           backend:
35             serviceName: {{ .Chart.Name }}
36             servicePort: {{ .Values.service.externalPort }}
37 {{- end -}}
38 {{- end -}}
39 {{- end -}}
40 {{- end -}}
41
42
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"
54 {{- end -}}
55 {{- end -}}
56 {{- end -}}
57 {{- end -}}
58
59
60 {{- define "ingress.config.annotations" -}}
61 {{- if .Values.ingress -}}
62 {{- if .Values.ingress.annotations -}}
63 {{ toYaml .Values.ingress.annotations | indent 4 | trim }}
64 {{- end -}}
65 {{- end -}}
66 {{ include "ingress.config.annotations.ssl" . | indent 4 | trim }}
67 {{- end -}}
68
69 {{- define "common.ingress._overrideIfDefined" -}}
70   {{- $currValue := .currVal }}
71   {{- $parent := .parent }}
72   {{- $var := .var }}
73   {{- if $parent -}}
74     {{- if hasKey $parent $var }}
75       {{- default "" (index $parent $var) }}
76     {{- else -}}
77       {{- default "" $currValue -}}
78     {{- end -}}
79   {{- else -}}
80     {{- default "" $currValue }}
81   {{- end -}}
82 {{- end -}}
83
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
91 kind: Ingress
92 metadata:
93   name: {{ include "common.fullname" . }}-ingress
94   annotations:
95     {{ include "ingress.config.annotations" . }}
96   labels:
97     app: {{ .Chart.Name }}
98     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
99     release: {{ include "common.release" . }}
100     heritage: {{ .Release.Service }}
101 spec:
102   rules:
103   {{ include "ingress.config.port" . | trim }}
104 {{- if .Values.ingress.tls }}
105   tls:
106 {{ toYaml .Values.ingress.tls | indent 4 }}
107 {{- end -}}
108 {{- if .Values.ingress.config -}}
109 {{- if .Values.ingress.config.tls -}}
110 {{-   $dot := default . .dot -}}
111   tls:
112     - hosts:
113     {{- range .Values.ingress.service }}{{ $baseaddr := required "baseaddr" .baseaddr }}
114         - {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
115     {{- end }}
116     secretName: {{ required "secret" (tpl (default "" .Values.ingress.config.tls.secret) $dot) }}
117 {{- end -}}
118 {{- end -}}
119 {{- end -}}
120 {{- end -}}
121 {{- end -}}