143 lines
4 KiB
YAML
143 lines
4 KiB
YAML
# yaml-language-server: $schema=https://raw.githubusercontent.com/bjw-s/helm-charts/main/charts/other/app-template/schemas/helmrelease-helm-v2.schema.json
|
|
apiVersion: helm.toolkit.fluxcd.io/v2
|
|
kind: HelmRelease
|
|
metadata:
|
|
name: immich
|
|
spec:
|
|
interval: 5m
|
|
chart:
|
|
spec:
|
|
chart: app-template
|
|
version: 3.5.1
|
|
sourceRef:
|
|
kind: HelmRepository
|
|
name: bjws-charts
|
|
namespace: flux-system
|
|
dependsOn:
|
|
- name: redis
|
|
namespace: database
|
|
- name: cloudnative-pg
|
|
namespace: database
|
|
values:
|
|
controllers:
|
|
immich:
|
|
initContainers:
|
|
alter-db-searchpath:
|
|
image:
|
|
repository: ghcr.io/tensorchord/cloudnative-pgvecto.rs
|
|
tag: 16.6
|
|
envFrom: &envFrom
|
|
- secretRef:
|
|
name: immich-secret
|
|
command:
|
|
- /bin/bash
|
|
- -c
|
|
- |
|
|
export PGHOST=$${DB_HOSTNAME}
|
|
export PGPASSWORD=$${DB_ROOT_PASSWORD}
|
|
echo "ALTER SYSTEM SET search_path TO 'immich', public, vectors;" | psql -d immich -U postgres
|
|
containers:
|
|
app:
|
|
image:
|
|
repository: ghcr.io/immich-app/immich-server
|
|
tag: v1.124.2
|
|
env: &sharedEnv
|
|
IMMICH_TELEMETRY_INCLUDE: all
|
|
envFrom: &sharedEnvFrom
|
|
- secretRef:
|
|
name: immich-secret
|
|
probes:
|
|
liveness: &probes
|
|
enabled: true
|
|
custom: true
|
|
spec:
|
|
httpGet:
|
|
path: /
|
|
port: &port 2283
|
|
initialDelaySeconds: 0
|
|
periodSeconds: 10
|
|
timeoutSeconds: 1
|
|
failureThreshold: 3
|
|
readiness: *probes
|
|
startup:
|
|
enabled: true
|
|
spec:
|
|
failureThreshold: 30
|
|
periodSeconds: 10
|
|
resources:
|
|
limits:
|
|
gpu.intel.com/i915: 1
|
|
# resources:
|
|
# requests:
|
|
# cpu: 2m
|
|
# memory: 1500Mi
|
|
# limits:
|
|
# memory: 3200Mi
|
|
machine-learning:
|
|
image:
|
|
repository: ghcr.io/immich-app/immich-machine-learning
|
|
tag: v1.124.2-openvino
|
|
env: *sharedEnv
|
|
envFrom: *sharedEnvFrom
|
|
resources:
|
|
limits:
|
|
gpu.intel.com/i915: 1
|
|
# defaultPodOptions:
|
|
# securityContext:
|
|
# runAsUser: 10000
|
|
# runAsGroup: 10000
|
|
# fsGroup: 10000
|
|
# fsGroupChangePolicy: OnRootMismatch
|
|
|
|
service:
|
|
app:
|
|
controller: immich
|
|
ports:
|
|
http:
|
|
port: *port
|
|
http-ml:
|
|
port: 3003
|
|
protocol: HTTP
|
|
metrics-api:
|
|
port: 8081
|
|
protocol: HTTP
|
|
metrics-ml:
|
|
port: 8082
|
|
protocol: HTTP
|
|
serviceMonitor:
|
|
app:
|
|
serviceName: immich
|
|
labels:
|
|
release: kube-prometheus-stack
|
|
endpoints:
|
|
- port: metrics-api
|
|
scheme: http
|
|
- port: metrics-ml
|
|
scheme: http
|
|
ingress:
|
|
app:
|
|
annotations:
|
|
cert-manager.io/cluster-issuer: letsencrypt-production
|
|
traefik.ingress.kubernetes.io/router.entrypoints: websecure
|
|
hosts:
|
|
- host: "immich.${SECRET_NEW_DOMAIN}"
|
|
paths:
|
|
- path: /
|
|
service:
|
|
identifier: app
|
|
port: http
|
|
|
|
persistence:
|
|
mlcache:
|
|
type: emptyDir
|
|
advancedMounts:
|
|
immich: # controller name
|
|
machine-learning: # container name
|
|
- path: /cache
|
|
storage:
|
|
type: hostPath
|
|
hostPath: /mnt/MainPool/Media/Photos
|
|
advancedMounts:
|
|
immich: # controller name
|
|
app: # container name
|
|
- path: /usr/src/app/upload
|