Преглед изворни кода

add delugevpn & seedbox pvc

Josh Bicking пре 1 месец
родитељ
комит
15de1c6fb3

+ 14 - 0
delugevpn-pvc.yaml

@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: delugevpn-pvc
+  namespace: plex
+  labels:
+    app: delugevpn
+spec:
+  storageClassName: ceph-block
+  accessModes:
+    - ReadWriteOnce
+  resources:
+    requests:
+      storage: 10Gi

+ 77 - 0
delugevpn.yaml

@@ -0,0 +1,77 @@
+---
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+  name: delugevpn
+  namespace: plex
+spec:
+  strategy:
+    type: Recreate
+  selector:
+    matchLabels:
+      app: delugevpn
+  replicas: 1
+  template:
+    metadata:
+      labels:
+        app: delugevpn
+      annotations:
+        backup.velero.io/backup-volumes-excludes: seedbox
+    spec:
+      containers:
+      - name: delugevpn
+        image: binhex/arch-delugevpn:2.1.1-6-05
+        ports:
+        - containerPort: 8112
+          name: http-web-svc
+        securityContext:
+          privileged: true
+        envFrom:
+        - secretRef:
+            name: delugevpn-secret
+        volumeMounts:
+        - mountPath: "/data"
+          name: seedbox
+        - mountPath: "/config"
+          name: config
+      volumes:
+      - name: seedbox
+        persistentVolumeClaim:
+          claimName: seedbox-pvc
+      - name: config
+        persistentVolumeClaim:
+          claimName: delugevpn-pvc
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: delugevpn-service
+  namespace: plex
+spec:
+  selector:
+    app: delugevpn
+  type: ClusterIP
+  ports:
+  - name: delugevpn-web-port
+    protocol: TCP
+    port: 8112
+    targetPort: http-web-svc
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: delugevpn
+  namespace: plex
+spec:
+  entryPoints:
+  - websecure
+  routes:
+  - kind: Rule
+    match: Host(`delugevpn.lan.jibby.org`)
+    services:
+    - kind: Service
+      name: delugevpn-service
+      port: 8112
+    middlewares:
+    - name: lanonly
+      namespace: kube-system

+ 7 - 2
lidarr.yaml

@@ -16,11 +16,11 @@ spec:
       labels:
         app: lidarr
       annotations:
-        backup.velero.io/backup-volumes-excludes: plex
+        backup.velero.io/backup-volumes-excludes: plex,seedbox 
     spec:
       containers:
       - name: lidarr
-        image: lscr.io/linuxserver/lidarr:nightly-2.5.0.4277-ls19
+        image: lscr.io/linuxserver/lidarr:latest
         ports:
         - containerPort: 8686
           name: http-web-svc
@@ -34,12 +34,17 @@ spec:
         volumeMounts:
         - mountPath: "/plex"
           name: plex
+        - mountPath: "/seedbox"
+          name: seedbox
         - mountPath: "/config"
           name: config
       volumes:
       - name: plex
         persistentVolumeClaim:
           claimName: plex-pvc
+      - name: seedbox
+        persistentVolumeClaim:
+          claimName: seedbox-pvc
       - name: config
         persistentVolumeClaim:
           claimName: lidarr-pvc

+ 7 - 2
radarr.yaml

@@ -16,11 +16,11 @@ spec:
       labels:
         app: radarr
       annotations:
-        backup.velero.io/backup-volumes-excludes: plex
+        backup.velero.io/backup-volumes-excludes: plex,seedbox 
     spec:
       containers:
       - name: radarr
-        image: lscr.io/linuxserver/radarr:nightly-5.8.3.8932-ls42
+        image: lscr.io/linuxserver/radarr:latest
         ports:
         - containerPort: 7878
           name: http-web-svc
@@ -34,12 +34,17 @@ spec:
         volumeMounts:
         - mountPath: "/plex"
           name: plex
+        - mountPath: "/seedbox"
+          name: seedbox
         - mountPath: "/config"
           name: config
       volumes:
       - name: plex
         persistentVolumeClaim:
           claimName: plex-pvc
+      - name: seedbox
+        persistentVolumeClaim:
+          claimName: seedbox-pvc
       - name: config
         persistentVolumeClaim:
           claimName: radarr-pvc

+ 1 - 1
rook/data/data-filesystem.yaml

@@ -11,7 +11,7 @@ spec:
       size: 3
   dataPools:
     - replicated:
-        size: 1
+        size: 3
   metadataServer:
     activeCount: 1
     activeStandby: true

+ 29 - 0
rook/seedbox/seedbox-filesystem.yaml

