Migrate to longhorn

This commit is contained in:
Astra Logical 2026-06-10 20:51:10 -04:00
parent 7ef764c178
commit 47dd6ede21
24 changed files with 451 additions and 72 deletions

View file

@ -0,0 +1,27 @@
apiVersion: external-secrets.io/v1
kind: ExternalSecret
metadata:
name: backblaze-secrets
namespace: longhorn-system
spec:
refreshInterval: "1h"
secretStoreRef:
name: vault-external-secrets-store
kind: ClusterSecretStore
target:
name: backblaze-secret
creationPolicy: Owner
data:
- secretKey: AWS_ACCESS_KEY_ID
remoteRef:
key: backblaze
property: key-id
- secretKey: AWS_SECRET_ACCESS_KEY
remoteRef:
key: backblaze
property: application-key
- secretKey: AWS_ENDPOINTS
remoteRef:
key: backblaze
property: endpoint

View file

@ -0,0 +1,4 @@
defaultSettings:
defaultDataPath: "" # Disables the default SD card path
defaultReplicaCount: 3
createDefaultDiskOnLabeledNodes: true

View file

@ -0,0 +1,12 @@
apiVersion: longhorn.io/v1beta2
kind: RecurringJob
metadata:
name: weekly-app-backup
namespace: longhorn-system
spec:
task: "backup"
cron: "0 4 * * 0"
retain: 4
concurrency: 1
groups:
- app-config-group

View file

@ -44,9 +44,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: abs-kosync-data - name: abs-kosync-data
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: abs-kosync-data-pvc
path: /k3s/abs-kosync-bridge
- name: abs-kosync-books - name: abs-kosync-books
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -55,3 +54,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media/audiobooks path: /yarr/media/audiobooks
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: abs-kosync-data-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Gi

View file

@ -52,10 +52,38 @@ spec:
server: robin.home.nest server: robin.home.nest
path: /yarr/media/podcasts path: /yarr/media/podcasts
- name: audiobookshelf-config - name: audiobookshelf-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: audiobookshelf-config-pvc
path: /k3s/audiobookshelf/config
- name: audiobookshelf-metadata - name: audiobookshelf-metadata
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: audiobookshelf-metadata-pvc
path: /k3s/audiobookshelf/metadata ---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: audiobookshelf-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 3Mi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: audiobookshelf-metadata-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Mi

View file

@ -44,10 +44,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: bazarr-anime-config - name: bazarr-anime-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: bazarr-anime-config-pvc
path: /k3s/bazarr-anime
- name: bazarr-anime-media - name: bazarr-anime-media
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media path: /yarr/media
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: bazarr-anime-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Mi

View file

@ -44,10 +44,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: bazarr-config - name: bazarr-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: bazarr-config-pvc
path: /k3s/bazarr
- name: bazarr-media - name: bazarr-media
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media path: /yarr/media
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: bazarr-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 5Mi

View file

@ -49,10 +49,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: calibre-web-config - name: calibre-web-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: calibre-web-config-pvc
path: /k3s/calibre-web
- name: calibre-web-library - name: calibre-web-library
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media/books/calibre-library path: /yarr/media/books/calibre-library
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: calibre-web-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 20Mi

View file

@ -55,10 +55,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: deluge-config - name: deluge-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: deluge-config-pvc
path: /k3s/deluge
- name: deluge-media - name: deluge-media
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: deluge-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 20Mi

View file

@ -41,6 +41,20 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: foundry-vtt-volume - name: foundry-vtt-volume
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: foundry-vtt-data-pvc
path: /k3s/foundryvtt ---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: foundry-vtt-data-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 10Gi

View file

@ -44,14 +44,42 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: jellyfin-config - name: jellyfin-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: jellyfin-config-pvc
path: /k3s/jellyfin/config
- name: jellyfin-cache - name: jellyfin-cache
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: jellyfin-cache-pvc
path: /k3s/jellyfin/cache
- name: yarr - name: yarr
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media path: /yarr/media
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyfin-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 3Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyfin-cache-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 3Gi

