apiVersion: helm.toolkit.fluxcd.io/v2 kind: HelmRelease metadata: name: photo-stats namespace: photo-stats spec: interval: 30m chartRef: kind: OCIRepository name: photo-stats driftDetection: mode: enabled values: controllers: app: containers: # walks the immich library over NFS (read-only) and periodically # writes index.html/stats.json into the shared "www" volume; the # "web" container just serves whatever is currently on disk there. scanner: image: repository: python tag: 3.13-alpine command: - python3 - /app/scan.py resources: requests: cpu: 50m memory: 64Mi limits: memory: 256Mi web: image: repository: nginx tag: 1.27-alpine probes: liveness: enabled: true readiness: enabled: true resources: requests: cpu: 10m memory: 16Mi limits: memory: 64Mi service: app: controller: app ports: http: port: 80 ingress: app: className: traefik annotations: cert-manager.io/cluster-issuer: letsencrypt-prod hosts: - host: stats.photo.aggtaa.com paths: - path: / pathType: Prefix service: identifier: app port: http tls: - secretName: photo-stats-tls hosts: - stats.photo.aggtaa.com persistence: script: type: configMap name: photo-stats-script advancedMounts: app: scanner: - path: /app/scan.py subPath: scan.py readOnly: true data: type: persistentVolumeClaim existingClaim: photo-stats-nas1-sdb2 advancedMounts: app: scanner: - path: /mnt/sdb2 readOnly: true www: type: emptyDir advancedMounts: app: scanner: - path: /www web: - path: /usr/share/nginx/html