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
volumes:
- name: abs-kosync-data
nfs:
server: birdfeeder2.home.nest
path: /k3s/abs-kosync-bridge
persistentVolumeClaim:
claimName: abs-kosync-data-pvc
- name: abs-kosync-books
nfs:
server: robin.home.nest
@ -55,3 +54,18 @@ spec:
nfs:
server: robin.home.nest
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
path: /yarr/media/podcasts
- name: audiobookshelf-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/audiobookshelf/config
persistentVolumeClaim:
claimName: audiobookshelf-config-pvc
- name: audiobookshelf-metadata
nfs:
server: birdfeeder2.home.nest
path: /k3s/audiobookshelf/metadata
persistentVolumeClaim:
claimName: audiobookshelf-metadata-pvc
---
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
volumes:
- name: bazarr-anime-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/bazarr-anime
persistentVolumeClaim:
claimName: bazarr-anime-config-pvc
- name: bazarr-anime-media
nfs:
server: robin.home.nest
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
volumes:
- name: bazarr-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/bazarr
persistentVolumeClaim:
claimName: bazarr-config-pvc
- name: bazarr-media
nfs:
server: robin.home.nest
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
volumes:
- name: calibre-web-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/calibre-web
persistentVolumeClaim:
claimName: calibre-web-config-pvc
- name: calibre-web-library
nfs:
server: robin.home.nest
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
volumes:
- name: deluge-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/deluge
persistentVolumeClaim:
claimName: deluge-config-pvc
- name: deluge-media
nfs:
server: robin.home.nest
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
volumes:
- name: foundry-vtt-volume
nfs:
server: birdfeeder2.home.nest
path: /k3s/foundryvtt
persistentVolumeClaim:
claimName: foundry-vtt-data-pvc
---
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
volumes:
- name: jellyfin-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/jellyfin/config
persistentVolumeClaim:
claimName: jellyfin-config-pvc
- name: jellyfin-cache
nfs:
server: birdfeeder2.home.nest
path: /k3s/jellyfin/cache
persistentVolumeClaim:
claimName: jellyfin-cache-pvc
- name: yarr
nfs:
server: robin.home.nest
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
volumes:
- name: jellyseerr-volume
nfs:
server: birdfeeder2.home.nest
path: /k3s/jellyseerr
persistentVolumeClaim:
claimName: jellyseerr-data-pvc
---
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
volumes:
- name: lazylibrarian-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/lazy-librarian
persistentVolumeClaim:
claimName: lazylibrarian-config-pvc
- name: lazylibrarian-downloads
nfs:
server: robin.home.nest
@ -59,3 +58,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: lidarr-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/lidarr
persistentVolumeClaim:
claimName: lidarr-config-pvc
- name: lidarr-data
nfs:
server: robin.home.nest
@ -59,3 +58,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: navidrome-data
nfs:
server: birdfeeder2.home.nest
path: /k3s/navidrome
persistentVolumeClaim:
claimName: navidrome-config-pvc
- name: navidrome-media
nfs:
server: robin.home.nest
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
volumes:
- name: omada-data
nfs:
server: birdfeeder2.home.nest
path: /k3s/omada-controller/data
persistentVolumeClaim:
claimName: omada-data-pvc
- name: omada-logs
nfs:
server: birdfeeder2.home.nest
path: /k3s/omada-controller/logs
persistentVolumeClaim:
claimName: omada-logs-pvc
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
volumes:
- name: prowlarr-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/prowlarr
persistentVolumeClaim:
claimName: prowlarr-config-pvc
---
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
volumes:
- name: radarr-anime-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/radarr-anime
persistentVolumeClaim:
claimName: radarr-anime-config-pvc
- name: radarr-anime-data
nfs:
server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: radarr-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/radarr
persistentVolumeClaim:
claimName: radarr-config-pvc
- name: radarr-data
nfs:
server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: sabnzbd-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/sabnzbd
persistentVolumeClaim:
claimName: sabnzbd-config-pvc
- name: sabnzbd-downloads
nfs:
server: robin.home.nest
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
volumes:
- name: slskd-app
nfs:
server: birdfeeder2.home.nest
path: /k3s/slskd
persistentVolumeClaim:
claimName: slskd-app-pvc
- name: slskd-downloads
nfs:
server: robin.home.nest
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
volumes:
- name: sonarr-anime-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/sonarr-anime
persistentVolumeClaim:
claimName: sonarr-anime-config-pvc
- name: sonarr-anime-data
nfs:
server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: sonarr-config
nfs:
server: birdfeeder2.home.nest
path: /k3s/sonarr
persistentVolumeClaim:
claimName: sonarr-config-pvc
- name: sonarr-data
nfs:
server: robin.home.nest
@ -57,3 +56,18 @@ spec:
nfs:
server: robin.home.nest
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
volumes:
- name: vaultwarden-volume
nfs:
server: birdfeeder2.home.nest
path: /k3s/vaultwarden
persistentVolumeClaim:
claimName: vaultwarden-data-pvc
---
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