{{/* Expand the name of the chart. */}} {{- define "impress.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 "impress.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 "impress.chart" -}} {{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} {{- end }} {{/* impress.labels */}} {{- define "impress.labels" -}} helm.sh/chart: {{ include "impress.chart" . }} {{ include "impress.selectorLabels" . }} {{- if .Chart.AppVersion }} app.kubernetes.io/version: {{ .Chart.AppVersion | quote }} {{- end }} app.kubernetes.io/managed-by: {{ .Release.Service }} {{- end }} {{/* Selector labels */}} {{- define "impress.selectorLabels" -}} app.kubernetes.io/name: {{ include "impress.name" . }} app.kubernetes.io/instance: {{ .Release.Name }} {{- end }} {{/* transform dictionary of environment variables Usage : {{ include "impress.env.transformDict" .Values.envVars }} Example: envVars: # Using simple strings as env vars ENV_VAR_NAME: "envVar value" # Using a value from a configMap ENV_VAR_FROM_CM: configMapKeyRef: name: cm-name key: "key_in_cm" # Using a value from a secret ENV_VAR_FROM_SECRET: secretKeyRef: name: secret-name key: "key_in_secret" */}} {{- define "impress.env.transformDict" -}} {{- range $key, $value := . }} - name: {{ $key | quote }} {{- if $value | kindIs "map" }} valueFrom: {{ $value | toYaml | nindent 4 }} {{- else }} value: {{ $value | quote }} {{- end }} {{- end }} {{- end }} {{/* impress env vars */}} {{- define "impress.common.env" -}} {{- $topLevelScope := index . 0 -}} {{- $workerScope := index . 1 -}} {{- include "impress.env.transformDict" $workerScope.envVars -}} {{- end }} {{/* Common labels Requires array with top level scope and component name */}} {{- define "impress.common.labels" -}} {{- $topLevelScope := index . 0 -}} {{- $component := index . 1 -}} {{- include "impress.labels" $topLevelScope }} app.kubernetes.io/component: {{ $component }} {{- end }} {{/* Common selector labels Requires array with top level scope and component name */}} {{- define "impress.common.selectorLabels" -}} {{- $topLevelScope := index . 0 -}} {{- $component := index . 1 -}} {{- include "impress.selectorLabels" $topLevelScope }} app.kubernetes.io/component: {{ $component }} {{- end }} {{- define "impress.probes.abstract" -}} {{- if .exec -}} exec: {{- toYaml .exec | nindent 2 }} {{- else if .tcpSocket -}} tcpSocket: {{- toYaml .tcpSocket | nindent 2 }} {{- else -}} httpGet: path: {{ .path }} port: {{ .targetPort }} {{- end }} initialDelaySeconds: {{ .initialDelaySeconds | eq nil | ternary 0 .initialDelaySeconds }} timeoutSeconds: {{ .timeoutSeconds | eq nil | ternary 1 .timeoutSeconds }} {{- end }} {{/* Full name for the backend Requires top level scope */}} {{- define "impress.backend.fullname" -}} {{ include "impress.fullname" . }}-backend {{- end }} {{/* Full name for the frontend Requires top level scope */}} {{- define "impress.frontend.fullname" -}} {{ include "impress.fullname" . }}-frontend {{- end }} {{/* Full name for the Posthog Requires top level scope */}} {{- define "impress.posthog.fullname" -}} {{ include "impress.fullname" . }}-posthog {{- end }} {{/* Full name for the yProvider Requires top level scope */}} {{- define "impress.yProvider.fullname" -}} {{ include "impress.fullname" . }}-y-provider {{- end }} {{/* Full name for the Celery Worker Requires top level scope */}} {{- define "impress.celery.worker.fullname" -}} {{ include "impress.fullname" . }}-celery-worker {{- end }} {{/* Usage : {{ include "impress.secret.dockerconfigjson.name" (dict "fullname" (include "impress.fullname" .) "imageCredentials" .Values.path.to.the.image1) }} */}} {{- define "impress.secret.dockerconfigjson.name" }} {{- if (default (dict) .imageCredentials).name }}{{ .imageCredentials.name }}{{ else }}{{ .fullname | trunc 63 | trimSuffix "-" }}-dockerconfig{{ end -}} {{- end }} {{/* Usage : {{ include "impress.secret.dockerconfigjson" (dict "fullname" (include "impress.fullname" .) "imageCredentials" .Values.path.to.the.image1) }} */}} {{- define "impress.secret.dockerconfigjson" }} {{- if .imageCredentials -}} apiVersion: v1 kind: Secret metadata: name: {{ template "impress.secret.dockerconfigjson.name" (dict "fullname" .fullname "imageCredentials" .imageCredentials) }} annotations: "helm.sh/hook": pre-install,pre-upgrade "helm.sh/hook-weight": "-5" "helm.sh/hook-delete-policy": before-hook-creation type: kubernetes.io/dockerconfigjson data: .dockerconfigjson: {{ template "impress.secret.dockerconfigjson.data" .imageCredentials }} {{- end -}} {{- end }}