diff --git a/data-restorer.yaml b/data-restorer.yaml index 2a0fe88..2f5c83f 100644 --- a/data-restorer.yaml +++ b/data-restorer.yaml @@ -14,4 +14,4 @@ spec: volumes: - name: target-volume persistentVolumeClaim: - claimName: jellyseerr-data-pvc + claimName: readmeabook-config-pvc diff --git a/services/readmeabook/readmeabook-deployment.yaml b/services/readmeabook/readmeabook-deployment.yaml new file mode 100644 index 0000000..7a86745 --- /dev/null +++ b/services/readmeabook/readmeabook-deployment.yaml @@ -0,0 +1,66 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: readmeabook + labels: + app: readmeabook +spec: + replicas: 1 + selector: + matchLabels: + app: readmeabook + strategy: + type: Recreate + template: + metadata: + labels: + app: readmeabook + spec: + containers: + - name: readmeabook + image: ghcr.io/kikootwo/readmeabook:latest + env: + - name: TZ + value: America/New_York + - name: PUBLIC_URL + value: "https://albatross.mynest.love" + ports: + - containerPort: 3030 + protocol: TCP + name: web-ui + volumeMounts: + - mountPath: /media + name: readmeabook-media + - mountPath: /downloads + name: readmeabook-downloads + - mountPath: /app/config + name: readmeabook-config + - mountPath: /app/cache + name: readmeabook-cache + - mountPath: /var/lib/postgresql/data + name: readmeabook-pgdata + subPath: postgres-data + - mountPath: /var/lib/redis + name: readmeabook-redis + restartPolicy: Always + volumes: + - name: readmeabook-media + nfs: + server: robin.home.nest + path: /yarr/media/audiobooks + - name: readmeabook-downloads + nfs: + server: robin.home.nest + path: /yarr/downloads + - name: readmeabook-config + persistentVolumeClaim: + claimName: readmeabook-config-pvc + - name: readmeabook-cache + persistentVolumeClaim: + claimName: readmeabook-cache-pvc + - name: readmeabook-pgdata + persistentVolumeClaim: + claimName: readmeabook-pgdata-pvc + - name: readmeabook-redis + persistentVolumeClaim: + claimName: readmeabook-redis-pvc diff --git a/services/readmeabook/readmeabook-ingress.yaml b/services/readmeabook/readmeabook-ingress.yaml new file mode 100644 index 0000000..05f9d6c --- /dev/null +++ b/services/readmeabook/readmeabook-ingress.yaml @@ -0,0 +1,36 @@ +apiVersion: traefik.io/v1alpha1 +kind: Middleware +metadata: + name: readmeabook-proxy-headers + namespace: default +spec: + headers: + customRequestHeaders: + X-Forwarded-Proto: "https" +--- +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: readmeabook-ingress + namespace: default + annotations: + cert-manager.io/cluster-issuer: "letsencrypt-prod" + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.tls: "true" + traefik.ingress.kubernetes.io/router.middlewares: default-readmeabook-proxy-headers@kubernetescrd +spec: + tls: + - hosts: + - albatross.mynest.love + secretName: readmeabook-tls + rules: + - host: albatross.mynest.love + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: readmeabook + port: + name: http-web diff --git a/services/readmeabook/readmeabook-pvc.yaml b/services/readmeabook/readmeabook-pvc.yaml new file mode 100644 index 0000000..6db42ff --- /dev/null +++ b/services/readmeabook/readmeabook-pvc.yaml @@ -0,0 +1,57 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: readmeabook-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 +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: readmeabook-cache-pvc + labels: + recurring-job.longhorn.io/source: "enabled" +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 5Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: readmeabook-pgdata-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: 2Gi +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: readmeabook-redis-pvc + labels: + recurring-job.longhorn.io/source: "enabled" +spec: + accessModes: + - ReadWriteOnce + storageClassName: longhorn + resources: + requests: + storage: 1Gi diff --git a/services/readmeabook/readmeabook-service.yaml b/services/readmeabook/readmeabook-service.yaml new file mode 100644 index 0000000..5c72862 --- /dev/null +++ b/services/readmeabook/readmeabook-service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: readmeabook + labels: + app: readmeabook +spec: + type: ClusterIP + ports: + - name: http-web + port: 80 + targetPort: web-ui + selector: + app: readmeabook diff --git a/services/shelfmark-deployment.yaml b/services/shelfmark-deployment.yaml new file mode 100644 index 0000000..17af3e4 --- /dev/null +++ b/services/shelfmark-deployment.yaml @@ -0,0 +1,36 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: shelfmark + namespace: media +spec: + replicas: 1 + selector: + matchLabels: + app: shelfmark + template: + metadata: + labels: + app: shelfmark + spec: + containers: + - name: shelfmark + image: calibrain/shelfmark:latest + ports: + - containerPort: 8084 + env: + - name: TZ + value: "America/New_York" + volumeMounts: + - name: config + mountPath: /config + # This is where Shelfmark will write finished downloads + - name: ebook-ingress + mountPath: /downloads/books + volumes: + - name: config + persistentVolumeClaim: + claimName: shelfmark-config-pvc + - name: ebook-ingress + persistentVolumeClaim: + claimName: ebook-pipeline-pvc