github.com/1aal/kubeblocks@v0.0.0-20231107070852-e1c03e598921/deploy/kafka/charts/common/templates/_ingress.tpl (about)

     1  {{/* vim: set filetype=mustache: */}}
     2  
     3  {{/*
     4  Generate backend entry that is compatible with all Kubernetes API versions.
     5  
     6  Usage:
     7  {{ include "common.ingress.backend" (dict "serviceName" "backendName" "servicePort" "backendPort" "context" $) }}
     8  
     9  Params:
    10    - serviceName - String. Name of an existing service backend
    11    - 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.
    12    - context - Dict - Required. The context for the template evaluation.
    13  */}}
    14  {{- define "common.ingress.backend" -}}
    15  {{- $apiVersion := (include "common.capabilities.ingress.apiVersion" .context) -}}
    16  {{- if or (eq $apiVersion "extensions/v1beta1") (eq $apiVersion "networking.k8s.io/v1beta1") -}}
    17  serviceName: {{ .serviceName }}
    18  servicePort: {{ .servicePort }}
    19  {{- else -}}
    20  service:
    21    name: {{ .serviceName }}
    22    port:
    23      {{- if typeIs "string" .servicePort }}
    24      name: {{ .servicePort }}
    25      {{- else if or (typeIs "int" .servicePort) (typeIs "float64" .servicePort) }}
    26      number: {{ .servicePort | int }}
    27      {{- end }}
    28  {{- end -}}
    29  {{- end -}}
    30  
    31  {{/*
    32  Print "true" if the API pathType field is supported
    33  Usage:
    34  {{ include "common.ingress.supportsPathType" . }}
    35  */}}
    36  {{- define "common.ingress.supportsPathType" -}}
    37  {{- if (semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .)) -}}
    38  {{- print "false" -}}
    39  {{- else -}}
    40  {{- print "true" -}}
    41  {{- end -}}
    42  {{- end -}}
    43  
    44  {{/*
    45  Returns true if the ingressClassname field is supported
    46  Usage:
    47  {{ include "common.ingress.supportsIngressClassname" . }}
    48  */}}
    49  {{- define "common.ingress.supportsIngressClassname" -}}
    50  {{- if semverCompare "<1.18-0" (include "common.capabilities.kubeVersion" .) -}}
    51  {{- print "false" -}}
    52  {{- else -}}
    53  {{- print "true" -}}
    54  {{- end -}}
    55  {{- end -}}
    56  
    57  {{/*
    58  Return true if cert-manager required annotations for TLS signed
    59  certificates are set in the Ingress annotations
    60  Ref: https://cert-manager.io/docs/usage/ingress/#supported-annotations
    61  Usage:
    62  {{ include "common.ingress.certManagerRequest" ( dict "annotations" .Values.path.to.the.ingress.annotations ) }}
    63  */}}
    64  {{- define "common.ingress.certManagerRequest" -}}
    65  {{ if or (hasKey .annotations "cert-manager.io/cluster-issuer") (hasKey .annotations "cert-manager.io/issuer") (hasKey .annotations "kubernetes.io/tls-acme") }}
    66      {{- true -}}
    67  {{- end -}}
    68  {{- end -}}