You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
303 lines
9.4 KiB
303 lines
9.4 KiB
{{- define "lakekeeper.image-name" -}}
|
|
{{- $isPlus := eq (required "lakekeeper.edition must be specified" .Values.lakekeeper.edition) "plus" -}}
|
|
{{- $repository := "" -}}
|
|
{{- if .Values.catalog.image.repository -}}
|
|
{{- $repository = .Values.catalog.image.repository -}}
|
|
{{- else if $isPlus -}}
|
|
{{- $repository = "quay.io/vakamo/lakekeeper-plus" -}}
|
|
{{- else -}}
|
|
{{- $repository = "quay.io/lakekeeper/catalog" -}}
|
|
{{- end -}}
|
|
{{- $tag := "" -}}
|
|
{{- /* Default versions: enterprise=v0.12.1, community=v0.12.2 */ -}}
|
|
{{- if .Values.catalog.image.tag -}}
|
|
{{- $tag = .Values.catalog.image.tag -}}
|
|
{{- else if $isPlus -}}
|
|
{{- $tag = "v0.12.1-distroless" -}}
|
|
{{- else -}}
|
|
{{- $tag = "v0.12.2" -}}
|
|
{{- end -}}
|
|
{{- printf "%s:%s" $repository $tag -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Define the image configs for catalog containers
|
|
*/}}
|
|
{{- define "iceberg-catalog.image" }}
|
|
image: {{ include "lakekeeper.image-name" . }}
|
|
imagePullPolicy: {{ .Values.catalog.image.pullPolicy }}
|
|
securityContext:
|
|
runAsUser: {{ .Values.catalog.image.uid }}
|
|
runAsGroup: {{ .Values.catalog.image.gid }}
|
|
{{- if .Values.catalog.containerSecurityContext }}
|
|
{{- omit .Values.catalog.containerSecurityContext "runAsUser" "runAsGroup" | toYaml | nindent 2 }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Expand the name of the chart.
|
|
*/}}
|
|
{{- define "iceberg-catalog.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 "iceberg-catalog.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 "iceberg-catalog.chart" -}}
|
|
{{- printf "%s-%s" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Common labels
|
|
*/}}
|
|
{{- define "iceberg-catalog.labels" -}}
|
|
helm.sh/chart: {{ include "iceberg-catalog.chart" . }}
|
|
{{ include "iceberg-catalog.selectorLabels" . }}
|
|
{{- if .Chart.AppVersion }}
|
|
app.kubernetes.io/version: {{ .Chart.AppVersion | quote }}
|
|
{{- end }}
|
|
app.kubernetes.io/managed-by: {{ .Release.Service }}
|
|
app.kubernetes.io/part-of: lakekeeper
|
|
{{- if .Values.additionalLabels }}
|
|
{{ toYaml .Values.additionalLabels }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Selector labels
|
|
*/}}
|
|
{{- define "iceberg-catalog.selectorLabels" -}}
|
|
app.kubernetes.io/name: {{ include "iceberg-catalog.name" . }}
|
|
app.kubernetes.io/instance: {{ .Release.Name }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Create the name of the service account to use
|
|
*/}}
|
|
{{- define "iceberg-catalog.serviceAccountName" -}}
|
|
{{- if .Values.serviceAccount.create }}
|
|
{{- default (include "iceberg-catalog.fullname" .) .Values.serviceAccount.name }}
|
|
{{- else }}
|
|
{{- default "default" .Values.serviceAccount.name }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
The list of `envFrom` for catalog Pods
|
|
*/}}
|
|
{{- define "iceberg-catalog.envFrom" }}
|
|
- secretRef:
|
|
name: {{ include "iceberg-catalog.fullname" . }}-config-envs
|
|
{{- end }}
|
|
|
|
{{/*
|
|
Construct the `postgresql.fullname` of the postgresql sub-chat chart.
|
|
Used to discover the Service and Secret name created by the sub-chart.
|
|
*/}}
|
|
{{- define "iceberg-catalog.postgresql.fullname" -}}
|
|
{{- if .Values.postgresql.fullnameOverride -}}
|
|
{{- .Values.postgresql.fullnameOverride | trunc 63 | trimSuffix "-" -}}
|
|
{{- else -}}
|
|
{{- $name := default "postgresql" .Values.postgresql.nameOverride -}}
|
|
{{- if contains $name .Release.Name -}}
|
|
{{- .Release.Name | trunc 63 | trimSuffix "-" -}}
|
|
{{- else -}}
|
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
{{- end -}}
|
|
|
|
{{/*
|
|
Construct the `openfga.fullname` of the openfga sub-chat chart.
|
|
Used to discover the Service and Secret name created by the sub-chart.
|
|
*/}}
|
|
{{- define "iceberg-catalog.openfga.fullname" -}}
|
|
{{- if .Values.openfga.fullnameOverride }}
|
|
{{- .Values.openfga.fullnameOverride | trunc 63 | trimSuffix "-" }}
|
|
{{- else }}
|
|
{{- $name := default "openfga" .Values.openfga.nameOverride }}
|
|
{{- if contains $name .Release.Name }}
|
|
{{- .Release.Name | trunc 63 | trimSuffix "-" }}
|
|
{{- else }}
|
|
{{- printf "%s-%s" .Release.Name $name | trunc 63 | trimSuffix "-" }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{/*
|
|
The list of `env` catalog Pods
|
|
*/}}
|
|
{{- define "iceberg-catalog.env" }}
|
|
{{- if .Values.postgresql.enabled }}
|
|
- name: LAKEKEEPER__PG_HOST_W
|
|
value: {{ include "iceberg-catalog.postgresql.fullname" . }}
|
|
- name: LAKEKEEPER__PG_PORT
|
|
value: {{ .Values.postgresql.service.port | quote }}
|
|
{{- if .Values.postgresql.userDatabase.existingSecret }}
|
|
- name: LAKEKEEPER__PG_DATABASE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.postgresql.userDatabase.existingSecret }}
|
|
key: {{ .Values.postgresql.userDatabase.name.secretKey }}
|
|
{{- else }}
|
|
- name: LAKEKEEPER__PG_DATABASE
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "iceberg-catalog.postgresql.fullname" . }}
|
|
key: POSTGRES_DB
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- /* set LAKEKEEPER__PG_USER */ -}}
|
|
{{- if .Values.postgresql.enabled }}
|
|
{{- if .Values.postgresql.userDatabase.existingSecret }}
|
|
- name: LAKEKEEPER__PG_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.postgresql.userDatabase.existingSecret }}
|
|
key: {{ .Values.postgresql.userDatabase.user.secretKey }}
|
|
{{- else }}
|
|
- name: LAKEKEEPER__PG_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "iceberg-catalog.postgresql.fullname" . }}
|
|
key: USERDB_USER
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- if .Values.externalDatabase.userSecret }}
|
|
- name: LAKEKEEPER__PG_USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.userSecret }}
|
|
key: {{ .Values.externalDatabase.userSecretKey }}
|
|
{{- else }}
|
|
{{- /* in this case, LAKEKEEPER__PG_USER is set in the `-config-envs` Secret */ -}}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- /* set LAKEKEEPER__PG_PASSWORD */ -}}
|
|
{{- if .Values.postgresql.enabled }}
|
|
{{- if .Values.postgresql.userDatabase.existingSecret }}
|
|
- name: LAKEKEEPER__PG_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.postgresql.userDatabase.existingSecret }}
|
|
key: {{ .Values.postgresql.userDatabase.password.secretKey }}
|
|
{{- else }}
|
|
- name: LAKEKEEPER__PG_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "iceberg-catalog.postgresql.fullname" . }}
|
|
key: USERDB_PASSWORD
|
|
{{- end }}
|
|
{{- else }}
|
|
{{- if .Values.externalDatabase.passwordSecret }}
|
|
- name: LAKEKEEPER__PG_PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.externalDatabase.passwordSecret }}
|
|
key: {{ .Values.externalDatabase.passwordSecretKey }}
|
|
{{- else }}
|
|
{{- /* in this case, LAKEKEEPER__PG_PASSWORD is set in the `-config-envs` Secret */ -}}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- /* set LAKEKEEPER__PG_ENCRYPTION_KEY */ -}}
|
|
{{- if eq "postgres" (lower .Values.secretBackend.type) }}
|
|
{{- if .Values.secretBackend.postgres.encryptionKeySecret }}
|
|
- name: LAKEKEEPER__PG_ENCRYPTION_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.secretBackend.postgres.encryptionKeySecret }}
|
|
key: {{ .Values.secretBackend.postgres.encryptionKeySecretKey }}
|
|
{{- else }}
|
|
- name: LAKEKEEPER__PG_ENCRYPTION_KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ include "iceberg-catalog.fullname" . }}-postgres-encryption
|
|
key: encryptionKey
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if eq "kv2" (lower .Values.secretBackend.type) }}
|
|
{{- /* set LAKEKEEPER__KV2__USER */ -}}
|
|
{{- if empty .Values.secretBackend.kv2.user }}
|
|
{{- if .Values.secretBackend.kv2.userSecret }}
|
|
- name: LAKEKEEPER__KV2__USER
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.secretBackend.kv2.userSecret }}
|
|
key: {{ .Values.secretBackend.kv2.userSecretKey }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if empty .Values.secretBackend.kv2.password }}
|
|
{{- if .Values.secretBackend.kv2.passwordSecret }}
|
|
- name: LAKEKEEPER__KV2__PASSWORD
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.secretBackend.kv2.passwordSecret }}
|
|
key: {{ .Values.secretBackend.kv2.passwordSecretKey }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- /* set LAKEKEEPER__LICENSE__KEY for plus edition only*/ -}}
|
|
{{- if and .Values.lakekeeper.useLicenseSecret (eq .Values.lakekeeper.edition "plus") }}
|
|
- name: LAKEKEEPER__LICENSE__KEY
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.lakekeeper.licenseSecretName }}
|
|
key: {{ .Values.lakekeeper.licenseSecretKey }}
|
|
{{- end }}
|
|
|
|
{{- if eq "openfga" (lower .Values.authz.backend) }}
|
|
{{- if empty .Values.authz.openfga.clientId }}
|
|
{{- /* set LAKEKEEPER__OPENFGA__CLIENT_ID */ -}}
|
|
{{- if .Values.authz.openfga.clientIdSecret }}
|
|
- name: LAKEKEEPER__OPENFGA__CLIENT_ID
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.authz.openfga.clientIdSecret }}
|
|
key: {{ .Values.authz.openfga.clientIdSecretKey }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- if empty .Values.authz.openfga.clientSecret }}
|
|
{{- /* set LAKEKEEPER__OPENFGA__CLIENT_SECRET */ -}}
|
|
{{- if .Values.authz.openfga.clientSecretSecret }}
|
|
- name: LAKEKEEPER__OPENFGA__CLIENT_SECRET
|
|
valueFrom:
|
|
secretKeyRef:
|
|
name: {{ .Values.authz.openfga.clientSecretSecret }}
|
|
key: {{ .Values.authz.openfga.clientSecretSecretKey }}
|
|
{{- end }}
|
|
{{- end }}
|
|
{{- end }}
|
|
|
|
{{- /* user-defined environment variables */ -}}
|
|
{{- if .Values.catalog.extraEnv }}
|
|
{{ tpl (toYaml .Values.catalog.extraEnv) . }}
|
|
{{- end }}
|
|
|
|
- name: LAKEKEEPER__PLACEHOLDER
|
|
value: "placeholder"
|
|
{{- end }}
|
|
|