69 lines
2.3 KiB
Smarty
69 lines
2.3 KiB
Smarty
{{/* vim: set filetype=mustache: */}}
|
|
|
|
{{/*
|
|
Generate backend entry that is compatible with all Kubernetes API versions.
|
|
|
|
Usage:
|
|
{{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }}
|
|
|
|
Params:
|
|
- serviceName - String. Name of an existing service backend
|
|
- servicePort - String/Int. Port name (or number) of the service. It will be translated to different yaml depending if it is a string or an integer.
|
|
- context - Dict - Required. The context for the template evaluation.
|
|
*/}}
|
|
{{- define "common.ingress.backend" -}}
|
|
{{- $apiVersion := (include "common.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 | int }}
|
|
{{- end }}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Print "true" if the API pathType field is supported
|
|
Usage:
|
|
{{ include "common.ingress.supportsPathType" . }}
|
|
*/}}
|
|
{{- define "common.ingress.supportsPathType" -}}
|
|
{{- if (semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .)) -}}
|
|
{{- print "false" -}}
|
|
{{- else -}}
|
|
{{- print "true" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Returns true if the ingressClassname field is supported
|
|
Usage:
|
|
{{ include "common.ingress.supportsIngressClassname" . }}
|
|
*/}}
|
|
{{- define "common.ingress.supportsIngressClassname" -}}
|
|
{{- if semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .) -}}
|
|
{{- print "false" -}}
|
|
{{- else -}}
|
|
{{- print "true" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Return true if cert-manager required annotations for TLS signed
|
|
certificates are set in the Ingress annotations
|
|
Ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
|
|
Usage:
|
|
{{ include "common.ingress.certManagerRequest" ( dict "annotations" .Values.path.to.the.ingress.annotations ) }}
|
|
*/}}
|
|
{{- define "common.ingress.certManagerRequest" -}}
|
|
{{ if or (hasKey .annotations "cert-manager.io/cluster-issuer") (hasKey .annotations "cert-manager.io/issuer") }}
|
|
{{- true -}}
|
|
{{- end -}}
|
|
{{- end -}}
|