apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: helm-immich namespace: argocd finalizers: - resources-finalizer.argocd.argoproj.io spec: syncPolicy: syncOptions: - CreateNamespace=true automated: prune: true selfHeal: true project: default sources: - chart: immich repoURL: https://immich-app.github.io/immich-charts targetRevision: 0.10.3 helm: values: | controllers: main: containers: main: image: tag: v2.4.1 env: REDIS_HOSTNAME: '{{ printf "%s-valkey" .Release.Name }}' IMMICH_MACHINE_LEARNING_URL: '{{ printf "http://%s-machine-learning:3003" .Release.Name }}' # External PostgreSQL (CloudNativePG) DB_HOSTNAME: "immich-postgres-rw" DB_USERNAME: "immich" DB_DATABASE_NAME: "immich" DB_PASSWORD: valueFrom: secretKeyRef: name: immich-postgres-app key: password immich: metrics: # Enabling this will create the service monitors needed to monitor immich with the prometheus operator enabled: false persistence: # Main data store for all photos shared between different components. library: # Automatically creating the library volume is not supported by this chart # You have to specify an existing PVC to use existingClaim: immich-claim # configuration is immich-config.json converted to yaml # ref: https://immich.app/docs/install/config-file/ # configuration: {} # trash: # enabled: false # days: 30 # storageTemplate: # enabled: true # template: "{{y}}/{{y}}-{{MM}}-{{dd}}/{{filename}}" # Dependencies valkey: enabled: true controllers: main: containers: main: image: repository: docker.io/valkey/valkey tag: 9.0-alpine@sha256:b4ee67d73e00393e712accc72cfd7003b87d0fcd63f0eba798b23251bfc9c394 pullPolicy: IfNotPresent persistence: data: enabled: true size: 1Gi # Optional: Set this to persistentVolumeClaim to keep job queues persistent type: emptyDir accessMode: ReadWriteOnce storageClass: longhorn # Immich components server: enabled: true controllers: main: containers: main: image: repository: ghcr.io/immich-app/immich-server pullPolicy: IfNotPresent ingress: main: enabled: true ingressClassName: nginx annotations: # proxy-body-size is set to 0 to remove the body limit on file uploads nginx.ingress.kubernetes.io/proxy-body-size: "0" cert-manager.io/cluster-issuer: prod-cluster-issuer nginx.ingress.kubernetes.io/backend-protocol: "HTTP" hosts: # - host: immich.hensen.io # paths: # - path: "/" - host: mbg.hensen.io paths: - path: "/" - host: foto.scoutingmbg.nl paths: - path: "/" service: name: sol-auth-svc port: 8002 tls: - secretName: letsencrypt-prod hosts: # - immich.hensen.io - mbg.hensen.io - foto.scoutingmbg.nl machine-learning: enabled: true controllers: main: containers: main: image: repository: ghcr.io/immich-app/immich-machine-learning pullPolicy: IfNotPresent env: TRANSFORMERS_CACHE: /cache HF_XET_CACHE: /cache/huggingface-xet MPLCONFIGDIR: /cache/matplotlib-config persistence: cache: enabled: true size: 10Gi # Optional: Set this to persistentVolumeClaim to avoid downloading the ML models every start. type: emptyDir accessMode: ReadWriteMany # storageClass: longhorn destination: server: https://kubernetes.default.svc namespace: immich