--- # 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: &app navidrome namespace: default spec: interval: 30m chart: spec: chart: app-template version: 3.5.1 sourceRef: kind: HelmRepository name: bjw-s namespace: flux-system maxHistory: 2 install: createNamespace: true remediation: retries: 3 upgrade: cleanupOnFail: true remediation: strategy: rollback retries: 3 uninstall: keepHistory: false values: defaultPodOptions: enableServiceLinks: false securityContext: runAsUser: 568 runAsGroup: 568 controllers: navidrome: containers: app: image: repository: ghcr.io/navidrome/navidrome tag: 0.53.3@sha256:d864c5ddbae508920b157d73b08bd48e93ec8c422003a491edd01a889497582a env: TZ: "${TIMEZONE}" ND_DATAFOLDER: /config ND_ENABLEGRAVATAR: "true" ND_LOGLEVEL: info ND_MUSICFOLDER: /var/mnt/vol1/music/Artistes ND_PORT: &port 8080 ND_PROMETHEUS_ENABLED: "true" ND_REVERSEPROXYUSERHEADER: Remote-User ND_REVERSEPROXYWHITELIST: 0.0.0.0/0 ND_SCANSCHEDULE: "@every 1h" ND_SESSIONTIMEOUT: 24h resources: requests: cpu: 10m memory: 250Mi limits: memory: 750Mi service: app: controller: *app ports: http: port: *port ingress: app: enabled: true className: nginx annotations: nginx.ingress.kubernetes.io/auth-method: GET nginx.ingress.kubernetes.io/auth-url: http://authelia.default.svc.cluster.local.:8888/api/verify nginx.ingress.kubernetes.io/auth-signin: https://auth.${SECRET_EXTERNAL_DOMAIN}?rm=$request_method nginx.ingress.kubernetes.io/auth-response-headers: Remote-User,Remote-Name,Remote-Groups,Remote-Email nginx.ingress.kubernetes.io/auth-snippet: proxy_set_header X-Forwarded-Method $request_method; external-dns.alpha.kubernetes.io/enabled: "true" external-dns.alpha.kubernetes.io/target: services.${SECRET_DOMAIN}. hajimari.io/icon: mdi:music gethomepage.dev/enabled: "true" gethomepage.dev/name: Navidrome gethomepage.dev/description: Modern music server and streamer compatible with subsonic/airsonic. gethomepage.dev/group: Media gethomepage.dev/icon: Navidrome.png gethomepage.dev/pod-selector: >- app in ( navidrome ) hosts: - host: &host "{{ .Release.Name }}.${SECRET_EXTERNAL_DOMAIN}" paths: - path: / service: identifier: app port: http tls: - hosts: - *host persistence: config: enabled: true existingClaim: *app globalMounts: - path: /config music: type: nfs server: 192.168.9.10 path: /var/mnt/vol1/music globalMounts: - path: /var/mnt/vol1/music readOnly: true