[COMMON] Fix tox docs profiles configuration
[oom.git] / kubernetes / common / common / templates / _ingress.tpl
1 {{- define "ingress.config.port" -}}
2 {{-   $dot := default . .dot -}}
3 {{-   $burl := (required "'baseurl' param, set to the generic part of the fqdn, is required." $dot.Values.global.ingress.virtualhost.baseurl) -}}
4 {{ range .Values.ingress.service }}
5 {{-   $baseaddr := (required "'baseaddr' param, set to the specific part of the fqdn, is required." .baseaddr) }}
6   - host: {{ printf "%s.%s" $baseaddr $burl }}
7     http:
8       paths:
9       - backend:
10           serviceName: {{ .name }}
11           servicePort: {{ .port }}
12         {{- if .path }}
13         path: {{ .path }}
14         {{- end }}
15 {{- end }}
16 {{- end -}}
17
18
19 {{- define "ingress.config.annotations.ssl" -}}
20 {{- if .Values.ingress.config -}}
21 {{- if .Values.ingress.config.ssl -}}
22 {{- if eq .Values.ingress.config.ssl "redirect" -}}
23 kubernetes.io/ingress.class: nginx
24 nginx.ingress.kubernetes.io/ssl-passthrough: "true"
25 nginx.ingress.kubernetes.io/ssl-redirect: "true"
26 {{-  else if eq .Values.ingress.config.ssl "native" -}}
27 nginx.ingress.kubernetes.io/ssl-redirect: "true"
28 {{-  else if eq .Values.ingress.config.ssl "none" -}}
29 nginx.ingress.kubernetes.io/ssl-redirect: "false"
30 {{- end -}}
31 {{- end -}}
32 {{- end -}}
33 {{- end -}}
34
35
36 {{- define "ingress.config.annotations" -}}
37 {{- if .Values.ingress -}}
38 {{- if .Values.ingress.annotations -}}
39 {{ toYaml .Values.ingress.annotations | indent 4 | trim }}
40 {{- end -}}
41 {{- end -}}
42 {{ include "ingress.config.annotations.ssl" . | indent 4 | trim }}
43 {{- end -}}
44
45 {{- define "common.ingress._overrideIfDefined" -}}
46   {{- $currValue := .currVal }}
47   {{- $parent := .parent }}
48   {{- $var := .var }}
49   {{- if $parent -}}
50     {{- if hasKey $parent $var }}
51       {{- default "" (index $parent $var) }}
52     {{- else -}}
53       {{- default "" $currValue -}}
54     {{- end -}}
55   {{- else -}}
56     {{- default "" $currValue }}
57   {{- end -}}
58 {{- end -}}
59
60 {{- define "common.ingress" -}}
61 {{- if .Values.ingress -}}
62   {{- $ingressEnabled := default false .Values.ingress.enabled -}}
63   {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" (default (dict) .Values.global.ingress) "var" "enabled") }}
64   {{- $ingressEnabled := include "common.ingress._overrideIfDefined" (dict "currVal" $ingressEnabled "parent" .Values.ingress "var" "enabledOverride") }}
65   {{- if $ingressEnabled }}
66 apiVersion: networking.k8s.io/v1beta1
67 kind: Ingress
68 metadata:
69   name: {{ include "common.fullname" . }}-ingress
70   annotations:
71     {{ include "ingress.config.annotations" . }}
72   labels:
73     app: {{ .Chart.Name }}
74     chart: {{ .Chart.Name }}-{{ .Chart.Version | replace "+" "_" }}
75     release: {{ include "common.release" . }}
76     heritage: {{ .Release.Service }}
77 spec:
78   rules:
79   {{ include "ingress.config.port" . | trim }}
80 {{- if .Values.ingress.tls }}
81   tls:
82 {{ toYaml .Values.ingress.tls | indent 4 }}
83 {{- end -}}
84 {{- if .Values.ingress.config -}}
85 {{- if .Values.ingress.config.tls -}}
86 {{-   $dot := default . .dot -}}
87   tls:
88     - hosts:
89     {{- range .Values.ingress.service }}{{ $baseaddr := required "baseaddr" .baseaddr }}
90         - {{ include "ingress.config.host" (dict "dot" $dot "baseaddr" $baseaddr) }}
91     {{- end }}
92     secretName: {{ required "secret" (tpl (default "" .Values.ingress.config.tls.secret) $dot) }}
93 {{- end -}}
94 {{- end -}}
95 {{- end -}}
96 {{- end -}}
97 {{- end -}}