206 lines
5.2 KiB
Smarty
206 lines
5.2 KiB
Smarty
{{/*
|
|
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 }}
|