From 9ef460388ff863c6fb7cbe08f2107dbcf705a0fc Mon Sep 17 00:00:00 2001 From: sonicaj Date: Mon, 20 Nov 2023 16:55:03 +0000 Subject: [PATCH] Publish new changes in catalog --- community/immich/1.0.35/Chart.lock | 6 - .../immich/1.0.35/charts/common-1.2.2.tgz | Bin 62474 -> 0 bytes community/immich/1.0.35/ci/basic-values.yaml | 22 - community/immich/1.0.35/ci/extra-values.yaml | 25 - .../immich/1.0.35/ci/no-extra-values.yaml | 26 - community/immich/1.0.35/ci/no-ml-values.yaml | 25 - .../immich/1.0.35/ci/no-typesenes-values.yaml | 25 - community/immich/1.0.35/questions.yaml | 425 --------- community/immich/1.1.0/Chart.lock | 6 + community/immich/{1.0.35 => 1.1.0}/Chart.yaml | 6 +- community/immich/{1.0.35 => 1.1.0}/README.md | 0 .../immich/{1.0.35 => 1.1.0}/app-readme.md | 0 .../immich/1.1.0/charts/common-1.2.3.tgz | Bin 0 -> 63002 bytes community/immich/1.1.0/ci/basic-values.yaml | 15 + community/immich/1.1.0/ci/extra-values.yaml | 18 + .../immich/1.1.0/ci/no-extra-values.yaml | 19 + community/immich/1.1.0/ci/no-ml-values.yaml | 18 + .../immich/1.1.0/ci/no-typesenes-values.yaml | 18 + .../immich/{1.0.35 => 1.1.0}/ix_values.yaml | 29 +- .../immich/{1.0.35 => 1.1.0}/metadata.yaml | 0 community/immich/1.1.0/migrations/migrate | 80 ++ community/immich/1.1.0/questions.yaml | 839 ++++++++++++++++++ .../{1.0.35 => 1.1.0}/templates/NOTES.txt | 0 .../templates/_configuration.tpl | 0 .../templates/_immich-machinelearning.tpl | 0 .../templates/_immich-microservices.tpl | 0 .../templates/_immich-proxy.tpl | 0 .../templates/_immich-server.tpl | 0 .../templates/_immich-typesense.tpl | 0 .../templates/_immich-web.tpl | 0 .../templates/_persistence.tpl | 52 +- .../{1.0.35 => 1.1.0}/templates/_portal.tpl | 0 .../{1.0.35 => 1.1.0}/templates/_postgres.tpl | 0 .../{1.0.35 => 1.1.0}/templates/_redis.tpl | 0 .../{1.0.35 => 1.1.0}/templates/_service.tpl | 0 .../{1.0.35 => 1.1.0}/templates/_waitURL.tpl | 0 .../{1.0.35 => 1.1.0}/templates/common.yaml | 0 37 files changed, 1064 insertions(+), 590 deletions(-) delete mode 100644 community/immich/1.0.35/Chart.lock delete mode 100644 community/immich/1.0.35/charts/common-1.2.2.tgz delete mode 100644 community/immich/1.0.35/ci/basic-values.yaml delete mode 100644 community/immich/1.0.35/ci/extra-values.yaml delete mode 100644 community/immich/1.0.35/ci/no-extra-values.yaml delete mode 100644 community/immich/1.0.35/ci/no-ml-values.yaml delete mode 100644 community/immich/1.0.35/ci/no-typesenes-values.yaml delete mode 100644 community/immich/1.0.35/questions.yaml create mode 100644 community/immich/1.1.0/Chart.lock rename community/immich/{1.0.35 => 1.1.0}/Chart.yaml (90%) rename community/immich/{1.0.35 => 1.1.0}/README.md (100%) rename community/immich/{1.0.35 => 1.1.0}/app-readme.md (100%) create mode 100644 community/immich/1.1.0/charts/common-1.2.3.tgz create mode 100644 community/immich/1.1.0/ci/basic-values.yaml create mode 100644 community/immich/1.1.0/ci/extra-values.yaml create mode 100644 community/immich/1.1.0/ci/no-extra-values.yaml create mode 100644 community/immich/1.1.0/ci/no-ml-values.yaml create mode 100644 community/immich/1.1.0/ci/no-typesenes-values.yaml rename community/immich/{1.0.35 => 1.1.0}/ix_values.yaml (80%) rename community/immich/{1.0.35 => 1.1.0}/metadata.yaml (100%) create mode 100644 community/immich/1.1.0/migrations/migrate create mode 100644 community/immich/1.1.0/questions.yaml rename community/immich/{1.0.35 => 1.1.0}/templates/NOTES.txt (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_configuration.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-machinelearning.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-microservices.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-proxy.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-server.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-typesense.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_immich-web.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_persistence.tpl (54%) rename community/immich/{1.0.35 => 1.1.0}/templates/_portal.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_postgres.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_redis.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_service.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/_waitURL.tpl (100%) rename community/immich/{1.0.35 => 1.1.0}/templates/common.yaml (100%) diff --git a/community/immich/1.0.35/Chart.lock b/community/immich/1.0.35/Chart.lock deleted file mode 100644 index ac37f85ed2..0000000000 --- a/community/immich/1.0.35/Chart.lock +++ /dev/null @@ -1,6 +0,0 @@ -dependencies: -- name: common - repository: file://../../../common - version: 1.2.2 -digest: sha256:fb077cb81f6acecd5c9e6adc22a18e156f780cd78f27198cdb47810f95364b56 -generated: "2023-11-09T09:51:08.676733946+02:00" diff --git a/community/immich/1.0.35/charts/common-1.2.2.tgz b/community/immich/1.0.35/charts/common-1.2.2.tgz deleted file mode 100644 index 24ab8f5ea9ca1e25e5279da7bb1eb317cbefc398..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 62474 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 diff --git a/community/immich/1.0.35/ci/basic-values.yaml b/community/immich/1.0.35/ci/basic-values.yaml deleted file mode 100644 index c19bb28d0d..0000000000 --- a/community/immich/1.0.35/ci/basic-values.yaml +++ /dev/null @@ -1,22 +0,0 @@ -immichStorage: - uploads: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/uploads - library: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/library - thumbs: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/thumbs - profile: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/profile - video: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/video - pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData - pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup diff --git a/community/immich/1.0.35/ci/extra-values.yaml b/community/immich/1.0.35/ci/extra-values.yaml deleted file mode 100644 index 1d79415c15..0000000000 --- a/community/immich/1.0.35/ci/extra-values.yaml +++ /dev/null @@ -1,25 +0,0 @@ -immichStorage: - uploads: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/uploads - library: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/library - thumbs: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/thumbs - profile: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/profile - video: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/video - additionalLibraries: - - hostPath: /mnt/{{ .Release.Name }}/additionalLibrary1 - - hostPath: /mnt/{{ .Release.Name }}/additionalLibrary2 - pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData - pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup diff --git a/community/immich/1.0.35/ci/no-extra-values.yaml b/community/immich/1.0.35/ci/no-extra-values.yaml deleted file mode 100644 index ec9d1d0fd1..0000000000 --- a/community/immich/1.0.35/ci/no-extra-values.yaml +++ /dev/null @@ -1,26 +0,0 @@ -immichStorage: - uploads: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/uploads - library: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/library - thumbs: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/thumbs - profile: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/profile - video: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/video - pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData - pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup - -immichConfig: - enableML: false - enableTypesense: false diff --git a/community/immich/1.0.35/ci/no-ml-values.yaml b/community/immich/1.0.35/ci/no-ml-values.yaml deleted file mode 100644 index 6708cd5e09..0000000000 --- a/community/immich/1.0.35/ci/no-ml-values.yaml +++ /dev/null @@ -1,25 +0,0 @@ -immichStorage: - uploads: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/uploads - library: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/library - thumbs: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/thumbs - profile: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/profile - video: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/video - pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData - pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup - -immichConfig: - enableML: false diff --git a/community/immich/1.0.35/ci/no-typesenes-values.yaml b/community/immich/1.0.35/ci/no-typesenes-values.yaml deleted file mode 100644 index 16749e2525..0000000000 --- a/community/immich/1.0.35/ci/no-typesenes-values.yaml +++ /dev/null @@ -1,25 +0,0 @@ -immichStorage: - uploads: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/uploads - library: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/library - thumbs: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/thumbs - profile: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/profile - video: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/video - pgData: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgData - pgBackup: - type: hostPath - hostPath: /mnt/{{ .Release.Name }}/pgBackup - -immichConfig: - enableTypesense: false diff --git a/community/immich/1.0.35/questions.yaml b/community/immich/1.0.35/questions.yaml deleted file mode 100644 index d5f73ba426..0000000000 --- a/community/immich/1.0.35/questions.yaml +++ /dev/null @@ -1,425 +0,0 @@ -groups: - - name: Immich Configuration - description: Configure Immich - - name: Network Configuration - description: Configure Network for Immich - - name: Storage Configuration - description: Configure Storage for Immich - - name: Resources Configuration - description: Configure Resources for Immich - -portals: - web_portal: - protocols: - - "$kubernetes-resource_configmap_portal_protocol" - host: - - "$kubernetes-resource_configmap_portal_host" - ports: - - "$kubernetes-resource_configmap_portal_port" - path: "$kubernetes-resource_configmap_portal_path" - -questions: - - variable: TZ - group: Immich Configuration - label: Timezone - schema: - type: string - default: Etc/UTC - required: true - $ref: - - definitions/timezone - - - variable: immichConfig - label: "" - group: Immich Configuration - schema: - type: dict - attrs: - - variable: publicLoginMessage - label: Public Login Message - description: | - The message that will be displayed on the login page. - schema: - type: string - default: "" - - variable: enableML - label: Enable Machine Learning - description: | - Enable Machine Learning - schema: - type: boolean - default: true - - variable: enableTypesense - label: Enable Typesense - description: | - Enable Typesense - schema: - type: boolean - default: true - - - variable: immichNetwork - label: "" - group: Network Configuration - schema: - type: dict - attrs: - - variable: webuiPort - label: Web Port - description: The port for the Immich WebUI. - schema: - type: int - default: 30041 - min: 9000 - max: 65535 - required: true - - - variable: immichStorage - label: "" - group: Storage Configuration - schema: - type: dict - attrs: - - variable: uploads - label: Immich Uploads Storage - description: The path to store Immich uploads. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: uploads - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: library - label: Immich Library Storage - description: The path to store Immich library. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: library - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: thumbs - label: Immich Thumbs Storage - description: The path to store Immich Thumbs. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: thumbs - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: profile - label: Immich Profile Storage - description: The path to store Immich Profile. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: profile - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: video - label: Immich Video Storage - description: The path to store Immich Video. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: video - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: additionalLibraries - label: Additional Libraries - description: | - Additional libraries for Immich.
- Internal mountPath will be the same as your hostPath
- https://immich.app/docs/features/read-only-gallery - schema: - type: list - default: [] - items: - - variable: storageEntry - label: Storage Entry - schema: - type: dict - attrs: - - variable: hostPath - label: Host Path - description: The host path to use for storage. - schema: - type: hostpath - required: true - - variable: pgData - label: Immich Postgres Data Storage - description: The path to store Immich Postgres Data. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: pgData - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - variable: pgBackup - label: Immich Postgres Backup Storage - description: The path to store Immich Postgres Backup. - schema: - type: dict - attrs: - - variable: type - label: Type - description: | - ixVolume: Is dataset created automatically by the system.
- Host Path: Is a path that already exists on the system. - schema: - type: string - required: true - immutable: true - default: ixVolume - enum: - - value: hostPath - description: Host Path (Path that already exists on the system) - - value: ixVolume - description: ixVolume (Dataset created automatically by the system) - - variable: datasetName - label: Dataset Name - schema: - type: string - show_if: [["type", "=", "ixVolume"]] - required: true - hidden: true - immutable: true - default: pgBackup - $ref: - - "normalize/ixVolume" - - variable: hostPath - label: Host Path - schema: - type: hostpath - show_if: [["type", "=", "hostPath"]] - immutable: true - required: true - - - variable: resources - label: "" - group: Resources Configuration - schema: - type: dict - attrs: - - variable: limits - label: Limits - schema: - type: dict - attrs: - - variable: cpu - label: CPU - description: CPU limit for Immich. - schema: - type: string - max_length: 6 - valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' - valid_chars_error: | - Valid CPU limit formats are
- - Plain Integer - eg. 1
- - Float - eg. 0.5
- - Milicpu - eg. 500m - default: "4000m" - required: true - - variable: memory - label: Memory - description: Memory limit for Immich. - schema: - type: string - max_length: 12 - valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' - valid_chars_error: | - Valid Memory limit formats are
- - Suffixed with E/P/T/G/M/K - eg. 1G
- - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
- - Plain Integer in bytes - eg. 1024
- - Exponent - eg. 134e6 - default: "8Gi" - required: true - - - variable: immichGPU - group: Resources Configuration - label: GPU Configuration - schema: - type: dict - $ref: - - "definitions/gpuConfiguration" - attrs: [] diff --git a/community/immich/1.1.0/Chart.lock b/community/immich/1.1.0/Chart.lock new file mode 100644 index 0000000000..6cdd0931b6 --- /dev/null +++ b/community/immich/1.1.0/Chart.lock @@ -0,0 +1,6 @@ +dependencies: +- name: common + repository: file://../../../common + version: 1.2.3 +digest: sha256:e6ff49b06bf5d4d159e505ae6d153f36cd46170bb519caf90462cd5caebfd0fb +generated: "2023-11-15T13:21:05.261510633+02:00" diff --git a/community/immich/1.0.35/Chart.yaml b/community/immich/1.1.0/Chart.yaml similarity index 90% rename from community/immich/1.0.35/Chart.yaml rename to community/immich/1.1.0/Chart.yaml index 9193beae3e..1ebb343ab0 100644 --- a/community/immich/1.0.35/Chart.yaml +++ b/community/immich/1.1.0/Chart.yaml @@ -3,9 +3,9 @@ description: Immich annotations: title: Immich type: application -version: 1.0.35 +version: 1.1.0 apiVersion: v2 -appVersion: 1.85.0 +appVersion: 1.87.0 kubeVersion: '>=1.16.0-0' maintainers: - name: truenas @@ -14,7 +14,7 @@ maintainers: dependencies: - name: common repository: file://../../../common - version: 1.2.2 + version: 1.2.3 home: https://immich.app icon: https://media.sys.truenas.net/apps/immich/icons/icon.svg sources: diff --git a/community/immich/1.0.35/README.md b/community/immich/1.1.0/README.md similarity index 100% rename from community/immich/1.0.35/README.md rename to community/immich/1.1.0/README.md diff --git a/community/immich/1.0.35/app-readme.md b/community/immich/1.1.0/app-readme.md similarity index 100% rename from community/immich/1.0.35/app-readme.md rename to community/immich/1.1.0/app-readme.md diff --git a/community/immich/1.1.0/charts/common-1.2.3.tgz b/community/immich/1.1.0/charts/common-1.2.3.tgz new file mode 100644 index 0000000000000000000000000000000000000000..eb5c29b376c749c69318ea81cf8f11ef75d5633b GIT binary patch literal 63002 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 DT7}f| literal 0 HcmV?d00001 diff --git a/community/immich/1.1.0/ci/basic-values.yaml b/community/immich/1.1.0/ci/basic-values.yaml new file mode 100644 index 0000000000..df391085fb --- /dev/null +++ b/community/immich/1.1.0/ci/basic-values.yaml @@ -0,0 +1,15 @@ +immichStorage: + uploads: + type: pvc + library: + type: pvc + thumbs: + type: pvc + profile: + type: pvc + video: + type: pvc + pgData: + type: pvc + pgBackup: + type: emptyDir diff --git a/community/immich/1.1.0/ci/extra-values.yaml b/community/immich/1.1.0/ci/extra-values.yaml new file mode 100644 index 0000000000..3389aa4a51 --- /dev/null +++ b/community/immich/1.1.0/ci/extra-values.yaml @@ -0,0 +1,18 @@ +immichStorage: + uploads: + type: pvc + library: + type: pvc + thumbs: + type: pvc + profile: + type: pvc + video: + type: pvc + pgData: + type: pvc + pgBackup: + type: emptyDir + additionalLibraries: + - hostPath: /mnt/{{ .Release.Name }}/additionalLibrary1 + - hostPath: /mnt/{{ .Release.Name }}/additionalLibrary2 diff --git a/community/immich/1.1.0/ci/no-extra-values.yaml b/community/immich/1.1.0/ci/no-extra-values.yaml new file mode 100644 index 0000000000..57ca896eed --- /dev/null +++ b/community/immich/1.1.0/ci/no-extra-values.yaml @@ -0,0 +1,19 @@ +immichStorage: + uploads: + type: pvc + library: + type: pvc + thumbs: + type: pvc + profile: + type: pvc + video: + type: pvc + pgData: + type: pvc + pgBackup: + type: emptyDir + +immichConfig: + enableML: false + enableTypesense: false diff --git a/community/immich/1.1.0/ci/no-ml-values.yaml b/community/immich/1.1.0/ci/no-ml-values.yaml new file mode 100644 index 0000000000..15632eb52e --- /dev/null +++ b/community/immich/1.1.0/ci/no-ml-values.yaml @@ -0,0 +1,18 @@ +immichStorage: + uploads: + type: pvc + library: + type: pvc + thumbs: + type: pvc + profile: + type: pvc + video: + type: pvc + pgData: + type: pvc + pgBackup: + type: emptyDir + +immichConfig: + enableML: false diff --git a/community/immich/1.1.0/ci/no-typesenes-values.yaml b/community/immich/1.1.0/ci/no-typesenes-values.yaml new file mode 100644 index 0000000000..fa4e8110a9 --- /dev/null +++ b/community/immich/1.1.0/ci/no-typesenes-values.yaml @@ -0,0 +1,18 @@ +immichStorage: + uploads: + type: pvc + library: + type: pvc + thumbs: + type: pvc + profile: + type: pvc + video: + type: pvc + pgData: + type: pvc + pgBackup: + type: emptyDir + +immichConfig: + enableTypesense: false diff --git a/community/immich/1.0.35/ix_values.yaml b/community/immich/1.1.0/ix_values.yaml similarity index 80% rename from community/immich/1.0.35/ix_values.yaml rename to community/immich/1.1.0/ix_values.yaml index aed7debf62..87ce0077a9 100644 --- a/community/immich/1.0.35/ix_values.yaml +++ b/community/immich/1.1.0/ix_values.yaml @@ -1,22 +1,22 @@ image: repository: altran1502/immich-server pullPolicy: IfNotPresent - tag: v1.85.0 + tag: v1.87.0 webImage: repository: altran1502/immich-web pullPolicy: IfNotPresent - tag: v1.85.0 + tag: v1.87.0 proxyImage: repository: altran1502/immich-proxy pullPolicy: IfNotPresent - tag: v1.85.0 + tag: v1.87.0 mlImage: repository: altran1502/immich-machine-learning pullPolicy: IfNotPresent - tag: v1.85.0 + tag: v1.87.0 typesenseImage: repository: typesense/typesense @@ -49,26 +49,33 @@ immichNetwork: immichStorage: uploads: type: ixVolume - datasetName: uploads + ixVolumeConfig: + datasetName: uploads library: type: ixVolume - datasetName: library + ixVolumeConfig: + datasetName: library thumbs: type: ixVolume - datasetName: thumbs + ixVolumeConfig: + datasetName: thumbs profile: type: ixVolume - datasetName: profile + ixVolumeConfig: + datasetName: profile video: type: ixVolume - datasetName: video + ixVolumeConfig: + datasetName: video additionalLibraries: [] pgData: type: ixVolume - datasetName: pgData + ixVolumeConfig: + datasetName: pgData pgBackup: type: ixVolume - datasetName: pgBackup + ixVolumeConfig: + datasetName: pgBackup notes: custom: | diff --git a/community/immich/1.0.35/metadata.yaml b/community/immich/1.1.0/metadata.yaml similarity index 100% rename from community/immich/1.0.35/metadata.yaml rename to community/immich/1.1.0/metadata.yaml diff --git a/community/immich/1.1.0/migrations/migrate b/community/immich/1.1.0/migrations/migrate new file mode 100644 index 0000000000..ff855ee37a --- /dev/null +++ b/community/immich/1.1.0/migrations/migrate @@ -0,0 +1,80 @@ +#!/usr/bin/python3 +import json +import os +import sys + + +# Used to migrate storage format to include ACLs +def storage_migrate(storage): + delete_keys = [] + if storage['type'] == 'hostPath': + # Check if the key exists, if not we have already migrated + if not storage.get('hostPath'): + return storage + + storage['hostPathConfig'] = {'hostPath': storage['hostPath']} + delete_keys.append('hostPath') + + elif storage['type'] == 'ixVolume': + # Check if the key exists, if not we have already migrated + if not storage.get('datasetName'): + return storage + + storage['ixVolumeConfig'] = {'datasetName': storage['datasetName']} + delete_keys.append('datasetName') + + + for key in delete_keys: + storage.pop(key, None) + + return storage + +# Used to migrate libraries to additionalStorages +def libraries_migrate(libraries): + # Additional **Libraries** only had a field for hostPath, because Immich + # had a requirement for both hostPath and mountPath to be the same, + # now its no longer the case, so we can merge it with additionalStorages + for idx, library in enumerate(libraries): + if not library.get('hostPath'): + raise Exception(f'Library {idx} is malformed') + + libraries[idx] = { + 'type': 'hostPath', + 'mountPath': library['hostPath'], + 'hostPathConfig': { + 'hostPath': library['hostPath'], + } + } + + + return libraries + + +def migrate(values): + storage_key = 'immichStorage' + storages = ['uploads', 'library', 'thumbs', 'profile', 'video', 'pgData', 'pgBackup'] + + for storage in storages: + check_val = values.get(storage_key, {}).get(storage, {}) + if not isinstance(check_val, dict) or not check_val: + raise Exception(f'Storage section {storage} is malformed') + + values[storage_key][storage] = storage_migrate(check_val) + + # Migrate additionalLibraries, + # if additionalLibraries does not exist, we have already migrated + if libraries := values.get(storage_key, {}).get('additionalLibraries', None): + # If additionalLibraries exists, additionalStorages does not exist yet + values[storage_key]['additionalStorages'] = libraries_migrate(libraries) + values[storage_key].pop('additionalLibraries', None) + + return values + + +if __name__ == '__main__': + if len(sys.argv) != 2: + exit(1) + + if os.path.exists(sys.argv[1]): + with open(sys.argv[1], 'r') as f: + print(json.dumps(migrate(json.loads(f.read())))) diff --git a/community/immich/1.1.0/questions.yaml b/community/immich/1.1.0/questions.yaml new file mode 100644 index 0000000000..38c0f2b50a --- /dev/null +++ b/community/immich/1.1.0/questions.yaml @@ -0,0 +1,839 @@ +groups: + - name: Immich Configuration + description: Configure Immich + - name: Network Configuration + description: Configure Network for Immich + - name: Storage Configuration + description: Configure Storage for Immich + - name: Resources Configuration + description: Configure Resources for Immich + +portals: + web_portal: + protocols: + - "$kubernetes-resource_configmap_portal_protocol" + host: + - "$kubernetes-resource_configmap_portal_host" + ports: + - "$kubernetes-resource_configmap_portal_port" + path: "$kubernetes-resource_configmap_portal_path" + +questions: + - variable: TZ + group: Immich Configuration + label: Timezone + schema: + type: string + default: Etc/UTC + required: true + $ref: + - definitions/timezone + + - variable: immichConfig + label: "" + group: Immich Configuration + schema: + type: dict + attrs: + - variable: publicLoginMessage + label: Public Login Message + description: | + The message that will be displayed on the login page. + schema: + type: string + default: "" + - variable: enableML + label: Enable Machine Learning + description: | + Enable Machine Learning + schema: + type: boolean + default: true + - variable: enableTypesense + label: Enable Typesense + description: | + Enable Typesense + schema: + type: boolean + default: true + + - variable: immichNetwork + label: "" + group: Network Configuration + schema: + type: dict + attrs: + - variable: webuiPort + label: Web Port + description: The port for the Immich WebUI. + schema: + type: int + default: 30041 + min: 9000 + max: 65535 + required: true + + - variable: immichStorage + label: "" + group: Storage Configuration + schema: + type: dict + attrs: + - variable: uploads + label: Immich Uploads Storage + description: The path to store Immich uploads. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "uploads" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: library + label: Immich Library Storage + description: The path to store Immich Library. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "library" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: thumbs + label: Immich Thumbs Storage + description: The path to store Immich Thumbs. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "thumbs" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: profile + label: Immich Profile Storage + description: The path to store Immich Profile. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "profile" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: video + label: Immich Video Storage + description: The path to store Immich Video. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "video" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: pgData + label: Immich Postgres Data Storage + description: The path to store Immich Postgres Data. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + # Nothing to show for the user + hidden: true + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "pgData" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: pgBackup + label: Immich Postgres Backup Storage + description: The path to store Immich Postgres Backup. + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system. + schema: + type: string + required: true + immutable: true + default: ixVolume + enum: + - value: hostPath + description: Host Path (Path that already exists on the system) + - value: ixVolume + description: ixVolume (Dataset created automatically by the system) + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + # Nothing to show for the user + hidden: true + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + hidden: true + default: "pgBackup" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + # Postgres does a CHMOD at startup + # Which fails with ACL + hidden: true + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + + - variable: additionalStorages + label: Additional Storage + description: Additional storage for Immich. + schema: + type: list + default: [] + items: + - variable: storageEntry + label: Storage Entry + schema: + type: dict + attrs: + - variable: type + label: Type + description: | + ixVolume: Is dataset created automatically by the system.
+ Host Path: Is a path that already exists on the system.
+ SMB Share: Is a SMB share that is mounted to a persistent volume claim. + schema: + type: string + required: true + default: "ixVolume" + immutable: true + enum: + - value: "hostPath" + description: Host Path (Path that already exists on the system) + - value: "ixVolume" + description: ixVolume (Dataset created automatically by the system) + - value: "smb-pv-pvc" + description: SMB Share (Mounts a persistent volume claim to a SMB share) + - variable: readOnly + label: Read Only + description: Mount the volume as read only. + schema: + type: boolean + default: false + - variable: mountPath + label: Mount Path + description: The path inside the container to mount the storage. + schema: + type: path + required: true + - variable: hostPathConfig + label: hostPathConfig + schema: + type: dict + show_if: [["type", "=", "hostPath"]] + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: acl + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + $ref: + - "normalize/acl" + - variable: hostPath + label: Host Path + description: The host path to use for storage. + schema: + type: hostpath + show_if: [["aclEnable", "=", false]] + required: true + - variable: ixVolumeConfig + label: ixVolume Configuration + description: The configuration for the ixVolume dataset. + schema: + type: dict + show_if: [["type", "=", "ixVolume"]] + $ref: + - "normalize/ixVolume" + attrs: + - variable: aclEnable + label: Enable ACL + description: Enable ACL for the dataset. + schema: + type: boolean + default: false + - variable: datasetName + label: Dataset Name + description: The name of the dataset to use for storage. + schema: + type: string + required: true + immutable: true + default: "storage_entry" + - variable: aclEntries + label: ACL Configuration + schema: + type: dict + show_if: [["aclEnable", "=", true]] + attrs: [] + - variable: smbConfig + label: SMB Share Configuration + description: The configuration for the SMB Share. + schema: + type: dict + show_if: [["type", "=", "smb-pv-pvc"]] + attrs: + - variable: server + label: Server + description: The server for the SMB share. + schema: + type: string + required: true + - variable: share + label: Share + description: The share name for the SMB share. + schema: + type: string + required: true + - variable: domain + label: Domain (Optional) + description: The domain for the SMB share. + schema: + type: string + - variable: username + label: Username + description: The username for the SMB share. + schema: + type: string + required: true + - variable: password + label: Password + description: The password for the SMB share. + schema: + type: string + required: true + private: true + - variable: size + label: Size (in Gi) + description: The size of the volume quota. + schema: + type: int + required: true + min: 1 + default: 1 + + - variable: resources + label: "" + group: Resources Configuration + schema: + type: dict + attrs: + - variable: limits + label: Limits + schema: + type: dict + attrs: + - variable: cpu + label: CPU + description: CPU limit for Immich. + schema: + type: string + max_length: 6 + valid_chars: '^(0\.[1-9]|[1-9][0-9]*)(\.[0-9]|m?)$' + valid_chars_error: | + Valid CPU limit formats are
+ - Plain Integer - eg. 1
+ - Float - eg. 0.5
+ - Milicpu - eg. 500m + default: "4000m" + required: true + - variable: memory + label: Memory + description: Memory limit for Immich. + schema: + type: string + max_length: 12 + valid_chars: '^[1-9][0-9]*([EPTGMK]i?|e[0-9]+)?$' + valid_chars_error: | + Valid Memory limit formats are
+ - Suffixed with E/P/T/G/M/K - eg. 1G
+ - Suffixed with Ei/Pi/Ti/Gi/Mi/Ki - eg. 1Gi
+ - Plain Integer in bytes - eg. 1024
+ - Exponent - eg. 134e6 + default: "8Gi" + required: true + + - variable: immichGPU + group: Resources Configuration + label: GPU Configuration + schema: + type: dict + $ref: + - "definitions/gpuConfiguration" + attrs: [] diff --git a/community/immich/1.0.35/templates/NOTES.txt b/community/immich/1.1.0/templates/NOTES.txt similarity index 100% rename from community/immich/1.0.35/templates/NOTES.txt rename to community/immich/1.1.0/templates/NOTES.txt diff --git a/community/immich/1.0.35/templates/_configuration.tpl b/community/immich/1.1.0/templates/_configuration.tpl similarity index 100% rename from community/immich/1.0.35/templates/_configuration.tpl rename to community/immich/1.1.0/templates/_configuration.tpl diff --git a/community/immich/1.0.35/templates/_immich-machinelearning.tpl b/community/immich/1.1.0/templates/_immich-machinelearning.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-machinelearning.tpl rename to community/immich/1.1.0/templates/_immich-machinelearning.tpl diff --git a/community/immich/1.0.35/templates/_immich-microservices.tpl b/community/immich/1.1.0/templates/_immich-microservices.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-microservices.tpl rename to community/immich/1.1.0/templates/_immich-microservices.tpl diff --git a/community/immich/1.0.35/templates/_immich-proxy.tpl b/community/immich/1.1.0/templates/_immich-proxy.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-proxy.tpl rename to community/immich/1.1.0/templates/_immich-proxy.tpl diff --git a/community/immich/1.0.35/templates/_immich-server.tpl b/community/immich/1.1.0/templates/_immich-server.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-server.tpl rename to community/immich/1.1.0/templates/_immich-server.tpl diff --git a/community/immich/1.0.35/templates/_immich-typesense.tpl b/community/immich/1.1.0/templates/_immich-typesense.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-typesense.tpl rename to community/immich/1.1.0/templates/_immich-typesense.tpl diff --git a/community/immich/1.0.35/templates/_immich-web.tpl b/community/immich/1.1.0/templates/_immich-web.tpl similarity index 100% rename from community/immich/1.0.35/templates/_immich-web.tpl rename to community/immich/1.1.0/templates/_immich-web.tpl diff --git a/community/immich/1.0.35/templates/_persistence.tpl b/community/immich/1.1.0/templates/_persistence.tpl similarity index 54% rename from community/immich/1.0.35/templates/_persistence.tpl rename to community/immich/1.1.0/templates/_persistence.tpl index ccfb704889..6ba08c8474 100644 --- a/community/immich/1.0.35/templates/_persistence.tpl +++ b/community/immich/1.1.0/templates/_persistence.tpl @@ -1,11 +1,17 @@ {{- define "immich.persistence" -}} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.pgData) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.pgBackup) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.library) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.uploads) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.thumbs) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.profile) }} + {{- include "immich.storage.ci.migration" (dict "storage" .Values.immichStorage.video) }} + persistence: {{/* Data */}} library: enabled: true - type: {{ .Values.immichStorage.library.type }} - datasetName: {{ .Values.immichStorage.library.datasetName | default "" }} - hostPath: {{ .Values.immichStorage.library.hostPath | default "" }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.immichStorage.library) | nindent 4 }} targetSelector: server: server: @@ -15,9 +21,7 @@ persistence: mountPath: /usr/src/app/upload/library uploads: enabled: true - type: {{ .Values.immichStorage.uploads.type }} - datasetName: {{ .Values.immichStorage.uploads.datasetName | default "" }} - hostPath: {{ .Values.immichStorage.uploads.hostPath | default "" }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.immichStorage.uploads) | nindent 4 }} targetSelector: server: server: @@ -27,9 +31,7 @@ persistence: mountPath: /usr/src/app/upload/upload thumbs: enabled: true - type: {{ .Values.immichStorage.thumbs.type }} - datasetName: {{ .Values.immichStorage.thumbs.datasetName | default "" }} - hostPath: {{ .Values.immichStorage.thumbs.hostPath | default "" }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.immichStorage.thumbs) | nindent 4 }} targetSelector: server: server: @@ -39,9 +41,7 @@ persistence: mountPath: /usr/src/app/upload/thumbs profile: enabled: true - type: {{ .Values.immichStorage.profile.type }} - datasetName: {{ .Values.immichStorage.profile.datasetName | default "" }} - hostPath: {{ .Values.immichStorage.profile.hostPath | default "" }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.immichStorage.profile) | nindent 4 }} targetSelector: server: server: @@ -51,9 +51,7 @@ persistence: mountPath: /usr/src/app/upload/profile video: enabled: true - type: {{ .Values.immichStorage.video.type }} - datasetName: {{ .Values.immichStorage.video.datasetName | default "" }} - hostPath: {{ .Values.immichStorage.video.hostPath | default "" }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" .Values.immichStorage.video) | nindent 4 }} targetSelector: server: server: @@ -61,19 +59,18 @@ persistence: microservices: microservices: mountPath: /usr/src/app/upload/encoded-video - {{- range $idx, $storage := .Values.immichStorage.additionalLibraries }} - {{ printf "immich-%v" (int $idx) }}: + {{- range $idx, $storage := .Values.immichStorage.additionalStorages }} + {{ printf "immich-%v:" (int $idx) }} enabled: true - type: hostPath - hostPath: {{ $storage.hostPath | default "" }} - # Host path and mount path MUST be the same + {{- include "immich.storage.ci.migration" (dict "storage" $storage) }} + {{- include "ix.v1.common.app.storageOptions" (dict "storage" $storage) | nindent 4 }} targetSelector: server: server: - mountPath: {{ $storage.hostPath }} + mountPath: {{ $storage.mountPath }} microservices: microservices: - mountPath: {{ $storage.hostPath }} + mountPath: {{ $storage.mountPath }} {{- end }} {{/* Caches */}} microcache: @@ -116,9 +113,20 @@ persistence: redis: mountPath: /tmp + {{/* Database */}} {{- include "ix.v1.common.app.postgresPersistence" (dict "pgData" .Values.immichStorage.pgData "pgBackup" .Values.immichStorage.pgBackup ) | nindent 2 }} {{- end -}} + +{{/* Can be removed on the next bump (1.1.0+), only used for CI values */}} +{{- define "immich.storage.ci.migration" -}} + {{- $storage := .storage -}} + + {{- if $storage.hostPath -}} + {{- $_ := set $storage "hostPathConfig" dict -}} + {{- $_ := set $storage.hostPathConfig "hostPath" $storage.hostPath -}} + {{- end -}} +{{- end -}} diff --git a/community/immich/1.0.35/templates/_portal.tpl b/community/immich/1.1.0/templates/_portal.tpl similarity index 100% rename from community/immich/1.0.35/templates/_portal.tpl rename to community/immich/1.1.0/templates/_portal.tpl diff --git a/community/immich/1.0.35/templates/_postgres.tpl b/community/immich/1.1.0/templates/_postgres.tpl similarity index 100% rename from community/immich/1.0.35/templates/_postgres.tpl rename to community/immich/1.1.0/templates/_postgres.tpl diff --git a/community/immich/1.0.35/templates/_redis.tpl b/community/immich/1.1.0/templates/_redis.tpl similarity index 100% rename from community/immich/1.0.35/templates/_redis.tpl rename to community/immich/1.1.0/templates/_redis.tpl diff --git a/community/immich/1.0.35/templates/_service.tpl b/community/immich/1.1.0/templates/_service.tpl similarity index 100% rename from community/immich/1.0.35/templates/_service.tpl rename to community/immich/1.1.0/templates/_service.tpl diff --git a/community/immich/1.0.35/templates/_waitURL.tpl b/community/immich/1.1.0/templates/_waitURL.tpl similarity index 100% rename from community/immich/1.0.35/templates/_waitURL.tpl rename to community/immich/1.1.0/templates/_waitURL.tpl diff --git a/community/immich/1.0.35/templates/common.yaml b/community/immich/1.1.0/templates/common.yaml similarity index 100% rename from community/immich/1.0.35/templates/common.yaml rename to community/immich/1.1.0/templates/common.yaml