From aa2242d3bd2a443df324f64820443fea87a2245e Mon Sep 17 00:00:00 2001 From: Joe Monk Date: Wed, 22 Jan 2025 19:24:48 +0000 Subject: [PATCH] Add all the servarr bits --- .sops.yaml | 4 +- apps/podinfo/deployment.yaml | 80 ------------------- apps/podinfo/service.yaml | 16 ---- apps/{ => servarr}/gluetun/kustomization.yaml | 0 apps/{ => servarr}/gluetun/secret.yaml | 0 apps/servarr/kustomization.yaml | 8 ++ apps/servarr/lidarr/deployment.yaml | 69 ++++++++++++++++ apps/{podinfo => servarr/lidarr}/ingress.yaml | 8 +- .../lidarr}/kustomization.yaml | 0 apps/servarr/lidarr/pvc.yaml | 11 +++ apps/servarr/lidarr/service.yaml | 12 +++ apps/servarr/prowlarr/deployment.yaml | 69 ++++++++++++++++ apps/servarr/prowlarr/ingress.yaml | 16 ++++ .../prowlarr}/kustomization.yaml | 3 +- apps/servarr/prowlarr/pvc.yaml | 11 +++ apps/servarr/prowlarr/service.yaml | 12 +++ apps/servarr/radarr/deployment.yaml | 69 ++++++++++++++++ apps/servarr/radarr/ingress.yaml | 16 ++++ apps/servarr/radarr/kustomization.yaml | 7 ++ apps/servarr/radarr/pvc.yaml | 11 +++ apps/servarr/radarr/service.yaml | 12 +++ apps/{ => servarr}/sonarr/deployment.yaml | 0 apps/{ => servarr}/sonarr/ingress.yaml | 0 apps/servarr/sonarr/kustomization.yaml | 7 ++ apps/{ => servarr}/sonarr/pvc.yaml | 0 apps/{ => servarr}/sonarr/service.yaml | 0 26 files changed, 339 insertions(+), 102 deletions(-) delete mode 100644 apps/podinfo/deployment.yaml delete mode 100644 apps/podinfo/service.yaml rename apps/{ => servarr}/gluetun/kustomization.yaml (100%) rename apps/{ => servarr}/gluetun/secret.yaml (100%) create mode 100644 apps/servarr/kustomization.yaml create mode 100644 apps/servarr/lidarr/deployment.yaml rename apps/{podinfo => servarr/lidarr}/ingress.yaml (70%) rename apps/{sonarr => servarr/lidarr}/kustomization.yaml (100%) create mode 100644 apps/servarr/lidarr/pvc.yaml create mode 100644 apps/servarr/lidarr/service.yaml create mode 100644 apps/servarr/prowlarr/deployment.yaml create mode 100644 apps/servarr/prowlarr/ingress.yaml rename apps/{podinfo => servarr/prowlarr}/kustomization.yaml (81%) create mode 100644 apps/servarr/prowlarr/pvc.yaml create mode 100644 apps/servarr/prowlarr/service.yaml create mode 100644 apps/servarr/radarr/deployment.yaml create mode 100644 apps/servarr/radarr/ingress.yaml create mode 100644 apps/servarr/radarr/kustomization.yaml create mode 100644 apps/servarr/radarr/pvc.yaml create mode 100644 apps/servarr/radarr/service.yaml rename apps/{ => servarr}/sonarr/deployment.yaml (100%) rename apps/{ => servarr}/sonarr/ingress.yaml (100%) create mode 100644 apps/servarr/sonarr/kustomization.yaml rename apps/{ => servarr}/sonarr/pvc.yaml (100%) rename apps/{ => servarr}/sonarr/service.yaml (100%) diff --git a/.sops.yaml b/.sops.yaml index 8eccc5b..8e6a468 100644 --- a/.sops.yaml +++ b/.sops.yaml @@ -3,6 +3,8 @@ creation_rules: encrypted_regex: ^(data|stringData)$ # tower # k8s + # Little laptop age: >- age1ntfcrf5fz43da6k9h4um06u8mejjsqg005jm6rwmt9wff949s58qqwx8tv, - age1gnxrrychharz0cyapjhu3nnzzzhc38slwfpq5h5rsq7pphuk4q6shhx3ll + age1gnxrrychharz0cyapjhu3nnzzzhc38slwfpq5h5rsq7pphuk4q6shhx3ll, + age159065m47ffp6xveh8f4q0hwf4554wr902ecawyld7mnaa8dfnerq2q3220 diff --git a/apps/podinfo/deployment.yaml b/apps/podinfo/deployment.yaml deleted file mode 100644 index 6f96fc6..0000000 --- a/apps/podinfo/deployment.yaml +++ /dev/null @@ -1,80 +0,0 @@ -apiVersion: apps/v1 -kind: Deployment -metadata: - name: podinfo -spec: - minReadySeconds: 3 - revisionHistoryLimit: 5 - progressDeadlineSeconds: 60 - strategy: - rollingUpdate: - maxUnavailable: 0 - type: RollingUpdate - selector: - matchLabels: - app: podinfo - template: - metadata: - annotations: - prometheus.io/scrape: "true" - prometheus.io/port: "9797" - labels: - app: podinfo - spec: - containers: - - name: podinfo - image: ghcr.io/stefanprodan/podinfo:6.7.0 - imagePullPolicy: IfNotPresent - ports: - - name: http - containerPort: 9898 - protocol: TCP - - name: http-metrics - containerPort: 9797 - protocol: TCP - - name: grpc - containerPort: 9999 - protocol: TCP - command: - - ./podinfo - - --port=9898 - - --port-metrics=9797 - - --grpc-port=9999 - - --grpc-service-name=podinfo - - --level=info - - --random-delay=false - - --random-error=false - env: - - name: PODINFO_UI_COLOR - value: "#34577c" - livenessProbe: - exec: - command: - - podcli - - check - - http - - localhost:9898/healthz - initialDelaySeconds: 5 - timeoutSeconds: 5 - readinessProbe: - exec: - command: - - podcli - - check - - http - - localhost:9898/readyz - initialDelaySeconds: 5 - timeoutSeconds: 5 - resources: - limits: - cpu: 2000m - memory: 512Mi - requests: - cpu: 100m - memory: 64Mi - volumeMounts: - - name: data - mountPath: /data - volumes: - - name: data - emptyDir: {} \ No newline at end of file diff --git a/apps/podinfo/service.yaml b/apps/podinfo/service.yaml deleted file mode 100644 index 28f4ac9..0000000 --- a/apps/podinfo/service.yaml +++ /dev/null @@ -1,16 +0,0 @@ -apiVersion: v1 -kind: Service -metadata: - name: podinfo -spec: - type: ClusterIP - selector: - app: podinfo - ports: - - name: http - port: 9898 - targetPort: 9898 - - name: grpc - port: 9999 - targetPort: 9999 - protocol: TCP \ No newline at end of file diff --git a/apps/gluetun/kustomization.yaml b/apps/servarr/gluetun/kustomization.yaml similarity index 100% rename from apps/gluetun/kustomization.yaml rename to apps/servarr/gluetun/kustomization.yaml diff --git a/apps/gluetun/secret.yaml b/apps/servarr/gluetun/secret.yaml similarity index 100% rename from apps/gluetun/secret.yaml rename to apps/servarr/gluetun/secret.yaml diff --git a/apps/servarr/kustomization.yaml b/apps/servarr/kustomization.yaml new file mode 100644 index 0000000..a98d808 --- /dev/null +++ b/apps/servarr/kustomization.yaml @@ -0,0 +1,8 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: + - gluetun + - prowlarr + - sonarr + # - radarr + # - lidarr \ No newline at end of file diff --git a/apps/servarr/lidarr/deployment.yaml b/apps/servarr/lidarr/deployment.yaml new file mode 100644 index 0000000..564ba9e --- /dev/null +++ b/apps/servarr/lidarr/deployment.yaml @@ -0,0 +1,69 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: lidarr +spec: + minReadySeconds: 3 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 60 + strategy: + type: Recreate + selector: + matchLabels: + app: lidarr + template: + metadata: + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9797" + labels: + app: sonarr + spec: + containers: + - image: ghcr.io/qdm12/gluetun:latest + name: gluetun + imagePullPolicy: Always + securityContext: + capabilities: + add: ["NET_ADMIN"] + ports: + - containerPort: 8989 + envFrom: + - secretRef: + name: gluetun-env + resources: + limits: + cpu: 250m + memory: 500Mi + requests: + cpu: 10m + memory: 64Mi + - name: lidarr + image: lscr.io/linuxserver/lidarr:4.0.8 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + resources: + limits: + cpu: 1000m + memory: 2Gi + requests: + cpu: 10m + memory: 64Mi + volumeMounts: + - name: config + mountPath: /config + volumes: + - name: config + persistentVolumeClaim: + claimName: lidarr \ No newline at end of file diff --git a/apps/podinfo/ingress.yaml b/apps/servarr/lidarr/ingress.yaml similarity index 70% rename from apps/podinfo/ingress.yaml rename to apps/servarr/lidarr/ingress.yaml index 26b5344..d901f78 100644 --- a/apps/podinfo/ingress.yaml +++ b/apps/servarr/lidarr/ingress.yaml @@ -1,16 +1,16 @@ apiVersion: traefik.io/v1alpha1 kind: IngressRoute metadata: - name: podinfo + name: lidarr spec: entryPoints: - web routes: - - match: Host(`podinfo.k3s`) + - match: Host(`lidarr.k3s`) kind: Rule services: - - name: podinfo + - name: lidarr namespace: apps nativeLB: true kind: Service - port: 9898 \ No newline at end of file + port: 8989 \ No newline at end of file diff --git a/apps/sonarr/kustomization.yaml b/apps/servarr/lidarr/kustomization.yaml similarity index 100% rename from apps/sonarr/kustomization.yaml rename to apps/servarr/lidarr/kustomization.yaml diff --git a/apps/servarr/lidarr/pvc.yaml b/apps/servarr/lidarr/pvc.yaml new file mode 100644 index 0000000..5f27acc --- /dev/null +++ b/apps/servarr/lidarr/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: lidarr +spec: + accessModes: + - ReadWriteOncePod + storageClassName: local-path + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/apps/servarr/lidarr/service.yaml b/apps/servarr/lidarr/service.yaml new file mode 100644 index 0000000..ef0af81 --- /dev/null +++ b/apps/servarr/lidarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: lidarr +spec: + type: ClusterIP + selector: + app: lidarr + ports: + - name: http + port: 8989 + targetPort: 8989 \ No newline at end of file diff --git a/apps/servarr/prowlarr/deployment.yaml b/apps/servarr/prowlarr/deployment.yaml new file mode 100644 index 0000000..351a1e5 --- /dev/null +++ b/apps/servarr/prowlarr/deployment.yaml @@ -0,0 +1,69 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: prowlarr +spec: + minReadySeconds: 3 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 60 + strategy: + type: Recreate + selector: + matchLabels: + app: prowlarr + template: + metadata: + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9797" + labels: + app: prowlarr + spec: + containers: + - image: ghcr.io/qdm12/gluetun:latest + name: gluetun + imagePullPolicy: Always + securityContext: + capabilities: + add: ["NET_ADMIN"] + ports: + - containerPort: 8989 + envFrom: + - secretRef: + name: gluetun-env + resources: + limits: + cpu: 250m + memory: 500Mi + requests: + cpu: 10m + memory: 64Mi + - name: prowlarr + image: lscr.io/linuxserver/prowlarr:4.0.8 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + resources: + limits: + cpu: 1000m + memory: 2Gi + requests: + cpu: 10m + memory: 64Mi + volumeMounts: + - name: config + mountPath: /config + volumes: + - name: config + persistentVolumeClaim: + claimName: prowlarr \ No newline at end of file diff --git a/apps/servarr/prowlarr/ingress.yaml b/apps/servarr/prowlarr/ingress.yaml new file mode 100644 index 0000000..a841d42 --- /dev/null +++ b/apps/servarr/prowlarr/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: prowlarr +spec: + entryPoints: + - web + routes: + - match: Host(`prowlarr.k3s`) + kind: Rule + services: + - name: prowlarr + namespace: apps + nativeLB: true + kind: Service + port: 8989 \ No newline at end of file diff --git a/apps/podinfo/kustomization.yaml b/apps/servarr/prowlarr/kustomization.yaml similarity index 81% rename from apps/podinfo/kustomization.yaml rename to apps/servarr/prowlarr/kustomization.yaml index 6421176..239af0a 100644 --- a/apps/podinfo/kustomization.yaml +++ b/apps/servarr/prowlarr/kustomization.yaml @@ -1,6 +1,7 @@ apiVersion: kustomize.config.k8s.io/v1beta1 kind: Kustomization resources: +- pvc.yaml - deployment.yaml - service.yaml -- ingress.yaml +- ingress.yaml \ No newline at end of file diff --git a/apps/servarr/prowlarr/pvc.yaml b/apps/servarr/prowlarr/pvc.yaml new file mode 100644 index 0000000..55cfaaf --- /dev/null +++ b/apps/servarr/prowlarr/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: prowlarr +spec: + accessModes: + - ReadWriteOncePod + storageClassName: local-path + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/apps/servarr/prowlarr/service.yaml b/apps/servarr/prowlarr/service.yaml new file mode 100644 index 0000000..ba025c4 --- /dev/null +++ b/apps/servarr/prowlarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: prowlarr +spec: + type: ClusterIP + selector: + app: prowlarr + ports: + - name: http + port: 8989 + targetPort: 8989 \ No newline at end of file diff --git a/apps/servarr/radarr/deployment.yaml b/apps/servarr/radarr/deployment.yaml new file mode 100644 index 0000000..1de30f8 --- /dev/null +++ b/apps/servarr/radarr/deployment.yaml @@ -0,0 +1,69 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: radarr +spec: + minReadySeconds: 3 + revisionHistoryLimit: 5 + progressDeadlineSeconds: 60 + strategy: + type: Recreate + selector: + matchLabels: + app: radarr + template: + metadata: + annotations: + prometheus.io/scrape: "true" + prometheus.io/port: "9797" + labels: + app: radarr + spec: + containers: + - image: ghcr.io/qdm12/gluetun:latest + name: gluetun + imagePullPolicy: Always + securityContext: + capabilities: + add: ["NET_ADMIN"] + ports: + - containerPort: 8989 + envFrom: + - secretRef: + name: gluetun-env + resources: + limits: + cpu: 250m + memory: 500Mi + requests: + cpu: 10m + memory: 64Mi + - name: radarr + image: lscr.io/linuxserver/radarr:4.0.8 + imagePullPolicy: IfNotPresent + livenessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + readinessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 5 + timeoutSeconds: 5 + resources: + limits: + cpu: 1000m + memory: 2Gi + requests: + cpu: 10m + memory: 64Mi + volumeMounts: + - name: config + mountPath: /config + volumes: + - name: config + persistentVolumeClaim: + claimName: radarr \ No newline at end of file diff --git a/apps/servarr/radarr/ingress.yaml b/apps/servarr/radarr/ingress.yaml new file mode 100644 index 0000000..0e6ee51 --- /dev/null +++ b/apps/servarr/radarr/ingress.yaml @@ -0,0 +1,16 @@ +apiVersion: traefik.io/v1alpha1 +kind: IngressRoute +metadata: + name: radarr +spec: + entryPoints: + - web + routes: + - match: Host(`radarr.k3s`) + kind: Rule + services: + - name: radarr + namespace: apps + nativeLB: true + kind: Service + port: 8989 \ No newline at end of file diff --git a/apps/servarr/radarr/kustomization.yaml b/apps/servarr/radarr/kustomization.yaml new file mode 100644 index 0000000..239af0a --- /dev/null +++ b/apps/servarr/radarr/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- pvc.yaml +- deployment.yaml +- service.yaml +- ingress.yaml \ No newline at end of file diff --git a/apps/servarr/radarr/pvc.yaml b/apps/servarr/radarr/pvc.yaml new file mode 100644 index 0000000..5c898ed --- /dev/null +++ b/apps/servarr/radarr/pvc.yaml @@ -0,0 +1,11 @@ +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: radarr +spec: + accessModes: + - ReadWriteOncePod + storageClassName: local-path + resources: + requests: + storage: 5Gi \ No newline at end of file diff --git a/apps/servarr/radarr/service.yaml b/apps/servarr/radarr/service.yaml new file mode 100644 index 0000000..fbea36b --- /dev/null +++ b/apps/servarr/radarr/service.yaml @@ -0,0 +1,12 @@ +apiVersion: v1 +kind: Service +metadata: + name: radarr +spec: + type: ClusterIP + selector: + app: radarr + ports: + - name: http + port: 8989 + targetPort: 8989 \ No newline at end of file diff --git a/apps/sonarr/deployment.yaml b/apps/servarr/sonarr/deployment.yaml similarity index 100% rename from apps/sonarr/deployment.yaml rename to apps/servarr/sonarr/deployment.yaml diff --git a/apps/sonarr/ingress.yaml b/apps/servarr/sonarr/ingress.yaml similarity index 100% rename from apps/sonarr/ingress.yaml rename to apps/servarr/sonarr/ingress.yaml diff --git a/apps/servarr/sonarr/kustomization.yaml b/apps/servarr/sonarr/kustomization.yaml new file mode 100644 index 0000000..239af0a --- /dev/null +++ b/apps/servarr/sonarr/kustomization.yaml @@ -0,0 +1,7 @@ +apiVersion: kustomize.config.k8s.io/v1beta1 +kind: Kustomization +resources: +- pvc.yaml +- deployment.yaml +- service.yaml +- ingress.yaml \ No newline at end of file diff --git a/apps/sonarr/pvc.yaml b/apps/servarr/sonarr/pvc.yaml similarity index 100% rename from apps/sonarr/pvc.yaml rename to apps/servarr/sonarr/pvc.yaml diff --git a/apps/sonarr/service.yaml b/apps/servarr/sonarr/service.yaml similarity index 100% rename from apps/sonarr/service.yaml rename to apps/servarr/sonarr/service.yaml