k8s-manifests/jupyter/base/charts/jupyterhub/templates/_helpers-names.tpl

309 lines
12 KiB
Smarty
Raw Permalink Normal View History

{{- /*
These helpers encapsulates logic on how we name resources. They also enable
parent charts to reference these dynamic resource names.
To avoid duplicating documentation, for more information, please see the the
fullnameOverride entry in values.schema.yaml or the configuration reference
that values.schema.yaml renders to.
https://z2jh.jupyter.org/en/latest/resources/reference.html#fullnameOverride
*/}}
{{- /*
Utility templates
*/}}
{{- /*
Renders to a prefix for the chart's resource names. This prefix is assumed to
make the resource name cluster unique.
*/}}
{{- define "jupyterhub.fullname" -}}
{{- /*
We have implemented a trick to allow a parent chart depending on this
chart to call these named templates.
Caveats and notes:
1. While parent charts can reference these, grandparent charts can't.
2. Parent charts must not use an alias for this chart.
3. There is no failsafe workaround to above due to
https://github.com/helm/helm/issues/9214.
4. .Chart is of its own type (*chart.Metadata) and needs to be casted
using "toYaml | fromYaml" in order to be able to use normal helm
template functions on it.
*/}}
{{- $fullname_override := .Values.fullnameOverride }}
{{- $name_override := .Values.nameOverride }}
{{- if ne .Chart.Name "jupyterhub" }}
{{- if .Values.jupyterhub }}
{{- $fullname_override = .Values.jupyterhub.fullnameOverride }}
{{- $name_override = .Values.jupyterhub.nameOverride }}
{{- end }}
{{- end }}
{{- if eq (typeOf $fullname_override) "string" }}
{{- $fullname_override }}
{{- else }}
{{- $name := $name_override | default .Chart.Name }}
{{- if contains $name .Release.Name }}
{{- .Release.Name }}
{{- else }}
{{- .Release.Name }}-{{ $name }}
{{- end }}
{{- end }}
{{- end }}
{{- /*
Renders to a blank string or if the fullname template is truthy renders to it
with an appended dash.
*/}}
{{- define "jupyterhub.fullname.dash" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.fullname" . }}-
{{- end }}
{{- end }}
{{- /*
Namespaced resources
*/}}
{{- /* hub Deployment */}}
{{- define "jupyterhub.hub.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}hub
{{- end }}
{{- /* hub-serviceaccount ServiceAccount */}}
{{- define "jupyterhub.hub-serviceaccount.fullname" -}}
{{- if .Values.hub.serviceAccount.create }}
{{- .Values.hub.serviceAccount.name | default (include "jupyterhub.hub.fullname" .) }}
{{- else }}
{{- .Values.hub.serviceAccount.name | default "default" }}
{{- end }}
{{- end }}
{{- /* hub-existing-secret Secret */}}
{{- define "jupyterhub.hub-existing-secret.fullname" -}}
{{- /* A hack to avoid issues from invoking this from a parent Helm chart. */}}
{{- $existing_secret := .Values.hub.existingSecret }}
{{- if ne .Chart.Name "jupyterhub" }}
{{- if .Values.jupyterhub }}
{{- $existing_secret = .Values.jupyterhub.hub.existingSecret }}
{{- end }}
{{- end }}
{{- if $existing_secret }}
{{- $existing_secret }}
{{- end }}
{{- end }}
{{- /* hub-existing-secret-or-default Secret */}}
{{- define "jupyterhub.hub-existing-secret-or-default.fullname" -}}
{{- include "jupyterhub.hub-existing-secret.fullname" . | default (include "jupyterhub.hub.fullname" .) }}
{{- end }}
{{- /* hub PVC */}}
{{- define "jupyterhub.hub-pvc.fullname" -}}
{{- include "jupyterhub.hub.fullname" . }}-db-dir
{{- end }}
{{- /* proxy Deployment */}}
{{- define "jupyterhub.proxy.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}proxy
{{- end }}
{{- /* proxy-api Service */}}
{{- define "jupyterhub.proxy-api.fullname" -}}
{{- include "jupyterhub.proxy.fullname" . }}-api
{{- end }}
{{- /* proxy-http Service */}}
{{- define "jupyterhub.proxy-http.fullname" -}}
{{- include "jupyterhub.proxy.fullname" . }}-http
{{- end }}
{{- /* proxy-public Service */}}
{{- define "jupyterhub.proxy-public.fullname" -}}
{{- include "jupyterhub.proxy.fullname" . }}-public
{{- end }}
{{- /* proxy-public-tls Secret */}}
{{- define "jupyterhub.proxy-public-tls.fullname" -}}
{{- include "jupyterhub.proxy-public.fullname" . }}-tls-acme
{{- end }}
{{- /* proxy-public-manual-tls Secret */}}
{{- define "jupyterhub.proxy-public-manual-tls.fullname" -}}
{{- include "jupyterhub.proxy-public.fullname" . }}-manual-tls
{{- end }}
{{- /* autohttps Deployment */}}
{{- define "jupyterhub.autohttps.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}autohttps
{{- end }}
{{- /* autohttps-serviceaccount ServiceAccount */}}
{{- define "jupyterhub.autohttps-serviceaccount.fullname" -}}
{{- if .Values.proxy.traefik.serviceAccount.create }}
{{- .Values.proxy.traefik.serviceAccount.name | default (include "jupyterhub.autohttps.fullname" .) }}
{{- else }}
{{- .Values.proxy.traefik.serviceAccount.name | default "default" }}
{{- end }}
{{- end }}
{{- /* user-scheduler Deployment */}}
{{- define "jupyterhub.user-scheduler-deploy.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}user-scheduler
{{- end }}
{{- /* user-scheduler-serviceaccount ServiceAccount */}}
{{- define "jupyterhub.user-scheduler-serviceaccount.fullname" -}}
{{- if .Values.scheduling.userScheduler.serviceAccount.create }}
{{- .Values.scheduling.userScheduler.serviceAccount.name | default (include "jupyterhub.user-scheduler-deploy.fullname" .) }}
{{- else }}
{{- .Values.scheduling.userScheduler.serviceAccount.name | default "default" }}
{{- end }}
{{- end }}
{{- /* user-scheduler leader election lock resource */}}
{{- define "jupyterhub.user-scheduler-lock.fullname" -}}
{{- include "jupyterhub.user-scheduler-deploy.fullname" . }}-lock
{{- end }}
{{- /* user-placeholder StatefulSet */}}
{{- define "jupyterhub.user-placeholder.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}user-placeholder
{{- end }}
{{- /* image-awaiter Job */}}
{{- define "jupyterhub.hook-image-awaiter.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}hook-image-awaiter
{{- end }}
{{- /* image-awaiter-serviceaccount ServiceAccount */}}
{{- define "jupyterhub.hook-image-awaiter-serviceaccount.fullname" -}}
{{- if .Values.prePuller.hook.serviceAccount.create }}
{{- .Values.prePuller.hook.serviceAccount.name | default (include "jupyterhub.hook-image-awaiter.fullname" .) }}
{{- else }}
{{- .Values.prePuller.hook.serviceAccount.name | default "default" }}
{{- end }}
{{- end }}
{{- /* hook-image-puller DaemonSet */}}
{{- define "jupyterhub.hook-image-puller.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}hook-image-puller
{{- end }}
{{- /* continuous-image-puller DaemonSet */}}
{{- define "jupyterhub.continuous-image-puller.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}continuous-image-puller
{{- end }}
{{- /* singleuser NetworkPolicy */}}
{{- define "jupyterhub.singleuser.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}singleuser
{{- end }}
{{- /* image-pull-secret Secret */}}
{{- define "jupyterhub.image-pull-secret.fullname" -}}
{{- include "jupyterhub.fullname.dash" . }}image-pull-secret
{{- end }}
{{- /* Ingress */}}
{{- define "jupyterhub.ingress.fullname" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.fullname" . }}
{{- else -}}
jupyterhub
{{- end }}
{{- end }}
{{- /*
Cluster wide resources
We enforce uniqueness of names for our cluster wide resources. We assume that
the prefix from setting fullnameOverride to null or a string will be cluster
unique.
*/}}
{{- /* Priority */}}
{{- define "jupyterhub.priority.fullname" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.fullname" . }}
{{- else }}
{{- .Release.Name }}-default-priority
{{- end }}
{{- end }}
{{- /* user-placeholder Priority */}}
{{- define "jupyterhub.user-placeholder-priority.fullname" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.user-placeholder.fullname" . }}
{{- else }}
{{- .Release.Name }}-user-placeholder-priority
{{- end }}
{{- end }}
{{- /* image-puller Priority */}}
{{- define "jupyterhub.image-puller-priority.fullname" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.fullname.dash" . }}image-puller
{{- else }}
{{- .Release.Name }}-image-puller-priority
{{- end }}
{{- end }}
{{- /* user-scheduler's registered name */}}
{{- define "jupyterhub.user-scheduler.fullname" -}}
{{- if (include "jupyterhub.fullname" .) }}
{{- include "jupyterhub.user-scheduler-deploy.fullname" . }}
{{- else }}
{{- .Release.Name }}-user-scheduler
{{- end }}
{{- end }}
{{- /*
A template to render all the named templates in this file for use in the
hub's ConfigMap.
It is important we keep this in sync with the available templates.
*/}}
{{- define "jupyterhub.name-templates" -}}
fullname: {{ include "jupyterhub.fullname" . | quote }}
fullname-dash: {{ include "jupyterhub.fullname.dash" . | quote }}
hub: {{ include "jupyterhub.hub.fullname" . | quote }}
hub-serviceaccount: {{ include "jupyterhub.hub-serviceaccount.fullname" . | quote }}
hub-existing-secret: {{ include "jupyterhub.hub-existing-secret.fullname" . | quote }}
hub-existing-secret-or-default: {{ include "jupyterhub.hub-existing-secret-or-default.fullname" . | quote }}
hub-pvc: {{ include "jupyterhub.hub-pvc.fullname" . | quote }}
proxy: {{ include "jupyterhub.proxy.fullname" . | quote }}
proxy-api: {{ include "jupyterhub.proxy-api.fullname" . | quote }}
proxy-http: {{ include "jupyterhub.proxy-http.fullname" . | quote }}
proxy-public: {{ include "jupyterhub.proxy-public.fullname" . | quote }}
proxy-public-tls: {{ include "jupyterhub.proxy-public-tls.fullname" . | quote }}
proxy-public-manual-tls: {{ include "jupyterhub.proxy-public-manual-tls.fullname" . | quote }}
autohttps: {{ include "jupyterhub.autohttps.fullname" . | quote }}
autohttps-serviceaccount: {{ include "jupyterhub.autohttps-serviceaccount.fullname" . | quote }}
user-scheduler-deploy: {{ include "jupyterhub.user-scheduler-deploy.fullname" . | quote }}
user-scheduler-serviceaccount: {{ include "jupyterhub.user-scheduler-serviceaccount.fullname" . | quote }}
user-scheduler-lock: {{ include "jupyterhub.user-scheduler-lock.fullname" . | quote }}
user-placeholder: {{ include "jupyterhub.user-placeholder.fullname" . | quote }}
image-puller-priority: {{ include "jupyterhub.image-puller-priority.fullname" . | quote }}
hook-image-awaiter: {{ include "jupyterhub.hook-image-awaiter.fullname" . | quote }}
hook-image-awaiter-serviceaccount: {{ include "jupyterhub.hook-image-awaiter-serviceaccount.fullname" . | quote }}
hook-image-puller: {{ include "jupyterhub.hook-image-puller.fullname" . | quote }}
continuous-image-puller: {{ include "jupyterhub.continuous-image-puller.fullname" . | quote }}
singleuser: {{ include "jupyterhub.singleuser.fullname" . | quote }}
image-pull-secret: {{ include "jupyterhub.image-pull-secret.fullname" . | quote }}
ingress: {{ include "jupyterhub.ingress.fullname" . | quote }}
priority: {{ include "jupyterhub.priority.fullname" . | quote }}
user-placeholder-priority: {{ include "jupyterhub.user-placeholder-priority.fullname" . | quote }}
user-scheduler: {{ include "jupyterhub.user-scheduler.fullname" . | quote }}
{{- end }}