From 6842375d47dc5173b803b21637fb6e4525b21de9 Mon Sep 17 00:00:00 2001 From: ahmza Date: Sun, 1 Nov 2026 12:34:13 +0000 Subject: [PATCH] add radarr --- apps/radarr.yaml | 25 +++++++++++++++ apps/radarr/deployment.yaml | 64 +++++++++++++++++++++++++++++++++++++ apps/radarr/ingress.yaml | 24 ++++++++++++++ apps/radarr/namespace.yaml | 4 +++ apps/radarr/pvc.yaml | 12 +++++++ apps/radarr/service.yaml | 12 +++++++ 6 files changed, 141 insertions(+) create mode 100644 apps/radarr.yaml create mode 100644 apps/radarr/deployment.yaml create mode 100644 apps/radarr/ingress.yaml create mode 100644 apps/radarr/namespace.yaml create mode 100644 apps/radarr/pvc.yaml create mode 100644 apps/radarr/service.yaml diff --git a/apps/radarr.yaml b/apps/radarr.yaml new file mode 100644 index 0000000..edfd735 --- /dev/null +++ b/apps/radarr.yaml @@ -0,0 +1,25 @@ +# This ArgoCD application deploys radarr to manage Movies for the media library +# This application pulls its image from hotio as theyre generally light weight +apiVersion: argoproj.io/v1alpha1 +kind: Application +metadata: + name: radarr + namespace: argocd +spec: + project: default + + source: + repoURL: https://tea.ahmza.com/ahmza.com/k8s-starter-pack.git + targetRevision: main + path: apps/radarr + + destination: + server: https://kubernetes.default.svc + namespace: radarr + + syncPolicy: + automated: + prune: true + selfHeal: true + syncOptions: + - CreateNamespace=true diff --git a/apps/radarr/deployment.yaml b/apps/radarr/deployment.yaml new file mode 100644 index 0000000..4603b7f --- /dev/null +++ b/apps/radarr/deployment.yaml @@ -0,0 +1,64 @@ +# bazarr image from hotio ghcr.io/hotio/radarr +apiVersion: apps/v1 +kind: Deployment +metadata: + name: radarr + namespace: radarr +spec: + # Not Critical Infra so a single pod is fine + replicas: 1 + strategy: + type: Recreate + selector: + matchLabels: + app: radarr + template: + metadata: + labels: + app: radarr + spec: + containers: + - name: radarr + image: ghcr.io/hotio/radarr:release + imagePullPolicy: Always + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: UMASK + value: "002" + - name: TZ + value: "Europe/London" + ports: + - name: http + containerPort: 7878 + protocol: TCP + volumeMounts: + - name: radarr-config + mountPath: /config + # Mount each media directory directly instead of using subPath. + # The NFS export root is not listable by root-squashed clients, so + # kubelet cannot safely prepare subPath mounts from that root. + - name: movies + mountPath: /movies + - name: torrents + mountPath: /data/torrents + - name: usenet + mountPath: /data/usenet + volumes: + - name: radarr-config + persistentVolumeClaim: + claimName: radarr-config + - name: movies + nfs: + server: nas.ahmza.com + path: /srv/media/Movies + - name: torrents + nfs: + server: nas.ahmza.com + path: /srv/media/torrents + - name: usenet + nfs: + server: nas.ahmza.com + path: /srv/media/usenet diff --git a/apps/radarr/ingress.yaml b/apps/radarr/ingress.yaml new file mode 100644 index 0000000..f8aa1d5 --- /dev/null +++ b/apps/radarr/ingress.yaml @@ -0,0 +1,24 @@ +# routes for radarr.ahmza.com through ingress-nginx (docs/11-ingress.md) +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: radarr + namespace: radarr + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod +spec: + tls: + - hosts: + - radarr.ahmza.com + secretName: radarr-tls + rules: + - host: radarr.ahmza.com + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: radarr + port: + number: 7878 diff --git a/apps/radarr/namespace.yaml b/apps/radarr/namespace.yaml new file mode 100644 index 0000000..c96a378 --- /dev/null +++ b/apps/radarr/namespace.yaml @@ -0,0 +1,4 @@ +apiVersion: v1 +kind: Namespace +metadata: + name: radarr diff --git a/apps/radarr/pvc.yaml b/apps/radarr/pvc.yaml new file mode 100644 index 0000000..86cfd74 --- /dev/null +++ b/apps/radarr/pvc.yaml @@ -0,0 +1,12 @@ +# create a longhorn pvc for radarr's config, see (docs/06-longhorn.md) +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: radarr-config + namespace: radarr +spec: + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 2Gi diff --git a/apps/radarr/service.yaml b/apps/radarr/service.yaml new file mode 100644 index 0000000..b561389 --- /dev/null +++ b/apps/radarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: radarr + namespace: radarr +spec: + selector: + app: radarr + ports: + - name: http + port: 7878 + targetPort: http