| {{/* vim: set filetype=mustache: */}} |
| {{/* |
| Expand the name of the chart. |
| */}} |
| {{- define "apisix.name" -}} |
| {{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }} |
| {{- end }} |
| |
| {{/* |
| Create a default fully qualified app name. |
| We truncate at 63 chars because some Kubernetes name fields are limited to this (by the DNS naming spec). |
| If release name contains chart name it will be used as a full name. |
| */}} |
| {{- define "apisix.fullname" -}} |
| {{- if .Values.fullnameOverride }} |
| {{- .Values.fullnameOverride | trunc 63 | trimSuffix "-" }} |
| {{- else }} |
| {{- $name := default .Chart.Name .Values.nameOverride }} |
| {{- if contains $name .Release.Name }} |
| {{- .Release.Name | trunc 63 | trimSuffix "-" }} |
| {{- else }} |
| {{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }} |
| {{- end }} |
| {{- end }} |
| {{- end }} |
| |
| {{/* |
| Create chart name and version as used by the chart label. |
| */}} |
| {{- define "apisix.chart" -}} |
| {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} |
| {{- end }} |
| |
| {{/* |
| Common labels |
| */}} |
| {{- define "apisix.labels" -}} |
| helm.sh/chart: {{ include "apisix.chart" . }} |
| {{ include "apisix.selectorLabels" . }} |
| {{- if .Chart.AppVersion }} |
| app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} |
| {{- end }} |
| app.kubernetes.io/managed-by: {{ .Release.Service }} |
| {{- end }} |
| |
| {{/* |
| Selector labels |
| */}} |
| {{- define "apisix.selectorLabels" -}} |
| app.kubernetes.io/name: {{ include "apisix.name" . }} |
| app.kubernetes.io/instance: {{ .Release.Name }} |
| {{- end }} |
| |
| {{/* |
| Create the name of the service account to use |
| */}} |
| {{- define "apisix.serviceAccountName" -}} |
| {{- if .Values.serviceAccount.create }} |
| {{- default (include "apisix.fullname" .) .Values.serviceAccount.name }} |
| {{- else }} |
| {{- default "default" .Values.serviceAccount.name }} |
| {{- end }} |
| {{- end }} |
| |
| {{/* |
| Renders a value that contains template. |
| Usage: |
| {{ include "apisix.tplvalues.render" ( dict "value" .Values.path.to.the.Value "context" $) }} |
| */}} |
| {{- define "apisix.tplvalues.render" -}} |
| {{- if typeIs "string" .value }} |
| {{- tpl .value .context }} |
| {{- else }} |
| {{- tpl (.value | toYaml) .context }} |
| {{- end }} |
| {{- end -}} |
| |
| {{- define "apisix.basePluginAttrs" -}} |
| {{- if .Values.serviceMonitor.enabled }} |
| prometheus: |
| export_addr: |
| ip: 0.0.0.0 |
| port: {{ .Values.serviceMonitor.containerPort }} |
| export_uri: {{ .Values.serviceMonitor.path }} |
| metric_prefix: {{ .Values.serviceMonitor.metricPrefix }} |
| {{- end }} |
| {{- if .Values.customPlugins.enabled }} |
| {{- range $plugin := .Values.customPlugins.plugins }} |
| {{- if $plugin.attrs }} |
| {{ $plugin.name }}: {{- $plugin.attrs | toYaml | nindent 2 }} |
| {{- end }} |
| {{- end }} |
| {{- end }} |
| {{- end -}} |
| |
| {{- define "apisix.pluginAttrs" -}} |
| {{- merge .Values.pluginAttrs (include "apisix.basePluginAttrs" . | fromYaml) | toYaml -}} |
| {{- end -}} |
| |
| {{- define "apisix.podAntiAffinity" -}} |
| {{- if and .Values.apisix.hostNetwork (eq .Values.apisix.kind "Deployment") }} |
| podAntiAffinity: |
| requiredDuringSchedulingIgnoredDuringExecution: |
| - labelSelector: |
| matchExpressions: |
| - key: app.kubernetes.io/instance |
| operator: In |
| values: |
| - {{ .Release.Name }} |
| topologyKey: "kubernetes.io/hostname" |
| {{- end }} |
| {{- end -}} |