chart/templates/_common/_helpers.tpl (185 lines of code) (raw):
# SPDX-License-Identifier: Apache-2.0
# Copyright 2022 The HuggingFace Authors.
{{/*
Expand the name of the chart.
*/}}
{{- define "name" -}}
{{- ((list $.Release.Name .Chart.Name) | join "-") | trunc 63 | trimSuffix "-" -}}
{{- end }}
{{/*
Expand the name of the release.
*/}}
{{- define "release" -}}
{{- default .Release.Name | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Create chart name and version as used by the chart label.
*/}}
{{- define "chart" -}}
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
{{- end }}
{{/*
Docker image management
*/}}
{{- define "jobs.mongodbMigration.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.jobs.mongodbMigration "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "jobs.cacheMaintenance.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.jobs.cacheMaintenance "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.admin.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.admin "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.api.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.api "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.rows.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.rows "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.search.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.search "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.sseApi.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.sseApi "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.worker.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.worker "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "services.webhook.image" -}}
{{ include "hf.common.images.image" (dict "imageRoot" .Values.images.services.webhook "global" .Values.global.huggingface) }}
{{- end -}}
{{- define "image.imagePullSecrets" -}}
{{- include "hf.common.images.renderPullSecrets" (dict "images" (list .Values.images) "context" $) -}}
{{- end -}}
{{/*
Common labels
*/}}
{{- define "labels.mongodbMigration" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-mongodb-migration"
{{- end -}}
{{- define "labels.queueMetricsCollector" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-queue-metrics-collector"
{{- end -}}
{{- define "labels.cacheMetricsCollector" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-cache-metrics-collector"
{{- end -}}
{{- define "labels.backfill" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-backfill"
{{- end -}}
{{- define "labels.backfillRetryableErrors" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-backfill-retryable-errors"
{{- end -}}
{{- define "labels.postMessages" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-post-messages"
{{- end -}}
{{- define "labels.admin" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-admin"
{{- end -}}
{{- define "labels.api" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-api"
{{- end -}}
{{- define "labels.rows" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-rows"
{{- end -}}
{{- define "labels.search" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-search"
{{- end -}}
{{- define "labels.sseApi" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-sse-api"
{{- end -}}
{{- define "labels.worker" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-worker-{{ .workerValues.deployName }}"
{{- end -}}
{{- define "labels.webhook" -}}
{{ include "hf.labels.commons" . }}
app.kubernetes.io/component: "{{ include "name" . }}-webhook"
{{- end -}}
{{/*
The dataset viewer API base url
*/}}
{{- define "datasetsServer.ingress.hostname" -}}
{{ .Values.global.huggingface.ingress.subdomains.datasetsServer }}.{{ .Values.global.huggingface.ingress.domain }}
{{- end }}
{{/*
Return the ingress scheme
*/}}
{{- define "datasetsServer.ingress.scheme" -}}
{{- if .Values.global.huggingface.ingress.ssl -}}
https://
{{- else -}}
http://
{{- end -}}
{{- end -}}
{{/*
The assets base URL
*/}}
{{- define "assets.baseUrl" -}}
{{- printf "%s%s/assets" (include "datasetsServer.ingress.scheme" .) (include "datasetsServer.ingress.hostname" .) }}
{{- end }}
{{/*
The cached-assets base URL
*/}}
{{- define "cachedAssets.baseUrl" -}}
{{- printf "%s%s/cached-assets" (include "datasetsServer.ingress.scheme" .) (include "datasetsServer.ingress.hostname" .) }}
{{- end }}
{{/*
The parquet-metadata/ subpath in the EFS
- in a subdirectory named as the chart (dataset-viewer/), and below it,
- in a subdirectory named as the Release, so that Releases will not share the same dir
*/}}
{{- define "parquetMetadata.subpath" -}}
{{- printf "%s/%s/%s/" .Chart.Name .Release.Name "parquet-metadata" }}
{{- end }}
{{/*
Return the HUB url
*/}}
{{- define "datasetsServer.hub.url" -}}
{{- if ne "" .Values.common.hfEndpoint -}}
{{ .Values.common.hfEndpoint | quote }}
{{- else -}}
{{- $hubName := ((list $.Release.Name "hub") | join "-") | trunc 63 | trimSuffix "-" -}}
http://{{ $hubName }}
{{- end -}}
{{- end -}}
{{/*
Return ingress anotations
note: keep $instanceAnnotations in first position during the merge, to avoid override annotations in other pods
*/}}
{{- define "datasetsServer.instance.ingress.annotations" -}}
{{- $instanceAnnotations := .instance.ingress.annotations -}}
{{- $defaultAnnotations := .context.Values.ingress.annotations -}}
{{- $dict := merge $instanceAnnotations $defaultAnnotations -}}
{{- range $key, $value := $dict }}
{{ $key | quote }}: {{ $value | quote }}
{{- end }}
{{- end -}}
{{/*
Return ingressInternal anotations
note: keep $instanceAnnotations in first position during the merge, to avoid override annotations in other pods
*/}}
{{- define "datasetsServer.instance.ingressInternal.annotations" -}}
{{- $instanceAnnotations := .instance.ingressInternal.annotations -}}
{{- $defaultAnnotations := .context.Values.ingress.annotations -}}
{{- $dict := merge $instanceAnnotations $defaultAnnotations -}}
{{- range $key, $value := $dict }}
{{ $key | quote }}: {{ $value | quote }}
{{- end }}
{{- end -}}
{{/*
Return the secret name where Infisical secrets are loaded
*/}}
{{- define "datasetsServer.infisical.secretName" -}}
{{ include "name" $ }}-secs
{{- end -}}