Merge "[DMAAP] DMaaP ServiceMesh compatibility"
[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 {{ range .Values.ingress.service }}
11 {{-   $baseaddr := (required "'baseaddr' param, set to the specific part of the fqdn, is required." .baseaddr) }}
12   - host: {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
13     http:
14       paths:
15       - backend:
16           service:
17             name: {{ .name }}
18             port:
19             {{- if kindIs "string" .port }}
20               name: {{ .port }}
21             {{- else }}
22               number: {{ .port }}
23             {{- end }}
24         {{- if .path }}
25         path: {{ .path }}
26         {{- end }}
27         pathType: ImplementationSpecific
28 {{- end }}
29 {{- end -}}
30
31
32 {{- define "ingress.config.annotations.ssl" -}}
33 {{- if .Values.ingress.config -}}
34 {{- if .Values.ingress.config.ssl -}}
35 {{- if eq .Values.ingress.config.ssl "redirect" -}}
36 kubernetes.io/ingress.class: nginx
37 nginx.ingress.kubernetes.io/ssl-passthrough: "true"
38 nginx.ingress.kubernetes.io/ssl-redirect: "true"
39 {{-  else if eq .Values.ingress.config.ssl "native" -}}
40 nginx.ingress.kubernetes.io/ssl-redirect: "true"
41 {{-  else if eq .Values.ingress.config.ssl "none" -}}
42 nginx.ingress.kubernetes.io/ssl-redirect: "false"
43 {{- end -}}
44 {{- end -}}
45 {{- end -}}
46 {{- end -}}
47
48
49 {{- define "ingress.config.annotations" -}}
50 {{- if .Values.ingress -}}
51 {{- if .Values.ingress.annotations -}}
52 {{ toYaml .Values.ingress.annotations | indent 4 | trim }}
53 {{- end -}}
54 {{- end -}}
55 {{ include "ingress.config.annotations.ssl" . | indent 4 | trim }}
56 {{- end -}}
57
58 {{- define "common.ingress._overrideIfDefined" -}}
59   {{- $currValue := .currVal }}
60   {{- $parent := .parent }}
61   {{- $var := .var }}
62   {{- if $parent -}}
63     {{- if hasKey $parent $var }}
64       {{- default "" (index $parent $var) }}
65     {{- else -}}
66       {{- default "" $currValue -}}
67     {{- end -}}
68   {{- else -}}
69     {{- default "" $currValue }}
70   {{- end -}}
71 {{- end -}}
72
73 {{- define "common.ingress" -}}
74 {{- if .Values.ingress -}}
75   {{- $ingressEnabled := default false .Values.ingress.enabled -}}
76   {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" (default (dict) .Values.global.ingress) "var" "enabled") }}
77   {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" .Values.ingress "var" "enabledOverride") }}
78   {{- if $ingressEnabled }}
79 apiVersion: networking.k8s.io/v1
80 kind: Ingress
81 metadata:
82   name: {{ include "common.fullname" . }}-ingress
83   annotations:
84     {{ include "ingress.config.annotations" . }}
85   labels:
86     app: {{ .Chart.Name }}
87     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
88     release: {{ include "common.release" . }}
89     heritage: {{ .Release.Service }}
90 spec:
91   rules:
92   {{ include "ingress.config.port" . | trim }}
93 {{- if .Values.ingress.tls }}
94   tls:
95 {{ toYaml .Values.ingress.tls | indent 4 }}
96 {{- end -}}
97 {{- if .Values.ingress.config -}}
98 {{- if .Values.ingress.config.tls -}}
99 {{-   $dot := default . .dot }}
100   tls:
101   - hosts:
102   {{- range .Values.ingress.service }}{{ $baseaddr := required "baseaddr" .baseaddr }}
103     - {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
104   {{- end }}
105     secretName: {{ required "secret" (tpl (default "" .Values.ingress.config.tls.secret) $dot) }}
106 {{- end -}}
107 {{- end -}}
108 {{- end -}}
109 {{- end -}}
110 {{- end -}}