{{/* vim: set filetype=mustache: */}} {{/* Expand the name of the chart. */}} {{- define "wordpress.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). */}} {{- define "wordpress.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 "wordpress.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* Common labels */}} {{- define "wordpress.labels" -}} app.kubernetes.io/name: {{ include "wordpress.name" . }} helm.sh/chart: {{ include "wordpress.chart" . }} app.kubernetes.io/instance: {{ .Release.Name }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end -}} {{/* Labels to use on {deploy|sts}.spec.selector.matchLabels and svc.spec.selector */}} {{- define "wordpress.matchLabels" -}} app.kubernetes.io/name: {{ include "wordpress.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- 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). */}} {{- define "mariadb.fullname" -}} {{- printf "%s-%s" .Release.Name "mariadb" | trunc 63 | trimSuffix "-" -}} {{- end -}} {{/* Return the proper WordPress image name */}} {{- define "wordpress.image" -}} {{- $registryName := .Values.image.registry -}} {{- $repositoryName := .Values.image.repository -}} {{- $tag := .Values.image.tag | toString -}} {{/* Helm 2.11 supports the assignment of a value to a variable defined in a different scope, but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. Also, we can't use a single if because lazy evaluation is not an option */}} {{- if .Values.global }} {{- if .Values.global.imageRegistry }} {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}} {{- else -}} {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} {{- end -}} {{- else -}} {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} {{- end -}} {{- end -}} {{/* Create chart name and version as used by the chart label. */}} {{- define "wordpress.customHTAccessCM" -}} {{- printf "%s" .Values.customHTAccessCM -}} {{- end -}} {{/* Return the proper image name (for the metrics image) */}} {{- define "wordpress.metrics.image" -}} {{- $registryName := .Values.metrics.image.registry -}} {{- $repositoryName := .Values.metrics.image.repository -}} {{- $tag := .Values.metrics.image.tag | toString -}} {{/* Helm 2.11 supports the assignment of a value to a variable defined in a different scope, but Helm 2.9 and 2.10 doesn't support it, so we need to implement this if-else logic. Also, we can't use a single if because lazy evaluation is not an option */}} {{- if .Values.global }} {{- if .Values.global.imageRegistry }} {{- printf "%s/%s:%s" .Values.global.imageRegistry $repositoryName $tag -}} {{- else -}} {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} {{- end -}} {{- else -}} {{- printf "%s/%s:%s" $registryName $repositoryName $tag -}} {{- end -}} {{- end -}} {{/* Return the proper Docker Image Registry Secret Names */}} {{- define "wordpress.imagePullSecrets" -}} {{/* Helm 2.11 supports the assignment of a value to a variable defined in a different scope, but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else logic. Also, we can not use a single if because lazy evaluation is not an option */}} {{- if .Values.global }} {{- if .Values.global.imagePullSecrets }} imagePullSecrets: {{- range .Values.global.imagePullSecrets }} - name: {{ . }} {{- end }} {{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} - name: {{ . }} {{- end }} {{- range .Values.metrics.image.pullSecrets }} - name: {{ . }} {{- end }} {{- end -}} {{- else if or .Values.image.pullSecrets .Values.metrics.image.pullSecrets }} imagePullSecrets: {{- range .Values.image.pullSecrets }} - name: {{ . }} {{- end }} {{- range .Values.metrics.image.pullSecrets }} - name: {{ . }} {{- end }} {{- end -}} {{- end -}} {{/* Return the proper Storage Class */}} {{- define "wordpress.storageClass" -}} {{/* Helm 2.11 supports the assignment of a value to a variable defined in a different scope, but Helm 2.9 and 2.10 does not support it, so we need to implement this if-else logic. */}} {{- if .Values.global -}} {{- if .Values.global.storageClass -}} {{- if (eq "-" .Values.global.storageClass) -}} {{- printf "storageClassName: \"\"" -}} {{- else }} {{- printf "storageClassName: %s" .Values.global.storageClass -}} {{- end -}} {{- else -}} {{- if .Values.persistence.storageClass -}} {{- if (eq "-" .Values.persistence.storageClass) -}} {{- printf "storageClassName: \"\"" -}} {{- else }} {{- printf "storageClassName: %s" .Values.persistence.storageClass -}} {{- end -}} {{- end -}} {{- end -}} {{- else -}} {{- if .Values.persistence.storageClass -}} {{- if (eq "-" .Values.persistence.storageClass) -}} {{- printf "storageClassName: \"\"" -}} {{- else }} {{- printf "storageClassName: %s" .Values.persistence.storageClass -}} {{- end -}} {{- end -}} {{- end -}} {{- end -}} {{/* Return the appropriate apiVersion for ingress. */}} {{- define "wordpress.ingress.apiVersion" -}} {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} {{- print "extensions/v1beta1" -}} {{- else -}} {{- print "networking.k8s.io/v1beta1" -}} {{- end -}} {{- end -}} {{/* Return the appropriate apiVersion for deployment. */}} {{- define "wordpress.deployment.apiVersion" -}} {{- if semverCompare "<1.14-0" .Capabilities.KubeVersion.GitVersion -}} {{- print "extensions/v1beta1" -}} {{- else -}} {{- print "apps/v1" -}} {{- end -}} {{- end -}} {{/* Renders a value that contains template. Usage: {{ include "wordpress.tplValue" ( dict "value" .Values.path.to.the.Value "context" $) }} */}} {{- define "wordpress.tplValue" -}} {{- if typeIs "string" .value }} {{- tpl .value .context }} {{- else }} {{- tpl (.value | toYaml) .context }} {{- end }} {{- end -}} {{/* Return the MariaDB Hostname */}} {{- define "wordpress.databaseHost" -}} {{- if .Values.mariadb.enabled }} {{- printf "%s" (include "mariadb.fullname" .) -}} {{- else -}} {{- printf "%s" .Values.externalDatabase.host -}} {{- end -}} {{- end -}} {{/* Return the MariaDB Port */}} {{- define "wordpress.databasePort" -}} {{- if .Values.mariadb.enabled }} {{- printf "3306" -}} {{- else -}} {{- printf "%d" (.Values.externalDatabase.port | int ) -}} {{- end -}} {{- end -}} {{/* Return the MariaDB Database Name */}} {{- define "wordpress.databaseName" -}} {{- if .Values.mariadb.enabled }} {{- printf "%s" .Values.mariadb.db.name -}} {{- else -}} {{- printf "%s" .Values.externalDatabase.database -}} {{- end -}} {{- end -}} {{/* Return the MariaDB User */}} {{- define "wordpress.databaseUser" -}} {{- if .Values.mariadb.enabled }} {{- printf "%s" .Values.mariadb.db.user -}} {{- else -}} {{- printf "%s" .Values.externalDatabase.user -}} {{- end -}} {{- end -}} {{/* Return the MariaDB User */}} {{- define "wordpress.databaseSecretName" -}} {{- if .Values.mariadb.enabled }} {{- printf "%s" (include "mariadb.fullname" .) -}} {{- else -}} {{- printf "%s-%s" .Release.Name "externaldb" -}} {{- end -}} {{- end -}} {{/* Check if there are rolling tags in the images */}} {{- define "wordpress.checkRollingTags" -}} {{- if and (contains "bitnami/" .Values.image.repository) (not (.Values.image.tag | toString | regexFind "-r\\d+$|sha256:")) }} WARNING: Rolling tag detected ({{ .Values.image.repository }}:{{ .Values.image.tag }}), please note that it is strongly recommended to avoid using rolling tags in a production environment. +info https://docs.bitnami.com/containers/how-to/understand-rolling-tags-containers/ {{- end }} {{- end -}}