85 lines
3.0 KiB
Smarty
85 lines
3.0 KiB
Smarty
{{- define "meguri.name" -}}
|
|
{{- default .Chart.Name .Values.nameOverride | trunc 40 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.fullname" -}}
|
|
{{- if .Values.fullnameOverride -}}
|
|
{{- .Values.fullnameOverride | trunc 40 | trimSuffix "-" -}}
|
|
{{- else if contains .Chart.Name .Release.Name -}}
|
|
{{- .Release.Name | trunc 40 | trimSuffix "-" -}}
|
|
{{- else -}}
|
|
{{- printf "%s-%s" .Release.Name .Chart.Name | trunc 40 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.selectorLabels" -}}
|
|
app.kubernetes.io/name: {{ include "meguri.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.labels" -}}
|
|
helm.sh/chart: {{ printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
{{ include "meguri.selectorLabels" . }}
|
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.image" -}}
|
|
{{- printf "%s:%s" .Values.image.repository (default .Chart.AppVersion .Values.image.tag) -}}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.serviceAccountName" -}}
|
|
{{- if .Values.serviceAccount.create -}}
|
|
{{- default (include "meguri.fullname" .) .Values.serviceAccount.name -}}
|
|
{{- else -}}
|
|
{{- default "default" .Values.serviceAccount.name -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/* The configuration file exactly as the application reads it. */}}
|
|
{{- define "meguri.instanceConfig" -}}
|
|
{{- toYaml .Values.instanceConfig -}}
|
|
{{- end -}}
|
|
|
|
{{/* Fails the render early with a readable message. Outputs nothing. */}}
|
|
{{- define "meguri.requirements" -}}
|
|
{{- $_ := required "publicUrl is required: the exact browser origin, for example https://meguri.example.internal" .Values.publicUrl -}}
|
|
{{- $_ := required "secretName is required: a Secret with DATABASE_URL (and MEGURI_OIDC_CLIENT_SECRET when oidc is configured)" .Values.secretName -}}
|
|
{{- end -}}
|
|
|
|
{{- define "meguri.cloudSqlProxy" -}}
|
|
- name: cloud-sql-proxy
|
|
restartPolicy: Always
|
|
image: {{ .Values.cloudSqlProxy.image | quote }}
|
|
args:
|
|
{{- if .Values.cloudSqlProxy.privateIp }}
|
|
- --private-ip
|
|
{{- end }}
|
|
- --structured-logs
|
|
- --port={{ .Values.cloudSqlProxy.port }}
|
|
- --health-check
|
|
- --http-address=0.0.0.0
|
|
- --http-port=9090
|
|
- {{ required "cloudSqlProxy.instanceConnectionName is required when the proxy is enabled" .Values.cloudSqlProxy.instanceConnectionName | quote }}
|
|
securityContext:
|
|
allowPrivilegeEscalation: false
|
|
capabilities: {drop: [ALL]}
|
|
resources:
|
|
{{- toYaml .Values.cloudSqlProxy.resources | nindent 4 }}
|
|
startupProbe:
|
|
httpGet: {path: /startup, port: 9090}
|
|
periodSeconds: 2
|
|
failureThreshold: 30
|
|
{{- end -}}
|
|
|
|
{{/* Environment shared by the application and the migrate Job. */}}
|
|
{{- define "meguri.env" -}}
|
|
- {name: MEGURI_BIND, value: "0.0.0.0:3000"}
|
|
- {name: MEGURI_PUBLIC_URL, value: {{ .Values.publicUrl | trimSuffix "/" | quote }}}
|
|
- {name: MEGURI_CONFIG_FILE, value: /etc/meguri/config.yaml}
|
|
- {name: RUST_LOG, value: {{ .Values.logLevel | quote }}}
|
|
{{- with .Values.extraEnv }}
|
|
{{ toYaml . }}
|
|
{{- end }}
|
|
{{- end -}}
|