Files
truecharts/charts/stable/immich/values.yaml
T

324 lines
9.8 KiB
YAML

# yaml-language-server: $schema=./values.schema.json
image:
repository: ghcr.io/immich-app/immich-server
tag: v2.7.5@sha256:c15bff75068effb03f4355997d03dc7e0fc58720c2b54ad6f7f10d1bc57efaa5
pullPolicy: IfNotPresent
mlImage:
repository: ghcr.io/immich-app/immich-machine-learning
tag: v2.7.5@sha256:a2501141440f10516d329fdfba2c68082e19eb9ba6016c061ac80d23beadf7f3
pullPolicy: IfNotPresent
mlCudaImage:
repository: ghcr.io/immich-app/immich-machine-learning
tag: v2.7.5-cuda@sha256:304142175e345f0155d7642f637cfdceae60e89075ff03938cb2886d52c65a62
pullPolicy: IfNotPresent
mlOpenvinoImage:
repository: ghcr.io/immich-app/immich-machine-learning
tag: v2.7.5-openvino@sha256:71cd5a681823c4b818f4b24b3f05816eccc3d085559e7615f695bde77e64f1f2
pullPolicy: IfNotPresent
mlRocmImage:
repository: ghcr.io/immich-app/immich-machine-learning
tag: v2.7.5-rocm@sha256:baa195b5cab655eba28ba771816ff443853c0dd41892d6767257157211114993
pullPolicy: IfNotPresent
securityContext:
container:
readOnlyRootFilesystem: false
runAsNonRoot: false
runAsUser: 0
runAsGroup: 0
immich:
enable_ml: true
mlImageType: mlImage
workload:
main:
podSpec:
containers:
main:
imageSelector: image
resources:
excludeExtra: true
securityContext:
capabilities:
disableS6Caps: true
env:
IMMICH_MACHINE_LEARNING_ENABLED: "{{ .Values.immich.enable_ml }}"
IMMICH_MACHINE_LEARNING_URL: >-
{{- if .Values.immich.enable_ml -}}
{{- printf "http://%s-machinelearning:%v" (include "tc.v1.common.lib.chart.names.fullname" .) .Values.service.machinelearning.ports.machinelearning.port -}}
{{- else -}}
false
{{- end -}}
IMMICH_PORT: "{{ .Values.service.main.ports.main.port }}"
IMMICH_WORKERS_INCLUDE: api
NODE_ENV: production
DB_USERNAME: "{{ .Values.cnpg.main.user }}"
DB_DATABASE_NAME: "{{ .Values.cnpg.main.database }}"
DB_HOSTNAME: "{{ .Values.cnpg.main.creds.host }}"
DB_PASSWORD: "{{ .Values.cnpg.main.creds.password }}"
DB_PORT: "5432"
REDIS_HOSTNAME: '{{ .Values.redis.creds.plainhost | trimAll "\"" }}'
REDIS_PASSWORD: '{{ .Values.redis.creds.redisPassword | trimAll "\"" }}'
REDIS_PORT: "6379"
REDIS_DBINDEX: "0"
probes:
readiness:
enabled: true
type: http
path: /api/server/ping
port: "{{ .Values.service.main.ports.main.port }}"
liveness:
enabled: true
type: http
path: /api/server/ping
port: "{{ .Values.service.main.ports.main.port }}"
startup:
enabled: true
type: http
path: /api/server/ping
port: "{{ .Values.service.main.ports.main.port }}"
machinelearning:
enabled: "{{ .Values.immich.enable_ml }}"
type: Deployment
podSpec:
initContainers:
wait-server:
enabled: true
type: init
imageSelector: ubuntuImage
resources:
excludeExtra: true
command:
- /bin/bash
- -c
- |
{{- tpl .Values.waitServerScript $ -}}
containers:
machinelearning:
enabled: true
primary: true
imageSelector: "{{ .Values.immich.mlImageType }}"
resources:
excludeExtra: true
securityContext:
capabilities:
disableS6Caps: true
env:
NODE_ENV: production
IMMICH_PORT: "{{ .Values.service.machinelearning.ports.machinelearning.port }}"
MACHINE_LEARNING_CACHE_FOLDER: "{{ .Values.persistence.mlcache.targetSelector.machinelearning.machinelearning.mountPath }}"
TRANSFORMERS_CACHE: "{{ .Values.persistence.mlcache.targetSelector.machinelearning.machinelearning.mountPath }}"
probes:
readiness:
enabled: true
type: http
path: /ping
port: "{{ .Values.service.machinelearning.ports.machinelearning.port }}"
liveness:
enabled: true
type: http
path: /ping
port: "{{ .Values.service.machinelearning.ports.machinelearning.port }}"
startup:
enabled: true
type: http
path: /ping
port: "{{ .Values.service.machinelearning.ports.machinelearning.port }}"
microservices:
enabled: true
type: Deployment
podSpec:
initContainers:
wait-server:
enabled: true
type: init
imageSelector: ubuntuImage
resources:
excludeExtra: true
command:
- /bin/bash
- -c
- |-
{{ tpl .Values.waitServerScript $ | trim }}
containers:
microservices:
enabled: true
primary: true
imageSelector: image
securityContext:
capabilities:
disableS6Caps: true
env:
IMMICH_MACHINE_LEARNING_ENABLED: "{{ .Values.immich.enable_ml }}"
IMMICH_MACHINE_LEARNING_URL: >-
{{- if .Values.immich.enable_ml -}}
{{- printf "http://%s-machinelearning:%v" (include "tc.v1.common.lib.chart.names.fullname" .) .Values.service.machinelearning.ports.machinelearning.port -}}
{{- else -}}
false
{{- end -}}
NODE_ENV: production
IMMICH_PORT: "{{ .Values.service.microservices.ports.microservices.port }}"
REVERSE_GEOCODING_DUMP_DIRECTORY: "{{ .Values.persistence.microcache.targetSelector.microservices.microservices.mountPath }}"
IMMICH_WORKERS_EXCLUDE: api
DB_USERNAME: "{{ .Values.cnpg.main.user }}"
DB_DATABASE_NAME: "{{ .Values.cnpg.main.database }}"
DB_HOSTNAME: "{{ .Values.cnpg.main.creds.host }}"
DB_PASSWORD: "{{ .Values.cnpg.main.creds.password }}"
DB_PORT: "5432"
REDIS_HOSTNAME: '{{ .Values.redis.creds.plainhost | trimAll "\"" }}'
REDIS_PASSWORD: '{{ .Values.redis.creds.redisPassword | trimAll "\"" }}'
REDIS_PORT: "6379"
REDIS_DBINDEX: "0"
probes:
readiness:
enabled: true
type: exec
command: immich-healthcheck
liveness:
enabled: true
type: exec
command: immich-healthcheck
startup:
enabled: true
type: exec
command: immich-healthcheck
service:
main:
# Main service targets the server
targetSelector: main
ports:
main:
port: 10323
protocol: http
targetSelector: main
microservices:
enabled: true
type: ClusterIP
targetSelector: microservices
ports:
microservices:
enabled: true
primary: true
port: 10004
protocol: http
targetSelector: microservices
machinelearning:
enabled: "{{ .Values.immich.enable_ml }}"
type: ClusterIP
targetSelector: machinelearning
ports:
machinelearning:
enabled: true
primary: true
port: 10003
protocol: http
targetSelector: machinelearning
persistence:
mlcache:
enabled: "{{ .Values.immich.enable_ml }}"
type: emptyDir
targetSelector:
machinelearning:
machinelearning:
mountPath: /mlcache
microcache:
enabled: true
type: emptyDir
targetSelector:
microservices:
microservices:
mountPath: /microcache
library:
enabled: true
mountPath: /usr/src/app/upload/library
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
uploads:
enabled: true
mountPath: /usr/src/app/upload/upload
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
backups:
enabled: true
mountPath: /usr/src/app/upload/backups
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
thumbs:
enabled: true
mountPath: /usr/src/app/upload/thumbs
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
profile:
enabled: true
mountPath: /usr/src/app/upload/profile
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
video:
enabled: true
mountPath: /usr/src/app/upload/encoded-video
targetSelector:
# Main pod/container is server
main:
main: {}
microservices:
microservices: {}
cnpg:
main:
enabled: true
user: immich
database: immich
type: vectorchord
cluster:
initdb:
postInitApplicationSQL:
- ALTER USER immich WITH SUPERUSER;
- CREATE EXTENSION IF NOT EXISTS cube;
- CREATE EXTENSION IF NOT EXISTS earthdistance;
redis:
enabled: true
redisUsername: default
ingress:
main:
integrations:
homepage:
widget:
version: 2
waitServerScript: |
{{- $url := printf "http://%v:%v/api/server/ping" (include "tc.v1.common.lib.chart.names.fullname" .) .Values.service.main.ports.main.port -}}
echo "Pinging [{{ $url }}] until it is ready..."
until wget --spider --quiet --timeout=3 --tries 1 "{{ $url }}"; do
echo "Waiting for [{{ $url }}] to be ready..."
sleep 2
done
echo "URL [{{ $url }}] is ready!"