diff --git a/.gitignore b/.gitignore index 3e58935..71b8d17 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ +.secret/* */.secret diff --git a/k8s_manifests/bazarr/deployment.yaml b/k8s_manifests/bazarr/deployment.yaml index 7e3cf00..ad0fc51 100644 --- a/k8s_manifests/bazarr/deployment.yaml +++ b/k8s_manifests/bazarr/deployment.yaml @@ -17,14 +17,22 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - name: config - persistentVolumeClaim: - claimName: config-bazarr + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/bazarr containers: - name: bazarr image: ghcr.io/hotio/bazarr:latest + livenessProbe: + httpGet: + path: / + port: 6767 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 env: - name: PUID value: "1000" diff --git a/k8s_manifests/flaresolverr/deployment.yaml b/k8s_manifests/flaresolverr/deployment.yaml index 5a6c6fd..7c90ade 100644 --- a/k8s_manifests/flaresolverr/deployment.yaml +++ b/k8s_manifests/flaresolverr/deployment.yaml @@ -17,6 +17,13 @@ spec: containers: - name: flaresolverr image: ghcr.io/flaresolverr/flaresolverr:latest + livenessProbe: + httpGet: + path: / + port: 8191 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 env: - name: LOG_LEVEL value: info diff --git a/k8s_manifests/ingress.yaml b/k8s_manifests/ingress.yaml index 62e1646..1d8534b 100644 --- a/k8s_manifests/ingress.yaml +++ b/k8s_manifests/ingress.yaml @@ -1,9 +1,40 @@ +--- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: main-ingress spec: rules: + - host: "truenas.local" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: svc-truenas + port: + number: 443 + - host: "tdarr.local" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: svc-tdarr + port: + number: 80 + - host: "slskd.local" + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: svc-slskd + port: + number: 80 - host: "bazarr.local" http: paths: diff --git a/k8s_manifests/lidarr/deployment.yaml b/k8s_manifests/lidarr/deployment.yaml index c0fa7f5..84c9fb7 100644 --- a/k8s_manifests/lidarr/deployment.yaml +++ b/k8s_manifests/lidarr/deployment.yaml @@ -17,13 +17,21 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - name: config - persistentVolumeClaim: - claimName: config-lidarr + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/lidarr containers: - name: lidarr + livenessProbe: + httpGet: + path: /ping + port: 8686 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 image: ghcr.io/hotio/lidarr:latest env: - name: PUID diff --git a/k8s_manifests/plex/deployment.yaml b/k8s_manifests/plex/deployment.yaml index 09355fb..627f687 100644 --- a/k8s_manifests/plex/deployment.yaml +++ b/k8s_manifests/plex/deployment.yaml @@ -17,17 +17,23 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - - name: transcode - persistentVolumeClaim: - claimName: transcode-plex - name: config - persistentVolumeClaim: - claimName: config-plex + nfs: + path: /mnt/test1/media/config/plex + server: 192.168.0.99 containers: - name: plex image: ghcr.io/hotio/plex:latest + livenessProbe: + httpGet: + path: /identity + port: 32400 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 + env: - name: PUID value: "1000" @@ -51,8 +57,6 @@ spec: volumeMounts: - name: config mountPath: /config - - name: transcode - mountPath: /transcode - name: nfs-vol mountPath: /media diff --git a/k8s_manifests/plex/service.yaml b/k8s_manifests/plex/service.yaml index 4fb8bdb..1fe22fe 100644 --- a/k8s_manifests/plex/service.yaml +++ b/k8s_manifests/plex/service.yaml @@ -10,5 +10,17 @@ spec: protocol: TCP port: 80 targetPort: 32400 - - +--- +apiVersion: v1 +kind: Service +metadata: + name: svc-plex-lb +spec: + type: NodePort + selector: + app.kubernetes.io/name: plex + ports: + - name: plex + protocol: TCP + port: 32400 + diff --git a/k8s_manifests/prowlarr/deployment.yaml b/k8s_manifests/prowlarr/deployment.yaml index 142af4e..600aded 100644 --- a/k8s_manifests/prowlarr/deployment.yaml +++ b/k8s_manifests/prowlarr/deployment.yaml @@ -16,11 +16,19 @@ spec: spec: volumes: - name: config - persistentVolumeClaim: - claimName: config-prowlarr + nfs: + path: /mnt/test1/media/config/prowlarr + server: 192.168.0.99 containers: - name: prowlarr image: ghcr.io/hotio/prowlarr:latest + livenessProbe: + httpGet: + path: /ping + port: 9696 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 3 env: - name: PUID value: "1000" diff --git a/k8s_manifests/pvc/.DS_Store b/k8s_manifests/pvc/.DS_Store new file mode 100644 index 0000000..5008ddf Binary files /dev/null and b/k8s_manifests/pvc/.DS_Store differ diff --git a/k8s_manifests/pvc/tdarr.yaml b/k8s_manifests/pvc/tdarr.yaml new file mode 100644 index 0000000..6d20ea7 --- /dev/null +++ b/k8s_manifests/pvc/tdarr.yaml @@ -0,0 +1,9 @@ +--- +apiVersion: v1 +kind: PersistentVolumeClaim +metadata: + name: transcode-tdarr +spec: + accessModes: [ReadWriteOnce] + resources: { requests: { storage: 16Gi } } + diff --git a/k8s_manifests/qbittorrent/deployment.yaml b/k8s_manifests/qbittorrent/deployment.yaml index da8356d..4aa10ad 100644 --- a/k8s_manifests/qbittorrent/deployment.yaml +++ b/k8s_manifests/qbittorrent/deployment.yaml @@ -17,14 +17,23 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - name: config - persistentVolumeClaim: - claimName: config-qbittorrent + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/qbittorrent/ containers: - name: qbittorrent image: ghcr.io/hotio/qbittorrent:latest + livenessProbe: #untested + httpGet: + path: / + port: 8080 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 + env: - name: PUID value: "1000" diff --git a/k8s_manifests/radarr/deployment.yaml b/k8s_manifests/radarr/deployment.yaml index 767d059..ea39766 100644 --- a/k8s_manifests/radarr/deployment.yaml +++ b/k8s_manifests/radarr/deployment.yaml @@ -17,14 +17,22 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - name: config - persistentVolumeClaim: - claimName: config-radarr + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/ containers: - name: radarr image: ghcr.io/hotio/radarr:latest + livenessProbe: + httpGet: + path: /ping + port: 7878 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 env: - name: PUID value: "1000" diff --git a/k8s_manifests/slskd/deployment.yaml b/k8s_manifests/slskd/deployment.yaml new file mode 100644 index 0000000..5c1e0c6 --- /dev/null +++ b/k8s_manifests/slskd/deployment.yaml @@ -0,0 +1,41 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: slskd + labels: + app.kubernetes.io/name: slskd +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: slskd + template: + metadata: + labels: + app.kubernetes.io/name: slskd + spec: + volumes: + - name: nfs-vol + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/Music + - name: config + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/slskd/ + containers: + - name: slskd + image: slskd/slskd:latest + env: + - name: SLSKD_REMOTE_CONFIGURATION + value: "true" + ports: + - containerPort: 5030 + - containerPort: 5031 + - containerPort: 50300 + volumeMounts: + - name: config + mountPath: /config + - name: nfs-vol + mountPath: /app + diff --git a/k8s_manifests/slskd/service.yaml b/k8s_manifests/slskd/service.yaml new file mode 100644 index 0000000..5038c88 --- /dev/null +++ b/k8s_manifests/slskd/service.yaml @@ -0,0 +1,14 @@ +apiVersion: v1 +kind: Service +metadata: + name: svc-slskd +spec: + selector: + app.kubernetes.io/name: slskd + ports: + - name: webui + protocol: TCP + port: 80 + targetPort: 5030 + + diff --git a/k8s_manifests/sonarr/deployment.yaml b/k8s_manifests/sonarr/deployment.yaml index 25f0173..134eb3f 100644 --- a/k8s_manifests/sonarr/deployment.yaml +++ b/k8s_manifests/sonarr/deployment.yaml @@ -17,14 +17,22 @@ spec: volumes: - name: nfs-vol nfs: - server: 192.168.0.114 + server: 192.168.0.99 path: /mnt/test1/media/ - name: config - persistentVolumeClaim: - claimName: config-sonarr + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/sonarr/ containers: - name: sonarr image: ghcr.io/hotio/sonarr:latest + livenessProbe: + httpGet: + path: /ping + port: 8989 + initialDelaySeconds: 60 + failureThreshold: 6 + periodSeconds: 10 env: - name: PUID value: "1000" diff --git a/k8s_manifests/soularr/deployment.yaml b/k8s_manifests/soularr/deployment.yaml new file mode 100644 index 0000000..b2bc56b --- /dev/null +++ b/k8s_manifests/soularr/deployment.yaml @@ -0,0 +1,52 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: soularr + labels: + app.kubernetes.io/name: soularr +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: soularr + template: + metadata: + labels: + app.kubernetes.io/name: soularr + spec: + volumes: + - name: nfs-vol + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/Music + - name: config + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/soularr/ + containers: + - name: soularr + image: mrusse08/soularr:latest + #livenessProbe: + #httpGet: + # path: / + # port: 8989 + #initialDelaySeconds: 60 + #failureThreshold: 6 + #periodSeconds: 10 + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: UMASK + value: "002" + - name: SCRIPT_INTERVAL + value: "300" + - name: TZ + value: "Etc/UTC" + volumeMounts: + - name: config + mountPath: /data + - name: nfs-vol + mountPath: /media + diff --git a/k8s_manifests/tdarr/deployment.yaml b/k8s_manifests/tdarr/deployment.yaml new file mode 100644 index 0000000..3950813 --- /dev/null +++ b/k8s_manifests/tdarr/deployment.yaml @@ -0,0 +1,87 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: tdarr + labels: + app.kubernetes.io/name: tdarr +spec: + replicas: 1 + selector: + matchLabels: + app.kubernetes.io/name: tdarr + template: + metadata: + labels: + app.kubernetes.io/name: tdarr + spec: + volumes: + #- name: transcode + # persistentVolumeClaim: + # claimName: transcode-tdarr + - name: nfs-vol + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/ + - name: server + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/tdarr/server + + - name: configs + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/tdarr/configs + + - name: logs + nfs: + server: 192.168.0.99 + path: /mnt/test1/media/config/tdarr/logs + containers: + - name: tdarr + image: ghcr.io/haveagitgat/tdarr:latest + #TODO +# livenessProbe: +# httpGet: +# path: /ping +# port: 8989 +# initialDelaySeconds: 60 +# failureThreshold: 6 +# periodSeconds: 10 + env: + - name: serverIP + value: "0.0.0.0" + - name: serverPort + value: "8266" + - name: webUIPort + value: "8265" + - name: internalNode + value: "true" + - name: inContainer + value: "true" + - name: ffmpegVersion + value: "6" + - name: nodeName + value: "myInternalNode" + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: UMASK + value: "002" + - name: TZ + value: "Etc/UTC" + ports: + - containerPort: 8265 + - containerPort: 8266 + volumeMounts: + - name: configs + mountPath: /app/configs + - name: logs + mountPath: /app/logs + - name: server + mountPath: /app/server + - name: nfs-vol + mountPath: /media + #- name: transcode + # mountPath: /temp + diff --git a/k8s_manifests/tdarr/service.yaml b/k8s_manifests/tdarr/service.yaml new file mode 100644 index 0000000..3dcd02a --- /dev/null +++ b/k8s_manifests/tdarr/service.yaml @@ -0,0 +1,18 @@ +apiVersion: v1 +kind: Service +metadata: + name: svc-tdarr +spec: + selector: + app.kubernetes.io/name: tdarr + ports: + - name: webui + protocol: TCP + port: 80 + targetPort: 8265 + - name: server + protocol: TCP + port: 8266 + targetPort: 8266 + +