blob: f4a3cad0e4a5acfa38818e5f9a468d711d06d4c8 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
{{/*
Returns `true` if the API `ingressClassName` field is supported and `false` otherwise
*/}}
{{- define "ingress.supportsIngressClassName" -}}
{{- if ( semverCompare "<1.18-0" ( .Values.kubeVersion | default .Capabilities.KubeVersion.Version ) ) -}}
{{- print "false" -}}
{{- else -}}
{{- print "true" -}}
{{- end -}}
{{- end -}}
{{/*
Returns `true` if the API `pathType` field is supported and `false` otherwise
*/}}
{{- define "ingress.supportsPathType" -}}
{{- if ( semverCompare "<1.18-0" ( .Values.kubeVersion | default .Capabilities.KubeVersion.Version ) ) -}}
{{- print "false" -}}
{{- else -}}
{{- print "true" -}}
{{- end -}}
{{- end -}}
{{/*
Returns the appropriate ingress `backend` fields depending on the Kubernetes API version.
e.g.: `{{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }}`
Where the dict must contain the following entries:
- `serviceName` {String} - Name of an existing service backend
- `servicePort` {String|Number} - Port name or port number of the service.
- `context` {Dict} - (Parent) Context for the template evaluation required for the API version detection.
*/}}
{{- define "ingress.backend" -}}
{{- $apiVersion := ( include "capabilities.ingress.apiVersion" .context ) -}}
{{- if or ( eq $apiVersion "extensions/v1beta1" ) ( eq $apiVersion "networking.k8s.io/v1beta1" ) -}}
serviceName: {{ .serviceName }}
servicePort: {{ .servicePort }}
{{- else -}}
service:
name: {{ .serviceName }}
port:
{{- if typeIs "string" .servicePort }}
name: {{ .servicePort }}
{{- else if or ( typeIs "int" .servicePort ) ( typeIs "float64" .servicePort ) }}
number: {{ .servicePort }}
{{- end }}
{{- end -}}
{{- end -}}
|