@@ -0,0 +1,29 @@
+# TODO move to the main helm values
+apiVersion: ceph.rook.io/v1
+kind: CephFilesystem
+metadata:
+  name: seedbox
+  namespace: rook-ceph
+spec:
+  metadataPool:
+    replicated:
+      size: 3
+  dataPools:
+    - replicated:
+        size: 2
+      deviceClass: hdd
+  metadataServer:
+    activeCount: 1
+    activeStandby: true
+    placement:
+      nodeAffinity:
+        requiredDuringSchedulingIgnoredDuringExecution:
+          nodeSelectorTerms:
+          - matchExpressions:
+            - key: storage-node
+              operator: In
+              values:
+              - "true"
+      tolerations:
+      - key: storage-node
+        operator: Exists

+ 28 - 0
rook/seedbox/seedbox-pv.yaml

@@ -0,0 +1,28 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+  name: seedbox-pv
+spec:
+  accessModes:
+  - ReadWriteMany
+  capacity:
+    storage: 40Ti
+  csi:
+    controllerExpandSecretRef:
+      name: rook-csi-cephfs-provisioner
+      namespace: rook-ceph
+    driver: rook-ceph.cephfs.csi.ceph.com
+    nodeStageSecretRef:
+      name: rook-csi-cephfs-node
+      namespace: rook-ceph
+    volumeAttributes:
+      clusterID: rook-ceph
+      fsName: seedbox
+      pool: seedbox-data0
+      storage.kubernetes.io/csiProvisionerIdentity: 1722896863076-5863-rook-ceph.cephfs.csi.ceph.com
+      subvolumeName: csi-vol-eae75138-e948-4679-81bb-8dc90cdc3a30
+      subvolumePath: /volumes/csi/csi-vol-eae75138-e948-4679-81bb-8dc90cdc3a30/53b6d1df-9146-4e52-b904-950d6d101ebd
+    volumeHandle: 0001-0009-rook-ceph-0000000000000009-eae75138-e948-4679-81bb-8dc90cdc3a30
+  persistentVolumeReclaimPolicy: Retain
+  storageClassName: seedbox-sc
+  volumeMode: Filesystem

+ 17 - 0
rook/seedbox/seedbox-sc.yaml

@@ -0,0 +1,17 @@
+apiVersion: storage.k8s.io/v1
+kind: StorageClass
+metadata:
+  name: seedbox-sc
+parameters:
+  clusterID: rook-ceph
+  fsName: seedbox
+  pool: seedbox-data0
+  csi.storage.k8s.io/controller-expand-secret-name: rook-csi-cephfs-provisioner
+  csi.storage.k8s.io/controller-expand-secret-namespace: rook-ceph
+  csi.storage.k8s.io/node-stage-secret-name: rook-csi-cephfs-node
+  csi.storage.k8s.io/node-stage-secret-namespace: rook-ceph
+  csi.storage.k8s.io/provisioner-secret-name: rook-csi-cephfs-provisioner
+  csi.storage.k8s.io/provisioner-secret-namespace: rook-ceph
+provisioner: rook-ceph.cephfs.csi.ceph.com
+reclaimPolicy: Delete
+allowVolumeExpansion: true

+ 15 - 0
seedbox-pvc.yaml

@@ -0,0 +1,15 @@
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: seedbox-pvc
+  namespace: plex
+spec:
+  storageClassName: seedbox-sc
+  volumeName: seedbox-pv
+  volumeMode: Filesystem
+  accessModes:
+    - ReadWriteMany
+  resources:
+    requests:
+      storage: 40Ti

+ 7 - 2
sonarr.yaml

@@ -16,11 +16,11 @@ spec:
       labels:
         app: sonarr
       annotations:
-        backup.velero.io/backup-volumes-excludes: plex
+        backup.velero.io/backup-volumes-excludes: plex,seedbox 
     spec:
       containers:
       - name: sonarr
-        image: lscr.io/linuxserver/sonarr:develop-4.0.8.1902-ls79
+        image: lscr.io/linuxserver/sonarr:latest
         ports:
         - containerPort: 8989
           name: http-web-svc
@@ -34,12 +34,17 @@ spec:
         volumeMounts:
         - mountPath: "/plex"
           name: plex
+        - mountPath: "/seedbox"
+          name: seedbox
         - mountPath: "/config"
           name: config
       volumes:
       - name: plex
         persistentVolumeClaim:
           claimName: plex-pvc
+      - name: seedbox
+        persistentVolumeClaim:
+          claimName: seedbox-pvc
       - name: config
         persistentVolumeClaim:
           claimName: sonarr-pvc