12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- {{/*
- Copyright Broadcom, Inc. All Rights Reserved.
- SPDX-License-Identifier: APACHE-2.0
- */}}
- {{/* 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 -}}
|