apiVersion: argoproj.io/v1alpha1 kind: Application metadata: name: immich namespace: cicd finalizers: - resources-finalizer.argocd.argoproj.io spec: project: default sources: # Deploy custom resources (PVs, PVCs, PostgreSQL, Middleware) - repoURL: http://git-server.cicd.svc.cluster.local/conf.git targetRevision: master path: f3s/immich/helm-chart # Deploy Immich Helm chart with custom values - repoURL: https://immich-app.github.io/immich-charts/ chart: immich targetRevision: 0.10.3 helm: releaseName: immich values: | valkey: enabled: true persistence: data: enabled: true type: persistentVolumeClaim size: 1Gi storageClass: "" existingClaim: "immich-valkey-pvc" immich: persistence: library: existingClaim: "immich-library-pvc" server: enabled: true controllers: main: containers: main: volumeMounts: - name: yoga-videos mountPath: /external/yoga-videos readOnly: true volumes: - name: yoga-videos persistentVolumeClaim: claimName: immich-yoga-videos-pvc readOnly: true ingress: main: enabled: true annotations: spec.ingressClassName: traefik traefik.ingress.kubernetes.io/router.entrypoints: web traefik.ingress.kubernetes.io/router.middlewares: services-immich-body-size@kubernetescrd hosts: - host: immich.f3s.buetow.org paths: - path: "/" service: identifier: main port: 2283 lan: enabled: true annotations: spec.ingressClassName: traefik traefik.ingress.kubernetes.io/router.entrypoints: web,websecure traefik.ingress.kubernetes.io/router.middlewares: services-immich-body-size@kubernetescrd tls: - hosts: - immich.f3s.lan.buetow.org secretName: f3s-lan-tls hosts: - host: immich.f3s.lan.buetow.org paths: - path: "/" service: identifier: main port: 2283 machine-learning: enabled: true persistence: cache: enabled: true type: persistentVolumeClaim size: 10Gi storageClass: "" existingClaim: "immich-ml-cache-pvc" controllers: main: containers: main: env: DB_HOSTNAME: immich-postgres DB_DATABASE_NAME: immich DB_USERNAME: immich DB_PASSWORD: valueFrom: secretKeyRef: name: immich-db-secret key: password destination: server: https://kubernetes.default.svc namespace: services syncPolicy: automated: prune: false selfHeal: true syncOptions: - CreateNamespace=false retry: limit: 3 backoff: duration: 5s factor: 2 maxDuration: 1m