View file

@ -44,6 +44,20 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: jellyseerr-volume - name: jellyseerr-volume
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: jellyseerr-data-pvc
path: /k3s/jellyseerr ---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: jellyseerr-data-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 20Mi

View file

@ -48,9 +48,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: lazylibrarian-config - name: lazylibrarian-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: lazylibrarian-config-pvc
path: /k3s/lazy-librarian
- name: lazylibrarian-downloads - name: lazylibrarian-downloads
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -59,3 +58,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr path: /yarr
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: lazylibrarian-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 4Gi

View file

@ -48,9 +48,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: lidarr-config - name: lidarr-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: lidarr-config-pvc
path: /k3s/lidarr
- name: lidarr-data - name: lidarr-data
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -59,3 +58,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: lidarr-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi

View file

@ -44,10 +44,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: navidrome-data - name: navidrome-data
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: navidrome-config-pvc
path: /k3s/navidrome
- name: navidrome-media - name: navidrome-media
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/media/music path: /yarr/media/music
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: navidrome-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi

View file

@ -94,11 +94,39 @@ spec:
mountPath: /opt/tplink/EAPController/logs mountPath: /opt/tplink/EAPController/logs
volumes: volumes:
- name: omada-data - name: omada-data
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: omada-data-pvc
path: /k3s/omada-controller/data
- name: omada-logs - name: omada-logs
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: omada-logs-pvc
path: /k3s/omada-controller/logs
restartPolicy: Always restartPolicy: Always
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: omada-data-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 1Gi
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: omada-logs-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 100Mi

View file

@ -42,6 +42,20 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: prowlarr-config - name: prowlarr-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: prowlarr-config-pvc
path: /k3s/prowlarr ---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: prowlarr-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 200Mi

View file

@ -46,9 +46,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: radarr-anime-config - name: radarr-anime-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: radarr-anime-config-pvc
path: /k3s/radarr-anime
- name: radarr-anime-data - name: radarr-anime-data
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: radarr-anime-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 150Mi

View file

@ -46,9 +46,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: radarr-config - name: radarr-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: radarr-config-pvc
path: /k3s/radarr
- name: radarr-data - name: radarr-data
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: radarr-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 150Mi

View file

@ -44,10 +44,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: sabnzbd-config - name: sabnzbd-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: sabnzbd-config-pvc
path: /k3s/sabnzbd
- name: sabnzbd-downloads - name: sabnzbd-downloads
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sabnzbd-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 50Mi

View file

@ -55,10 +55,24 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: slskd-app - name: slskd-app
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: slskd-app-pvc
path: /k3s/slskd
- name: slskd-downloads - name: slskd-downloads
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: slskd-app-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 50Mi

View file

@ -46,9 +46,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: sonarr-anime-config - name: sonarr-anime-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: sonarr-anime-config-pvc
path: /k3s/sonarr-anime
- name: sonarr-anime-data - name: sonarr-anime-data
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-anime-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 200Mi

View file

@ -46,9 +46,8 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: sonarr-config - name: sonarr-config
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: sonarr-config-pvc
path: /k3s/sonarr
- name: sonarr-data - name: sonarr-data
nfs: nfs:
server: robin.home.nest server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs: nfs:
server: robin.home.nest server: robin.home.nest
path: /yarr/downloads path: /yarr/downloads
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: sonarr-config-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 150Mi

View file

@ -42,6 +42,20 @@ spec:
restartPolicy: Always restartPolicy: Always
volumes: volumes:
- name: vaultwarden-volume - name: vaultwarden-volume
nfs: persistentVolumeClaim:
server: birdfeeder2.home.nest claimName: vaultwarden-data-pvc
path: /k3s/vaultwarden ---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: vaultwarden-data-pvc
labels:
recurring-job.longhorn.io/source: "enabled"
recurring-job-group.longhorn.io/app-config-group: "enabled"
spec:
accessModes:
- ReadWriteOnce
storageClassName: longhorn
resources:
requests:
storage: 40Mi