1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768 |
- {{/* 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") (hasKey .annotations "kubernetes.io/tls-acme") }}
- {{- true -}}
- {{- end -}}
- {{- end -}}
|