mirror of https://github.com/coder/coder.git
180 lines
4.8 KiB
Smarty
180 lines
4.8 KiB
Smarty
{{/*
|
|
Expand the name of the chart.
|
|
*/}}
|
|
{{- define "coder.name" -}}
|
|
{{- default .Chart.Name .Values.nameOverride | trunc 63 | trimSuffix "-" }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Create chart name and version as used by the chart label.
|
|
*/}}
|
|
{{- define "coder.chart" -}}
|
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Selector labels
|
|
|
|
!!!!! DO NOT ADD ANY MORE SELECTORS. IT IS A BREAKING CHANGE !!!!!
|
|
*/}}
|
|
{{- define "coder.selectorLabels" -}}
|
|
app.kubernetes.io/name: {{ include "coder.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Common labels
|
|
*/}}
|
|
{{- define "coder.labels" -}}
|
|
helm.sh/chart: {{ include "coder.chart" . }}
|
|
{{ include "coder.selectorLabels" . }}
|
|
app.kubernetes.io/part-of: {{ include "coder.name" . }}
|
|
{{- if .Chart.AppVersion }}
|
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
{{- end }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder Docker image URI
|
|
*/}}
|
|
{{- define "coder.image" -}}
|
|
{{- if and (eq .Values.coder.image.tag "") (eq .Chart.AppVersion "0.1.0") -}}
|
|
{{ fail "You must specify the coder.image.tag value if you're installing the Helm chart directly from Git." }}
|
|
{{- end -}}
|
|
{{ .Values.coder.image.repo }}:{{ .Values.coder.image.tag | default (printf "v%v" .Chart.AppVersion) }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder TLS enabled.
|
|
*/}}
|
|
{{- define "coder.tlsEnabled" -}}
|
|
{{- if .Values.coder.tls.secretNames -}}
|
|
true
|
|
{{- else -}}
|
|
false
|
|
{{- end -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder TLS environment variables.
|
|
*/}}
|
|
{{- define "coder.tlsEnv" }}
|
|
{{- if eq (include "coder.tlsEnabled" .) "true" }}
|
|
- name: CODER_TLS_ENABLE
|
|
value: "true"
|
|
- name: CODER_TLS_ADDRESS
|
|
value: "0.0.0.0:8443"
|
|
- name: CODER_TLS_CERT_FILE
|
|
value: "{{ range $idx, $secretName := .Values.coder.tls.secretNames -}}{{ if $idx }},{{ end }}/etc/ssl/certs/coder/{{ $secretName }}/tls.crt{{- end }}"
|
|
- name: CODER_TLS_KEY_FILE
|
|
value: "{{ range $idx, $secretName := .Values.coder.tls.secretNames -}}{{ if $idx }},{{ end }}/etc/ssl/certs/coder/{{ $secretName }}/tls.key{{- end }}"
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder default access URL
|
|
*/}}
|
|
{{- define "coder.defaultAccessURL" }}
|
|
{{- if eq (include "coder.tlsEnabled" .) "true" -}}
|
|
https
|
|
{{- else -}}
|
|
http
|
|
{{- end -}}
|
|
://coder.{{ .Release.Namespace }}.svc.cluster.local
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder volume definitions.
|
|
*/}}
|
|
{{- define "coder.volumeList" }}
|
|
{{ range $secretName := .Values.coder.tls.secretNames -}}
|
|
- name: "tls-{{ $secretName }}"
|
|
secret:
|
|
secretName: {{ $secretName | quote }}
|
|
{{ end -}}
|
|
{{ range $secret := .Values.coder.certs.secrets -}}
|
|
- name: "ca-cert-{{ $secret.name }}"
|
|
secret:
|
|
secretName: {{ $secret.name | quote }}
|
|
{{ end -}}
|
|
{{ if gt (len .Values.coder.volumes) 0 -}}
|
|
{{ toYaml .Values.coder.volumes }}
|
|
{{ end -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder volumes yaml.
|
|
*/}}
|
|
{{- define "coder.volumes" }}
|
|
{{- if trim (include "coder.volumeList" .) -}}
|
|
volumes:
|
|
{{- include "coder.volumeList" . -}}
|
|
{{- else -}}
|
|
volumes: []
|
|
{{- end -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder volume mounts.
|
|
*/}}
|
|
{{- define "coder.volumeMountList" }}
|
|
{{ range $secretName := .Values.coder.tls.secretNames -}}
|
|
- name: "tls-{{ $secretName }}"
|
|
mountPath: "/etc/ssl/certs/coder/{{ $secretName }}"
|
|
readOnly: true
|
|
{{ end -}}
|
|
{{ range $secret := .Values.coder.certs.secrets -}}
|
|
- name: "ca-cert-{{ $secret.name }}"
|
|
mountPath: "/etc/ssl/certs/{{ $secret.name }}.crt"
|
|
subPath: {{ $secret.key | quote }}
|
|
readOnly: true
|
|
{{ end -}}
|
|
{{ if gt (len .Values.coder.volumeMounts) 0 -}}
|
|
{{ toYaml .Values.coder.volumeMounts }}
|
|
{{ end -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder volume mounts yaml.
|
|
*/}}
|
|
{{- define "coder.volumeMounts" }}
|
|
{{- if trim (include "coder.volumeMountList" .) -}}
|
|
volumeMounts:
|
|
{{- include "coder.volumeMountList" . -}}
|
|
{{- else -}}
|
|
volumeMounts: []
|
|
{{- end -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Coder ingress wildcard hostname with the wildcard suffix stripped.
|
|
*/}}
|
|
{{- define "coder.ingressWildcardHost" -}}
|
|
{{/* This regex replace is required as the original input including the suffix
|
|
* is not a legal ingress host. We need to remove the suffix and keep the
|
|
* wildcard '*'.
|
|
*
|
|
* - '\\*' Starts with '*'
|
|
* - '[^.]*' Suffix is 0 or more characters, '-suffix'
|
|
* - '(' Start domain capture group
|
|
* - '\\.' The domain should be separated with a '.' from the subdomain
|
|
* - '.*' Rest of the domain.
|
|
* - ')' $1 is the ''.example.com'
|
|
*/}}
|
|
{{- regexReplaceAll "\\*[^.]*(\\..*)" .Values.coder.ingress.wildcardHost "*${1}" -}}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Fail on fully deprecated values or deprecated value combinations. This is
|
|
included at the top of coder.yaml.
|
|
*/}}
|
|
{{- define "coder.verifyDeprecated" }}
|
|
{{/*
|
|
Deprecated value coder.tls.secretName must not be used.
|
|
*/}}
|
|
{{- if .Values.coder.tls.secretName }}
|
|
{{ fail "coder.tls.secretName is deprecated, use coder.tls.secretNames instead." }}
|
|
{{- end }}
|
|
{{- end }}
|