From 3de6de26281b7a549e6821bf9971c010bf21c373 Mon Sep 17 00:00:00 2001 From: Yotam Korah Date: Mon, 1 Dec 2025 23:32:24 +0200 Subject: [PATCH 1/2] refactor: add option to store configuration in a secret --- charts/immich/Chart.yaml | 2 +- charts/immich/templates/immich-config.yml | 9 +++++++++ charts/immich/templates/server.yaml | 4 ++++ charts/immich/values.yaml | 2 ++ 4 files changed, 16 insertions(+), 1 deletion(-) diff --git a/charts/immich/Chart.yaml b/charts/immich/Chart.yaml index af95f5de..416b49d7 100644 --- a/charts/immich/Chart.yaml +++ b/charts/immich/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 description: A chart to power Immich (immich.app) running on kubernetes name: immich -version: 0.10.3 +version: 0.10.4 appVersion: v2.0.0 home: https://immich.app/ icon: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.svg diff --git a/charts/immich/templates/immich-config.yml b/charts/immich/templates/immich-config.yml index 1a23cf91..b9aaf841 100644 --- a/charts/immich/templates/immich-config.yml +++ b/charts/immich/templates/immich-config.yml @@ -1,6 +1,10 @@ {{- if .Values.immich.configuration }} apiVersion: v1 +{{- if .Values.immich.storeConfigInSecret }} +kind: Secret +{{- else }} kind: ConfigMap +{{- end }} metadata: name: {{ .Release.Name }}-immich-config labels: @@ -9,7 +13,12 @@ metadata: app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/version: {{ .Chart.AppVersion }} helm.sh/chart: {{ printf "%s-%s\n" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} +{{- if .Values.immich.storeConfigInSecret }} +type: Opaque +stringData: +{{- else }} data: +{{- end }} immich-config.yaml: | {{- .Values.immich.configuration | toYaml | nindent 4 }} {{- end }} diff --git a/charts/immich/templates/server.yaml b/charts/immich/templates/server.yaml index 0062216b..7bef65b0 100644 --- a/charts/immich/templates/server.yaml +++ b/charts/immich/templates/server.yaml @@ -96,7 +96,11 @@ persistence: {{- if .Values.immich.configuration }} config: enabled: true + {{- if .Values.immich.storeConfigInSecret }} + type: secret + {{- else }} type: configMap + {{- end }} name: {{ .Release.Name }}-immich-config {{- end }} data: diff --git a/charts/immich/values.yaml b/charts/immich/values.yaml index 674bae1b..00812f1b 100644 --- a/charts/immich/values.yaml +++ b/charts/immich/values.yaml @@ -35,6 +35,8 @@ immich: # storageTemplate: # enabled: true # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" + # Enabling this will store the immich configuration in a kubernetes secret instead of a configmap + storeConfigInSecret: false # Dependencies From c8c733c192a1a127b01e99d2f849493ff9d7db4e Mon Sep 17 00:00:00 2001 From: Yotam Korah Date: Tue, 2 Dec 2025 16:34:15 +0200 Subject: [PATCH 2/2] refactor: rename to configurationKind and add checks to verify value is either Secret or ConfigMap --- charts/immich/Chart.yaml | 2 +- charts/immich/templates/checks.yaml | 4 ++++ charts/immich/templates/immich-config.yml | 8 ++------ charts/immich/templates/server.yaml | 2 +- charts/immich/values.yaml | 4 ++-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/charts/immich/Chart.yaml b/charts/immich/Chart.yaml index 416b49d7..af95f5de 100644 --- a/charts/immich/Chart.yaml +++ b/charts/immich/Chart.yaml @@ -2,7 +2,7 @@ apiVersion: v2 description: A chart to power Immich (immich.app) running on kubernetes name: immich -version: 0.10.4 +version: 0.10.3 appVersion: v2.0.0 home: https://immich.app/ icon: https://raw.githubusercontent.com/immich-app/immich/main/design/immich-logo.svg diff --git a/charts/immich/templates/checks.yaml b/charts/immich/templates/checks.yaml index 53429658..931ee5d2 100644 --- a/charts/immich/templates/checks.yaml +++ b/charts/immich/templates/checks.yaml @@ -8,3 +8,7 @@ {{ if hasKey .Values "redis" }} {{ fail "The redis subchart has been removed. Please see https://github.com/immich-app/immich-charts/releases/tag/immich-0.10.0 for more detail."}} {{ end }} + +{{- if and (ne .Values.immich.configurationKind "Secret") (ne .Values.immich.configurationKind "ConfigMap") }} + {{- fail "Invalid immich.configurationKind: must be either 'ConfigMap' or 'Secret'" }} +{{- end }} \ No newline at end of file diff --git a/charts/immich/templates/immich-config.yml b/charts/immich/templates/immich-config.yml index b9aaf841..50eb981a 100644 --- a/charts/immich/templates/immich-config.yml +++ b/charts/immich/templates/immich-config.yml @@ -1,10 +1,6 @@ {{- if .Values.immich.configuration }} apiVersion: v1 -{{- if .Values.immich.storeConfigInSecret }} -kind: Secret -{{- else }} -kind: ConfigMap -{{- end }} +kind: {{ .Values.immich.configurationKind }} metadata: name: {{ .Release.Name }}-immich-config labels: @@ -13,7 +9,7 @@ metadata: app.kubernetes.io/name: {{ .Chart.Name }} app.kubernetes.io/version: {{ .Chart.AppVersion }} helm.sh/chart: {{ printf "%s-%s\n" .Chart.Name .Chart.Version | replace "+" "_" | trunc 63 | trimSuffix "-" }} -{{- if .Values.immich.storeConfigInSecret }} +{{- if (eq .Values.immich.configurationKind "Secret")}} type: Opaque stringData: {{- else }} diff --git a/charts/immich/templates/server.yaml b/charts/immich/templates/server.yaml index 7bef65b0..b50c9737 100644 --- a/charts/immich/templates/server.yaml +++ b/charts/immich/templates/server.yaml @@ -96,7 +96,7 @@ persistence: {{- if .Values.immich.configuration }} config: enabled: true - {{- if .Values.immich.storeConfigInSecret }} + {{- if eq .Values.immich.configurationKind "Secret" }} type: secret {{- else }} type: configMap diff --git a/charts/immich/values.yaml b/charts/immich/values.yaml index 00812f1b..1a2f96e8 100644 --- a/charts/immich/values.yaml +++ b/charts/immich/values.yaml @@ -35,8 +35,8 @@ immich: # storageTemplate: # enabled: true # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" - # Enabling this will store the immich configuration in a kubernetes secret instead of a configmap - storeConfigInSecret: false + # Sets the resource Kind to store configuration in. Must be either ConfigMap or Secret. + configurationKind: ConfigMap # Dependencies