From f441d01d3539335a2daf4fafd820edb22b4ef5f2 Mon Sep 17 00:00:00 2001 From: Michael Thomson Date: Thu, 14 Dec 2023 17:37:06 -0500 Subject: [PATCH] sonarr readarr --- media/readarr/deployment.yaml | 35 +++++++++++++++++++++++++++++++++ media/readarr/dns-endpoint.yaml | 12 +++++++++++ media/readarr/ingress.yaml | 25 +++++++++++++++++++++++ media/readarr/pvc-config.yaml | 12 +++++++++++ media/readarr/service.yaml | 12 +++++++++++ media/sonarr/deployment.yaml | 35 +++++++++++++++++++++++++++++++++ media/sonarr/dns-endpoint.yaml | 12 +++++++++++ media/sonarr/ingress.yaml | 25 +++++++++++++++++++++++ media/sonarr/pvc-config.yaml | 12 +++++++++++ media/sonarr/service.yaml | 12 +++++++++++ 10 files changed, 192 insertions(+) create mode 100644 media/readarr/deployment.yaml create mode 100644 media/readarr/dns-endpoint.yaml create mode 100644 media/readarr/ingress.yaml create mode 100644 media/readarr/pvc-config.yaml create mode 100644 media/readarr/service.yaml create mode 100644 media/sonarr/deployment.yaml create mode 100644 media/sonarr/dns-endpoint.yaml create mode 100644 media/sonarr/ingress.yaml create mode 100644 media/sonarr/pvc-config.yaml create mode 100644 media/sonarr/service.yaml diff --git a/media/readarr/deployment.yaml b/media/readarr/deployment.yaml new file mode 100644 index 0000000..3779667 --- /dev/null +++ b/media/readarr/deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: readarr + namespace: media +spec: + selector: + matchLabels: + app: readarr + template: + metadata: + labels: + app: readarr + spec: + containers: + - name: readarr + image: lscr.io/linuxserver/readarr:latest + ports: + - containerPort: 8787 + name: http + protocol: TCP + volumeMounts: + - name: config + mountPath: /config + - mountPath: /data + name: data + volumes: + - name: config + persistentVolumeClaim: + claimName: readarr-config + - name: data + persistentVolumeClaim: + claimName: media-data + + diff --git a/media/readarr/dns-endpoint.yaml b/media/readarr/dns-endpoint.yaml new file mode 100644 index 0000000..e11387c --- /dev/null +++ b/media/readarr/dns-endpoint.yaml @@ -0,0 +1,12 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: readarr.michaelthomson.dev + namespace: media +spec: + endpoints: + - dnsName: readarr.michaelthomson.dev + recordTTL: 180 + recordType: CNAME + targets: + - server.michaelthomson.dev diff --git a/media/readarr/ingress.yaml b/media/readarr/ingress.yaml new file mode 100644 index 0000000..14a81aa --- /dev/null +++ b/media/readarr/ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: readarr + namespace: media + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.middlewares: traefik-authentik@kubernetescrd + traefik.ingress.kubernetes.io/router.tls: "true" +spec: + rules: + - host: readarr.michaelthomson.dev + http: + paths: + - pathType: ImplementationSpecific + path: / + backend: + service: + name: readarr + port: + name: http + tls: + - hosts: + - readarr.michaelthomson.dev + secretName: letsencrypt-wildcard-cert-michaelthomson.dev diff --git a/media/readarr/pvc-config.yaml b/media/readarr/pvc-config.yaml new file mode 100644 index 0000000..8648de3 --- /dev/null +++ b/media/readarr/pvc-config.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: readarr-config + namespace: media +spec: + resources: + requests: + storage: 1Gi + storageClassName: longhorn + accessModes: + - ReadWriteOnce diff --git a/media/readarr/service.yaml b/media/readarr/service.yaml new file mode 100644 index 0000000..b8f7053 --- /dev/null +++ b/media/readarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: readarr + namespace: media +spec: + selector: + app: readarr + ports: + - port: 80 + targetPort: http + name: http diff --git a/media/sonarr/deployment.yaml b/media/sonarr/deployment.yaml new file mode 100644 index 0000000..20f37be --- /dev/null +++ b/media/sonarr/deployment.yaml @@ -0,0 +1,35 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: sonarr + namespace: media +spec: + selector: + matchLabels: + app: sonarr + template: + metadata: + labels: + app: sonarr + spec: + containers: + - name: sonarr + image: lscr.io/linuxserver/sonarr:latest + ports: + - containerPort: 8989 + name: http + protocol: TCP + volumeMounts: + - name: config + mountPath: /config + - mountPath: /data + name: data + volumes: + - name: config + persistentVolumeClaim: + claimName: sonarr-config + - name: data + persistentVolumeClaim: + claimName: media-data + + diff --git a/media/sonarr/dns-endpoint.yaml b/media/sonarr/dns-endpoint.yaml new file mode 100644 index 0000000..2d2a904 --- /dev/null +++ b/media/sonarr/dns-endpoint.yaml @@ -0,0 +1,12 @@ +apiVersion: externaldns.k8s.io/v1alpha1 +kind: DNSEndpoint +metadata: + name: sonarr.michaelthomson.dev + namespace: media +spec: + endpoints: + - dnsName: sonarr.michaelthomson.dev + recordTTL: 180 + recordType: CNAME + targets: + - server.michaelthomson.dev diff --git a/media/sonarr/ingress.yaml b/media/sonarr/ingress.yaml new file mode 100644 index 0000000..e96f65f --- /dev/null +++ b/media/sonarr/ingress.yaml @@ -0,0 +1,25 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: sonarr + namespace: media + annotations: + traefik.ingress.kubernetes.io/router.entrypoints: websecure + traefik.ingress.kubernetes.io/router.middlewares: traefik-authentik@kubernetescrd + traefik.ingress.kubernetes.io/router.tls: "true" +spec: + rules: + - host: sonarr.michaelthomson.dev + http: + paths: + - pathType: ImplementationSpecific + path: / + backend: + service: + name: sonarr + port: + name: http + tls: + - hosts: + - sonarr.michaelthomson.dev + secretName: letsencrypt-wildcard-cert-michaelthomson.dev diff --git a/media/sonarr/pvc-config.yaml b/media/sonarr/pvc-config.yaml new file mode 100644 index 0000000..a8eedcd --- /dev/null +++ b/media/sonarr/pvc-config.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: sonarr-config + namespace: media +spec: + resources: + requests: + storage: 1Gi + storageClassName: longhorn + accessModes: + - ReadWriteOnce diff --git a/media/sonarr/service.yaml b/media/sonarr/service.yaml new file mode 100644 index 0000000..8038b68 --- /dev/null +++ b/media/sonarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: sonarr + namespace: media +spec: + selector: + app: sonarr + ports: + - port: 80 + targetPort: http + name: http