apiVersion: apps/v1 kind: Deployment metadata: name: music-grabber labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: music-grabber app.kubernetes.io/managed-by: Helm app.kubernetes.io/name: music-grabber helm.sh/chart: music-grabber-4.6.2 namespace: music-grabber spec: revisionHistoryLimit: 3 replicas: 1 strategy: type: Recreate selector: matchLabels: app.kubernetes.io/controller: main app.kubernetes.io/name: music-grabber app.kubernetes.io/instance: music-grabber template: metadata: labels: app.kubernetes.io/controller: main app.kubernetes.io/instance: music-grabber app.kubernetes.io/name: music-grabber spec: enableServiceLinks: false serviceAccountName: default automountServiceAccountToken: true hostIPC: false hostNetwork: false hostPID: false dnsPolicy: ClusterFirst containers: - env: - name: VPN_SERVICE_PROVIDER value: protonvpn - name: VPN_TYPE value: wireguard - name: WIREGUARD_PRIVATE_KEY valueFrom: secretKeyRef: key: private-key name: music-grabber-wireguard-conf - name: UPDATER_PROTONVPN_EMAIL valueFrom: secretKeyRef: key: proton-email name: music-grabber-wireguard-conf - name: UPDATER_PROTONVPN_PASSWORD valueFrom: secretKeyRef: key: proton-password name: music-grabber-wireguard-conf - name: FIREWALL_OUTBOUND_SUBNETS value: 10.0.0.0/8 - name: FIREWALL_INPUT_PORTS value: "8080" - name: DNS_UPSTREAM_RESOLVER_TYPE value: dot image: ghcr.io/qdm12/gluetun:v3.41.1@sha256:1a5bf4b4820a879cdf8d93d7ef0d2d963af56670c9ebff8981860b6804ebc8ab imagePullPolicy: IfNotPresent lifecycle: postStart: exec: command: - /bin/sh - -c - (ip rule del table 51820; ip -6 rule del table 51820) || true livenessProbe: exec: command: - /gluetun-entrypoint - healthcheck failureThreshold: 5 initialDelaySeconds: 30 periodSeconds: 30 successThreshold: 1 timeoutSeconds: 15 name: gluetun resources: limits: devic.es/tun: "1" requests: cpu: 10m devic.es/tun: "1" memory: 128Mi securityContext: capabilities: add: - NET_ADMIN - SYS_MODULE privileged: true - env: - name: MUSIC_DIR value: /mnt/store/Music Grabber/ - name: ENABLE_MUSICBRAINZ value: "true" - name: ORGANISE_BY_ARTIST value: "true" - name: NAVIDROME_URL value: http://navidrome-main.navidrome:80 - name: NAVIDROME_USER valueFrom: secretKeyRef: key: navidrome-user name: music-grabber-config-secret - name: NAVIDROME_PASS valueFrom: secretKeyRef: key: navidrome-password name: music-grabber-config-secret - name: SLSKD_URL value: http://slskd.slskd:5030 - name: SLSKD_USER valueFrom: secretKeyRef: key: slskd-user name: music-grabber-config-secret - name: SLSKD_PASS valueFrom: secretKeyRef: key: slskd-password name: music-grabber-config-secret - name: SLSKD_DOWNLOADS_PATH value: /mnt/store/slskd/Downloads image: g33kphr33k/musicgrabber:2.2.1 imagePullPolicy: IfNotPresent name: main resources: requests: cpu: 10m memory: 128Mi volumeMounts: - mountPath: /data name: cache - mountPath: /mnt/store/ name: music volumes: - name: cache persistentVolumeClaim: claimName: music-grabber - name: music persistentVolumeClaim: claimName: music-grabber-nfs-storage