Skip to content

Commit db41bfd

Browse files
authored
Release/0.9.9 (#118)
1 parent d499a0f commit db41bfd

22 files changed

+314
-48
lines changed

charts/logfire/Chart.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
apiVersion: v2
2-
version: 0.9.8
2+
version: 0.9.9
33
name: logfire
44
description: Helm chart for self-hosted Pydantic Logfire
55

charts/logfire/README.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# logfire
22

3-
![Version: 0.9.8](https://img.shields.io/badge/Version-0.9.8-informational?style=flat-square) ![AppVersion: d7fd41e4](https://img.shields.io/badge/AppVersion-d7fd41e4-informational?style=flat-square)
3+
![Version: 0.9.9](https://img.shields.io/badge/Version-0.9.9-informational?style=flat-square) ![AppVersion: d7fd41e4](https://img.shields.io/badge/AppVersion-d7fd41e4-informational?style=flat-square)
44

55
Helm chart for self-hosted Pydantic Logfire
66

@@ -356,7 +356,7 @@ See our [`Scaling guide`](https://logfire.pydantic.dev/docs/reference/self-hoste
356356
* Enterprise Support: For commercial support, contact us at [[email protected]](mailto:[email protected]).
357357
# logfire
358358

359-
![Version: 0.9.8](https://img.shields.io/badge/Version-0.9.8-informational?style=flat-square) ![AppVersion: d7fd41e4](https://img.shields.io/badge/AppVersion-d7fd41e4-informational?style=flat-square)
359+
![Version: 0.9.9](https://img.shields.io/badge/Version-0.9.9-informational?style=flat-square) ![AppVersion: d7fd41e4](https://img.shields.io/badge/AppVersion-d7fd41e4-informational?style=flat-square)
360360

361361
Helm chart for self-hosted Pydantic Logfire
362362

@@ -377,11 +377,11 @@ Helm chart for self-hosted Pydantic Logfire
377377
| adminSecret.enabled | bool | `false` | Use an existing Secret (recommended for Argo CD users). |
378378
| adminSecret.name | string | `""` | Name of the Kubernetes Secret resource. |
379379
| affinity | object | `{}` | Node/Pod affinity applied to all workloads |
380-
| ai.azureOpenAi.apiKey | string | `nil` | Azure OpenAI API key |
380+
| ai.azureOpenAi.apiKey | string | `nil` | Azure OpenAI API key. Can be a plain string or a map with valueFrom (e.g., secretKeyRef). |
381381
| ai.azureOpenAi.apiVersion | string | `nil` | Azure OpenAI API version |
382382
| ai.azureOpenAi.endpoint | string | `nil` | Azure OpenAI endpoint |
383383
| ai.model | string | `nil` | AI provider+model string. Prefix the model with the provider (e.g., `azure:gpt-4o`). See https://ai.pydantic.dev/models/ for more information. |
384-
| ai.openAi.apiKey | string | `nil` | OpenAI API key |
384+
| ai.openAi.apiKey | string | `nil` | OpenAI API key. Can be a plain string or a map with valueFrom (e.g., secretKeyRef). |
385385
| ai.vertexAi.region | string | `nil` | Vertex AI region |
386386
| dev.deployMaildev | bool | `false` | Deploy MailDev to test emails |
387387
| dev.deployMinio | bool | `false` | Use a local MinIO instance as object storage (NOT for production) |
@@ -479,10 +479,10 @@ Helm chart for self-hosted Pydantic Logfire
479479
| securityContext | object | `{}` | Container SecurityContext (https://kubernetes.io/docs/tasks/configure-pod-container/security-context/#set-the-security-context-for-a-container) See: https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/pod-v1/#security-context-1 for details |
480480
| serviceAccountName | string | `"default"` | ServiceAccount used by pods |
481481
| smtp.host | string | `nil` | SMTP server hostname |
482-
| smtp.password | string | `nil` | SMTP password |
482+
| smtp.password | string | `nil` | SMTP password. Can be a plain string or a map with valueFrom (e.g., secretKeyRef). |
483483
| smtp.port | int | `25` | SMTP server port |
484484
| smtp.use_tls | bool | `false` | Use TLS for SMTP |
485-
| smtp.username | string | `nil` | SMTP username |
485+
| smtp.username | string | `nil` | SMTP username. Can be a plain string or a map with valueFrom (e.g., secretKeyRef). |
486486
| tolerations | list | `[]` | Tolerations applied to all workloads |
487487

488488
----------------------------------------------

charts/logfire/templates/NOTES.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,4 @@ The email address used is {{ .Values.adminEmail }}.
3434
You'll need to reset the password to log in.
3535
This admin account has no special access over other accounts or new organizations / projects you might create.
3636

37-
For more information and documentation, visit: https://docs.logfire.dev/
37+
For more information and documentation, visit: https://logfire.pydantic.dev/docs/

charts/logfire/templates/_helpers.tpl

Lines changed: 200 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -254,11 +254,20 @@ app.kubernetes.io/name: {{ include "logfire.name" . }}
254254
app.kubernetes.io/instance: {{ .Release.Name }}
255255
{{- end }}
256256

257+
257258
{{/*
258-
Create default tag
259+
Get service-specific image tag, falling back to global tag
260+
Usage: {{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" "logfire-backend" "Chart" .Chart) }}
259261
*/}}
260-
{{- define "logfire.defaultTag" -}}
261-
{{- default .Chart.AppVersion .Values.image.tag }}
262+
{{- define "logfire.serviceTag" -}}
263+
{{- $serviceValues := index .Values .serviceName | default dict -}}
264+
{{- $serviceImage := $serviceValues.image | default dict -}}
265+
{{- $serviceTag := $serviceImage.tag -}}
266+
{{- if $serviceTag -}}
267+
{{- $serviceTag -}}
268+
{{- else -}}
269+
{{- default .Chart.AppVersion .Values.image.tag -}}
270+
{{- end -}}
262271
{{- end -}}
263272

264273
{{/*
@@ -736,3 +745,191 @@ tolerations:
736745
value: "99999"
737746
{{- end -}}
738747
{{- end -}}
748+
749+
{{/*
750+
================================================================================
751+
Configuration Validation Helpers
752+
================================================================================
753+
These helpers validate chart configuration and fail with clear error messages
754+
when required values are missing or incorrectly configured.
755+
*/}}
756+
757+
{{/*
758+
Validate that objectStore.uri is configured (required for production)
759+
*/}}
760+
{{- define "logfire.validate.objectStore" -}}
761+
{{- if not .Values.dev.deployMinio -}}
762+
{{- if not .Values.objectStore.uri -}}
763+
{{- fail "objectStore.uri is required. Set objectStore.uri to your S3/Azure/GCS bucket URI (e.g., 's3://bucket-name' or 'az://container-name'). For local development, you can set dev.deployMinio=true instead." -}}
764+
{{- end -}}
765+
{{- end -}}
766+
{{- end -}}
767+
768+
{{/*
769+
Validate ingress hostnames configuration
770+
*/}}
771+
{{- define "logfire.validate.ingress" -}}
772+
{{- $hasHostnames := and .Values.ingress.hostnames (gt (len .Values.ingress.hostnames) 0) -}}
773+
{{- $hasHostname := .Values.ingress.hostname -}}
774+
{{- if not (or $hasHostnames $hasHostname) -}}
775+
{{- fail "ingress.hostnames (or ingress.hostname) is required. Specify at least one hostname for Logfire (e.g., hostnames: ['logfire.example.com']). This is needed for CORS and URL generation even if ingress.enabled is false." -}}
776+
{{- end -}}
777+
{{- end -}}
778+
779+
{{/*
780+
Validate postgres configuration - either external secret or DSN must be provided
781+
*/}}
782+
{{- define "logfire.validate.postgres" -}}
783+
{{- if not .Values.dev.deployPostgres -}}
784+
{{- if .Values.postgresSecret.enabled -}}
785+
{{- if not .Values.postgresSecret.name -}}
786+
{{- fail "postgresSecret.name is required when postgresSecret.enabled is true. Provide the name of your Kubernetes Secret containing 'postgresDsn' and 'postgresFFDsn' keys." -}}
787+
{{- end -}}
788+
{{- else -}}
789+
{{- if not .Values.postgresDsn -}}
790+
{{- fail "postgresDsn is required when not using dev.deployPostgres or postgresSecret. Provide a PostgreSQL DSN for the crud database." -}}
791+
{{- end -}}
792+
{{- if not .Values.postgresFFDsn -}}
793+
{{- fail "postgresFFDsn is required when not using dev.deployPostgres or postgresSecret. Provide a PostgreSQL DSN for the ff database." -}}
794+
{{- end -}}
795+
{{- end -}}
796+
{{- end -}}
797+
{{- end -}}
798+
799+
{{/*
800+
Validate dex storage configuration when using external postgres
801+
*/}}
802+
{{- define "logfire.validate.dexStorage" -}}
803+
{{- $dexConfig := dig "config" dict (index .Values "logfire-dex" | default dict) -}}
804+
{{- $storage := dig "storage" dict $dexConfig -}}
805+
{{- $storageType := dig "type" "" $storage -}}
806+
{{- if and (not .Values.dev.deployPostgres) (eq $storageType "postgres") -}}
807+
{{- $storageConfig := dig "config" dict $storage -}}
808+
{{- if not $storageConfig.host -}}
809+
{{- fail "logfire-dex.config.storage.config.host is required when using postgres storage type. Configure the Dex storage to point to your PostgreSQL instance." -}}
810+
{{- end -}}
811+
{{- end -}}
812+
{{- end -}}
813+
814+
{{/*
815+
Validate AI configuration consistency - if model is set, required provider config must exist
816+
*/}}
817+
{{- define "logfire.validate.ai" -}}
818+
{{- if .Values.ai.model -}}
819+
{{- $model := .Values.ai.model -}}
820+
{{- if hasPrefix "openai:" $model -}}
821+
{{- if not .Values.ai.openAi.apiKey -}}
822+
{{- fail (printf "ai.openAi.apiKey is required when using OpenAI model '%s'. Provide your OpenAI API key." $model) -}}
823+
{{- end -}}
824+
{{- else if hasPrefix "azure:" $model -}}
825+
{{- if not .Values.ai.azureOpenAi.endpoint -}}
826+
{{- fail (printf "ai.azureOpenAi.endpoint is required when using Azure OpenAI model '%s'." $model) -}}
827+
{{- end -}}
828+
{{- if not .Values.ai.azureOpenAi.apiKey -}}
829+
{{- fail (printf "ai.azureOpenAi.apiKey is required when using Azure OpenAI model '%s'." $model) -}}
830+
{{- end -}}
831+
{{- else if hasPrefix "google-vertex:" $model -}}
832+
{{- if not .Values.ai.vertexAi.region -}}
833+
{{- fail (printf "ai.vertexAi.region is required when using Google Vertex AI model '%s'." $model) -}}
834+
{{- end -}}
835+
{{- end -}}
836+
{{- end -}}
837+
{{- end -}}
838+
839+
{{/*
840+
Validate existing secret configuration
841+
*/}}
842+
{{- define "logfire.validate.existingSecret" -}}
843+
{{- if .Values.existingSecret.enabled -}}
844+
{{- if not .Values.existingSecret.name -}}
845+
{{- fail "existingSecret.name is required when existingSecret.enabled is true. Provide the name of your Kubernetes Secret containing logfire-dex-client-secret, logfire-meta-write-token, logfire-meta-frontend-token, and logfire-jwt-secret keys." -}}
846+
{{- end -}}
847+
{{- end -}}
848+
{{- end -}}
849+
850+
{{/*
851+
Validate admin secret configuration
852+
*/}}
853+
{{- define "logfire.validate.adminSecret" -}}
854+
{{- if .Values.adminSecret.enabled -}}
855+
{{- if not .Values.adminSecret.name -}}
856+
{{- fail "adminSecret.name is required when adminSecret.enabled is true. Provide the name of your Kubernetes Secret containing logfire-admin-password, logfire-admin-totp-secret, and logfire-admin-totp-recovery-codes keys." -}}
857+
{{- end -}}
858+
{{- end -}}
859+
{{- end -}}
860+
861+
{{/*
862+
Validate autoscaling configuration - warn if both HPA and KEDA are enabled
863+
*/}}
864+
{{- define "logfire.validate.autoscaling" -}}
865+
{{- $serviceName := .serviceName -}}
866+
{{- $serviceValues := index .Values $serviceName | default dict -}}
867+
{{- $autoscaling := $serviceValues.autoscaling | default dict -}}
868+
{{- if $autoscaling -}}
869+
{{- $hpaEnabled := include "logfire.hpa.enabled" $autoscaling | eq "true" -}}
870+
{{- $kedaEnabled := include "logfire.keda.enabled" $autoscaling | eq "true" -}}
871+
{{- if and $hpaEnabled $kedaEnabled -}}
872+
{{- fail (printf "Both HPA and KEDA are enabled for '%s'. Only one autoscaler should be enabled at a time to avoid conflicts." $serviceName) -}}
873+
{{- end -}}
874+
{{- if $autoscaling.minReplicas -}}
875+
{{- if $autoscaling.maxReplicas -}}
876+
{{- if gt (int $autoscaling.minReplicas) (int $autoscaling.maxReplicas) -}}
877+
{{- fail (printf "autoscaling.minReplicas (%d) cannot be greater than autoscaling.maxReplicas (%d) for '%s'." (int $autoscaling.minReplicas) (int $autoscaling.maxReplicas) $serviceName) -}}
878+
{{- end -}}
879+
{{- end -}}
880+
{{- end -}}
881+
{{- end -}}
882+
{{- end -}}
883+
884+
{{/*
885+
Validate PDB configuration - minAvailable and maxUnavailable are mutually exclusive
886+
*/}}
887+
{{- define "logfire.validate.pdb" -}}
888+
{{- $serviceName := .serviceName -}}
889+
{{- $serviceValues := index .Values $serviceName | default dict -}}
890+
{{- $pdb := $serviceValues.pdb | default dict -}}
891+
{{- if and $pdb.minAvailable $pdb.maxUnavailable -}}
892+
{{- fail (printf "pdb.minAvailable and pdb.maxUnavailable are mutually exclusive for '%s'. Specify only one." $serviceName) -}}
893+
{{- end -}}
894+
{{- end -}}
895+
896+
{{/*
897+
Validate email/admin configuration
898+
*/}}
899+
{{- define "logfire.validate.admin" -}}
900+
{{- if not .Values.adminEmail -}}
901+
{{- fail "adminEmail is required. Provide an email address for the initial admin user." -}}
902+
{{- end -}}
903+
{{- $emailRegex := "^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,}$" -}}
904+
{{- if not (regexMatch $emailRegex .Values.adminEmail) -}}
905+
{{- fail (printf "adminEmail '%s' does not appear to be a valid email address." .Values.adminEmail) -}}
906+
{{- end -}}
907+
{{- end -}}
908+
909+
{{/*
910+
Validate Redis configuration
911+
*/}}
912+
{{- define "logfire.validate.redis" -}}
913+
{{- $redisEnabled := dig "enabled" true (index .Values "logfire-redis" | default dict) -}}
914+
{{- if not $redisEnabled -}}
915+
{{- if not .Values.redisDsn -}}
916+
{{- fail "redisDsn is required when logfire-redis.enabled is false. Provide a Redis DSN for your external Redis instance." -}}
917+
{{- end -}}
918+
{{- end -}}
919+
{{- end -}}
920+
921+
{{/*
922+
Master validation template - runs all validations
923+
Call this from templates that need to ensure configuration is valid.
924+
*/}}
925+
{{- define "logfire.validateConfig" -}}
926+
{{- include "logfire.validate.objectStore" . -}}
927+
{{- include "logfire.validate.ingress" . -}}
928+
{{- include "logfire.validate.postgres" . -}}
929+
{{- include "logfire.validate.dexStorage" . -}}
930+
{{- include "logfire.validate.ai" . -}}
931+
{{- include "logfire.validate.existingSecret" . -}}
932+
{{- include "logfire.validate.adminSecret" . -}}
933+
{{- include "logfire.validate.admin" . -}}
934+
{{- include "logfire.validate.redis" . -}}
935+
{{- end -}}

charts/logfire/templates/dex/deployment.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ spec:
7777
- name: {{ $serviceName }}
7878
securityContext:
7979
{{- toYaml .Values.securityContext | nindent 12 }}
80-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.dexImage }}:{{ include "logfire.defaultTag" . }}'
80+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.dexImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
8181
imagePullPolicy: {{ .Values.image.pullPolicy }}
8282
{{- include "logfire.resources" (dict "Values" .Values "serviceName" $serviceName) | nindent 10 }}
8383
args:

charts/logfire/templates/logfire-backend-migrations.yaml

Lines changed: 4 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,15 @@ spec:
3939
{{- with (index .Values "logfire-backend-migrations" | default dict).initContainers }}
4040
initContainers:
4141
{{- . | toYaml | nindent 8 }}
42-
nodeSelector:
43-
{{- toYaml .Values.nodeSelector | nindent 8 }}
44-
affinity:
45-
{{- toYaml .Values.affinity | nindent 8 }}
46-
tolerations:
47-
{{- toYaml .Values.tolerations | nindent 8 }}
4842
{{- end}}
43+
{{- include "logfire.nodeSelector" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
44+
{{- include "logfire.affinity" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
45+
{{- include "logfire.tolerations" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
4946
securityContext:
5047
{{- toYaml .Values.podSecurityContext | nindent 8 }}
5148
containers:
5249
- name: logfire-backend-migrations
53-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.backendImage }}:{{ include "logfire.defaultTag" . }}'
50+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.backendImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
5451
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
5552
securityContext:
5653
{{- toYaml .Values.securityContext | nindent 12 }}

charts/logfire/templates/logfire-backend.yaml

Lines changed: 21 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,7 @@
11
{{- $serviceName := "logfire-backend" }}
2+
{{- include "logfire.validateConfig" . -}}
3+
{{- include "logfire.validate.autoscaling" (dict "Values" .Values "serviceName" $serviceName) -}}
4+
{{- include "logfire.validate.pdb" (dict "Values" .Values "serviceName" $serviceName) -}}
25
apiVersion: v1
36
kind: Service
47
metadata:
@@ -74,11 +77,9 @@ spec:
7477
{{- include "logfire.nodeSelector" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
7578
{{- include "logfire.affinity" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
7679
{{- include "logfire.tolerations" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
77-
tolerations:
78-
{{- toYaml .Values.tolerations | nindent 8 }}
7980
containers:
8081
- name: {{ $serviceName }}
81-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.backendImage }}:{{ include "logfire.defaultTag" . }}'
82+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.backendImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
8283
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
8384
securityContext:
8485
{{- toYaml .Values.securityContext | nindent 12 }}
@@ -115,9 +116,18 @@ spec:
115116
- name: AI_MODEL
116117
value: {{ . }}
117118
{{- end }}
118-
{{- with .openAi.apiKey }}
119+
{{- with .openAi }}
120+
{{- with .apiKey }}
119121
- name: OPENAI_API_KEY
122+
{{- if kindIs "map" . }}
123+
{{- if hasKey . "valueFrom" }}
124+
valueFrom:
125+
{{- toYaml .valueFrom | nindent 16 }}
126+
{{- end }}
127+
{{- else }}
120128
value: {{ . }}
129+
{{- end }}
130+
{{- end }}
121131
{{- end }}
122132
{{- with .vertexAi.region }}
123133
- name: GOOGLE_CLOUD_LOCATION
@@ -130,7 +140,14 @@ spec:
130140
{{- end }}
131141
{{- with .apiKey}}
132142
- name: AZURE_OPENAI_API_KEY
143+
{{- if kindIs "map" . }}
144+
{{- if hasKey . "valueFrom" }}
145+
valueFrom:
146+
{{- toYaml .valueFrom | nindent 16 }}
147+
{{- end }}
148+
{{- else }}
133149
value: {{ . }}
150+
{{- end }}
134151
{{- end }}
135152
{{- with .apiVersion}}
136153
- name: OPENAI_API_VERSION

charts/logfire/templates/logfire-ff-cache-byte.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ spec:
6868
{{- include "logfire.tolerations" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
6969
containers:
7070
- name: {{ $serviceName }}
71-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.defaultTag" . }}'
71+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
7272
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
7373
securityContext:
7474
{{- toYaml .Values.securityContext | nindent 12 }}

charts/logfire/templates/logfire-ff-cache-filter.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ spec:
6868
{{- include "logfire.tolerations" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
6969
containers:
7070
- name: {{ $serviceName }}
71-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.defaultTag" . }}'
71+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
7272
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
7373
securityContext:
7474
{{- toYaml .Values.securityContext | nindent 12 }}

charts/logfire/templates/logfire-ff-cache-ipc.yaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ spec:
6868
{{- include "logfire.tolerations" (dict "Values" .Values "serviceName" $serviceName) | nindent 6}}
6969
containers:
7070
- name: {{ $serviceName }}
71-
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.defaultTag" . }}'
71+
image: '{{ .Values.image.repository | default "" }}{{ .Values.image.fusionfireImage }}:{{ include "logfire.serviceTag" (dict "Values" .Values "serviceName" $serviceName "Chart" .Chart) }}'
7272
imagePullPolicy: "{{ .Values.image.pullPolicy }}"
7373
securityContext:
7474
{{- toYaml .Values.securityContext | nindent 12 }}

0 commit comments

Comments
 (0)