Breandan Dezendorf пре 2 година
родитељ
комит
2bfb9aa950

+ 144 - 0
homelab/k3s/media/calibre.yaml

@@ -0,0 +1,144 @@
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: calibre
+  labels:
+    app: calibre
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: calibre
+  template:
+    metadata:
+      labels:
+        app: calibre
+    spec:
+      containers:
+      - name: calibre
+        image: lscr.io/linuxserver/calibre:latest
+        env:
+        - name: PUID
+          value: "1000"
+        - name: PGID
+          value: "1000"
+        ports:
+        - name: web
+          containerPort: 8080
+        - name: content
+          containerPort: 8081
+        volumeMounts:
+        - name: calibre-data-volume
+          mountPath: "/config"
+        - name: media-volume
+          mountPath: "/downloads/transmission"
+          subPath: "downloads/transmission"
+        - name: tesseract-nfs
+          mountPath: "/books"
+        #- name: media-volume
+        #  mountPath: "/movies"
+        #  subPath: "library/movies"
+      volumes:
+      - name: calibre-data-volume
+        persistentVolumeClaim:
+          claimName: calibre-data-pvc
+      - name: media-volume
+        persistentVolumeClaim:
+          claimName: media-pvc
+      - name: tesseract-nfs
+        nfs:
+          server: 192.168.1.87
+          path: /tank/books
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: calibre
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 8080
+  selector:
+    app: calibre
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: books
+spec:
+  type: ClusterIP
+  ports:
+    - name: content
+      port: 8081
+  selector:
+    app: calibre
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: calibre-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: Host(`calibre.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: calibre
+      port: 8080
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: calibre-websecure-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`calibre.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: calibre
+      port: 8080
+  tls:
+    certResolver: myresolver
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: books-websecure-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`books.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: books
+      port: 8081
+  tls:
+    certResolver: myresolver
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: books-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: Host(`books.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: books
+      port: 8081

+ 24 - 0
homelab/k3s/media/disks.yaml

@@ -25,6 +25,30 @@ spec:
 ---
 apiVersion: v1
 kind: PersistentVolumeClaim
+metadata:
+  name: readarr-data-pvc
+spec:
+  accessModes:
+    - ReadWriteOnce
+  storageClassName: nfs
+  resources:
+    requests:
+      storage: 100M
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+  name: calibre-data-pvc
+spec:
+  accessModes:
+    - ReadWriteOnce
+  storageClassName: nfs
+  resources:
+    requests:
+      storage: 100M
+---
+apiVersion: v1
+kind: PersistentVolumeClaim
 metadata:
   name: transmission-pvc
 spec:

+ 96 - 0
homelab/k3s/media/readarr.yaml

@@ -0,0 +1,96 @@
+---
+kind: Deployment
+apiVersion: apps/v1
+metadata:
+  name: readarr
+  labels:
+    app: readarr
+spec:
+  replicas: 1
+  selector:
+    matchLabels:
+      app: readarr
+  template:
+    metadata:
+      labels:
+        app: readarr
+    spec:
+      containers:
+      - name: readarr
+        image: lscr.io/linuxserver/readarr:develop
+        env:
+        - name: PUID
+          value: "1000"
+        - name: PGID
+          value: "1000"
+        ports:
+        - name: web
+          containerPort: 80
+        volumeMounts:
+        - name: readarr-data-volume
+          mountPath: "/config"
+        - name: media-volume
+          mountPath: "/downloads/transmission"
+          subPath: "downloads/transmission"
+        - name: tesseract-nfs
+          mountPath: "/books"
+        #- name: media-volume
+        #  mountPath: "/movies"
+        #  subPath: "library/movies"
+      volumes:
+      - name: readarr-data-volume
+        persistentVolumeClaim:
+          claimName: readarr-data-pvc
+      - name: media-volume
+        persistentVolumeClaim:
+          claimName: media-pvc
+      - name: tesseract-nfs
+        nfs:
+          server: 192.168.1.87
+          path: /tank/books
+---
+apiVersion: v1
+kind: Service
+metadata:
+  name: readarr
+spec:
+  type: ClusterIP
+  ports:
+    - name: web
+      port: 8787
+  selector:
+    app: readarr
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: readarr-ingress-route
+  namespace: default
+spec:
+  entryPoints:
+    - web
+  routes:
+  - match: Host(`readarr.dezendorf.net`)
+    kind: Rule
+    middlewares:
+    - name: redirecthttps
+    services:
+    - name: readarr
+      port: 8787
+---
+apiVersion: traefik.containo.us/v1alpha1
+kind: IngressRoute
+metadata:
+  name: readarr-websecure-route
+  namespace: default
+spec:
+  entryPoints:
+    - websecure
+  routes:
+  - match: Host(`readarr.dezendorf.net`)
+    kind: Rule
+    services:
+    - name: readarr
+      port: 8787
+  tls:
+    certResolver: myresolver

+ 2 - 0
homelab/k3s/media/setup.sh

@@ -3,4 +3,6 @@ kubectl apply \
 	-f sonarr.yaml \
 	-f radarr.yaml \
 	-f jackett.yaml \
+	-f calibre.yaml \
+	-f readarr.yaml \
 	-f disks.yaml