Init Ahoy
This commit is contained in:
commit
19db3f90f4
51 changed files with 2184 additions and 0 deletions
3
.gitignore
vendored
Normal file
3
.gitignore
vendored
Normal file
|
@ -0,0 +1,3 @@
|
||||||
|
secrets
|
||||||
|
loadBalancer/middlewares/umami/
|
||||||
|
docker-compose.yml
|
77
alaskarTV/alaskarfin/deployment.yaml
Normal file
77
alaskarTV/alaskarfin/deployment.yaml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyfin
|
||||||
|
name: jellyfin
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: jellyfin
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyfin
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: master
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: NVIDIA_VISIBLE_DEVICES
|
||||||
|
value: all # Make all GPUs visible
|
||||||
|
- name: NVIDIA_DRIVER_CAPABILITIES
|
||||||
|
value: all # Required for Jellyfin hardware acceleration
|
||||||
|
image: nomadics/alaskarfin:latest
|
||||||
|
name: jellyfin
|
||||||
|
ports:
|
||||||
|
- containerPort: 8096
|
||||||
|
protocol: TCP
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
nvidia.com/gpu: 1
|
||||||
|
requests:
|
||||||
|
nvidia.com/gpu: 1
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellyarr/jellyfin_config
|
||||||
|
- mountPath: /data/tvshows
|
||||||
|
name: ssd
|
||||||
|
subPath: tvshows
|
||||||
|
- mountPath: /data/movies
|
||||||
|
name: ssd
|
||||||
|
subPath: movies
|
||||||
|
- mountPath: /data/anime
|
||||||
|
name: ssd
|
||||||
|
subPath: anime
|
||||||
|
- mountPath: /data/books/audiobooks
|
||||||
|
name: ssd
|
||||||
|
subPath: books/audiobooks
|
||||||
|
- mountPath: /data/books/ebooks
|
||||||
|
name: ssd
|
||||||
|
subPath: books/ebooks
|
||||||
|
- mountPath: /data/HDD/media
|
||||||
|
name: hdd
|
||||||
|
restartPolicy: Always
|
||||||
|
runtimeClassName: nvidia
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
14
alaskarTV/alaskarfin/service.yaml
Normal file
14
alaskarTV/alaskarfin/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyfin
|
||||||
|
name: jellyfin
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "8096"
|
||||||
|
port: 8096
|
||||||
|
targetPort: 8096
|
||||||
|
selector:
|
||||||
|
io.kompose.service: jellyfin
|
51
alaskarTV/alaskarseer/deployment.yaml
Normal file
51
alaskarTV/alaskarseer/deployment.yaml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 1m"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyseerr
|
||||||
|
name: jellyseerr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: jellyseerr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyseerr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: JELLYFIN_TYPE
|
||||||
|
value: jellyfin
|
||||||
|
- name: LOG_LEVEL
|
||||||
|
value: debug
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: nomadics/alaskarseer:latest
|
||||||
|
name: jellyseerr
|
||||||
|
ports:
|
||||||
|
- containerPort: 5055
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellyarr/jellyseerr_config
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
14
alaskarTV/alaskarseer/service.yaml
Normal file
14
alaskarTV/alaskarseer/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellyseerr
|
||||||
|
name: jellyseerr
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "5055"
|
||||||
|
port: 5055
|
||||||
|
targetPort: 5055
|
||||||
|
selector:
|
||||||
|
io.kompose.service: jellyseerr
|
47
alaskarTV/alaskartv-api/deployment.yaml
Normal file
47
alaskarTV/alaskartv-api/deployment.yaml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: api-server
|
||||||
|
labels:
|
||||||
|
app: api-server
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: api-server
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: api-server
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: master
|
||||||
|
containers:
|
||||||
|
- name: api-server
|
||||||
|
image: docker.io/nomadics/api-forge:latest
|
||||||
|
imagePullPolicy: Never
|
||||||
|
ports:
|
||||||
|
- containerPort: 8080
|
||||||
|
env:
|
||||||
|
- name: GIT_USERNAME
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: api-server-secrets
|
||||||
|
key: GIT_USERNAME
|
||||||
|
- name: GIT_EMAIL
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: api-server-secrets
|
||||||
|
key: GIT_EMAIL
|
||||||
|
volumeMounts:
|
||||||
|
- name: alaskartv-data
|
||||||
|
mountPath: /data/alaskartv-forge
|
||||||
|
- name: alaskartv-ssh
|
||||||
|
mountPath: /home/appuser/.ssh
|
||||||
|
volumes:
|
||||||
|
- name: alaskartv-data
|
||||||
|
hostPath:
|
||||||
|
path: /home/sager/alaskartv-forge
|
||||||
|
- name: alaskartv-ssh
|
||||||
|
hostPath:
|
||||||
|
path: /home/sager/.ssh
|
14
alaskarTV/alaskartv-api/service.yaml
Normal file
14
alaskarTV/alaskartv-api/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: api-server
|
||||||
|
labels:
|
||||||
|
app: api-server
|
||||||
|
spec:
|
||||||
|
type: LoadBalancer
|
||||||
|
ports:
|
||||||
|
- port: 9090
|
||||||
|
targetPort: 8080
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
app: api-server
|
16
alaskarTV/arr-database/configmap.yaml
Normal file
16
alaskarTV/arr-database/configmap.yaml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: postgres-init-script
|
||||||
|
data:
|
||||||
|
create-databases.sh: |
|
||||||
|
#!/bin/bash
|
||||||
|
psql -U postgres <<-EOSQL
|
||||||
|
CREATE DATABASE "radarr-log";
|
||||||
|
CREATE DATABASE "sonarr-main";
|
||||||
|
CREATE DATABASE "sonarr-log";
|
||||||
|
CREATE DATABASE "bazarr"
|
||||||
|
CREATE DATABASE "prowlarr-main";
|
||||||
|
CREATE DATABASE "prowlarr-log";
|
||||||
|
EOSQL
|
||||||
|
---
|
77
alaskarTV/arr-database/deployment.yaml
Normal file
77
alaskarTV/arr-database/deployment.yaml
Normal file
|
@ -0,0 +1,77 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: arr-db
|
||||||
|
name: arr-db
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: arr-db
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: arr-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: radarr-main
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: postgres-secrets
|
||||||
|
key: postgres-password
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: postgres-secrets
|
||||||
|
key: postgres-user
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: postgres:15.2
|
||||||
|
name: arr-db
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /docker-entrypoint-initdb.d
|
||||||
|
name: init-script
|
||||||
|
- mountPath: /var/lib/postgresql/data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/databases/arrdatabase
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: init-script
|
||||||
|
configMap:
|
||||||
|
name: postgres-init-script
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
---
|
||||||
|
# apiVersion: v1
|
||||||
|
# kind: Pod
|
||||||
|
# metadata:
|
||||||
|
# name: migration-pod
|
||||||
|
# labels:
|
||||||
|
# app: migration-pod
|
||||||
|
# spec:
|
||||||
|
# containers:
|
||||||
|
# - name: migration
|
||||||
|
# image: ubuntu:latest
|
||||||
|
# command: ["/bin/bash"]
|
||||||
|
# args: ["-c", "apt-get update && apt-get install -y pgloader && sleep infinity"]
|
||||||
|
# volumeMounts:
|
||||||
|
# - mountPath: /data/configs
|
||||||
|
# name: ssd
|
||||||
|
# subPath: configs
|
||||||
|
# volumes:
|
||||||
|
# - name: ssd
|
||||||
|
# persistentVolumeClaim:
|
||||||
|
# claimName: nfs-ssd-pvc
|
||||||
|
# restartPolicy: Never
|
||||||
|
#
|
||||||
|
---
|
14
alaskarTV/arr-database/service.yaml
Normal file
14
alaskarTV/arr-database/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: arr-db
|
||||||
|
labels:
|
||||||
|
io.kompose.service: arr-db
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 5433
|
||||||
|
targetPort: 5432
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
io.kompose.service: arr-db
|
59
alaskarTV/audiobookshelf/deployment.yaml
Normal file
59
alaskarTV/audiobookshelf/deployment.yaml
Normal file
|
@ -0,0 +1,59 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: audiobookshelf
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: audiobookshelf
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: audiobookshelf
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: master
|
||||||
|
containers:
|
||||||
|
- name: audiobookshelf
|
||||||
|
image: ghcr.io/advplyr/audiobookshelf:latest
|
||||||
|
ports:
|
||||||
|
- containerPort: 80
|
||||||
|
env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/audiobookshelf/config
|
||||||
|
- mountPath: /metadata
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/audiobookshelf/metadata
|
||||||
|
- mountPath: /audiobooks
|
||||||
|
subPath: books/audiobooks
|
||||||
|
name: ssd
|
||||||
|
- mountPath: /books
|
||||||
|
subPath: books/books
|
||||||
|
name: ssd
|
||||||
|
- mountPath: /podcasts
|
||||||
|
subPath: books/podcasts
|
||||||
|
name: ssd
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
10
alaskarTV/audiobookshelf/service.yaml
Normal file
10
alaskarTV/audiobookshelf/service.yaml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: audiobookshelf
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: audiobookshelf
|
||||||
|
ports:
|
||||||
|
- port: 13378
|
||||||
|
targetPort: 80
|
64
alaskarTV/bazarr/deployment.yaml
Normal file
64
alaskarTV/bazarr/deployment.yaml
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: bazarr
|
||||||
|
name: bazarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: bazarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: bazarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: DOCKER_MODS
|
||||||
|
value: wayller/bazarr-mod-subsync:latest
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: linuxserver/bazarr:latest
|
||||||
|
name: bazarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 6767
|
||||||
|
protocol: TCP
|
||||||
|
lifecycle:
|
||||||
|
postStart:
|
||||||
|
exec:
|
||||||
|
command: ["/bin/sh", "-c", "cp /config/batch_sync.py / && pip install colorama tqdm autosubsync"]
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/trackers/bazarr_config
|
||||||
|
- mountPath: /tvshows
|
||||||
|
name: ssd
|
||||||
|
subPath: tvshows
|
||||||
|
- mountPath: /movies
|
||||||
|
name: ssd
|
||||||
|
subPath: movies
|
||||||
|
- mountPath: /anime
|
||||||
|
name: ssd
|
||||||
|
subPath: anime
|
||||||
|
- mountPath: /data/HDD/media
|
||||||
|
name: hdd
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
14
alaskarTV/bazarr/service.yaml
Normal file
14
alaskarTV/bazarr/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: bazarr
|
||||||
|
name: bazarr
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "6767"
|
||||||
|
port: 6767
|
||||||
|
targetPort: 6767
|
||||||
|
selector:
|
||||||
|
io.kompose.service: bazarr
|
61
alaskarTV/download-client/transmission/deployment.yaml
Normal file
61
alaskarTV/download-client/transmission/deployment.yaml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: transmission
|
||||||
|
name: transmission
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: transmission
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: transmission
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PASS
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: dl-secrets
|
||||||
|
key: password
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: dl-secrets
|
||||||
|
key: user
|
||||||
|
image: lscr.io/linuxserver/transmission:latest
|
||||||
|
name: transmission
|
||||||
|
ports:
|
||||||
|
- containerPort: 9091
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 51413
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 51413
|
||||||
|
protocol: UDP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/download-stack/transmission
|
||||||
|
- mountPath: /downloads
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
22
alaskarTV/download-client/transmission/service.yaml
Normal file
22
alaskarTV/download-client/transmission/service.yaml
Normal file
|
@ -0,0 +1,22 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: transmission
|
||||||
|
name: transmission
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "http-9091"
|
||||||
|
port: 9091
|
||||||
|
targetPort: 9091
|
||||||
|
- name: "tcp-51413"
|
||||||
|
port: 51413
|
||||||
|
targetPort: 51413
|
||||||
|
- name: 51413-udp
|
||||||
|
port: 51413
|
||||||
|
protocol: UDP
|
||||||
|
targetPort: 51413
|
||||||
|
selector:
|
||||||
|
io.kompose.service: transmission
|
||||||
|
|
87
alaskarTV/download-client/unpackerr/deployment.yaml
Normal file
87
alaskarTV/download-client/unpackerr/deployment.yaml
Normal file
|
@ -0,0 +1,87 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: unpackerr
|
||||||
|
name: unpackerr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: unpackerr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: unpackerr
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: master
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: UN_DEBUG
|
||||||
|
value: "false"
|
||||||
|
- name: UN_DIR_MODE
|
||||||
|
value: "0755"
|
||||||
|
- name: UN_FILE_MODE
|
||||||
|
value: "0644"
|
||||||
|
- name: UN_INTERVAL
|
||||||
|
value: 2m
|
||||||
|
- name: UN_LOG_FILE
|
||||||
|
- name: UN_LOG_FILES
|
||||||
|
value: "10"
|
||||||
|
- name: UN_LOG_FILE_MB
|
||||||
|
value: "10"
|
||||||
|
- name: UN_MAX_RETRIES
|
||||||
|
value: "3"
|
||||||
|
- name: UN_PARALLEL
|
||||||
|
value: "1"
|
||||||
|
- name: UN_RADARR_0_API_KEY
|
||||||
|
value: 5bdad7cc4f33443bafefb5e185b3e0e7
|
||||||
|
- name: UN_RADARR_0_DELETE_DELAY
|
||||||
|
value: 5m
|
||||||
|
- name: UN_RADARR_0_DELETE_ORIG
|
||||||
|
value: "false"
|
||||||
|
- name: UN_RADARR_0_PATHS_0
|
||||||
|
value: /downloads
|
||||||
|
- name: UN_RADARR_0_PROTOCOLS
|
||||||
|
value: torrent
|
||||||
|
- name: UN_RADARR_0_TIMEOUT
|
||||||
|
value: 10s
|
||||||
|
- name: UN_RADARR_0_URL
|
||||||
|
value: http://radarr:7878
|
||||||
|
- name: UN_RETRY_DELAY
|
||||||
|
value: 5m
|
||||||
|
- name: UN_SONARR_0_API_KEY
|
||||||
|
value: d973448580d041b7ba7e576a7aed9b11
|
||||||
|
- name: UN_SONARR_0_DELETE_DELAY
|
||||||
|
value: 5m
|
||||||
|
- name: UN_SONARR_0_DELETE_ORIG
|
||||||
|
value: "false"
|
||||||
|
- name: UN_SONARR_0_PATHS_0
|
||||||
|
value: /downloads
|
||||||
|
- name: UN_SONARR_0_PROTOCOLS
|
||||||
|
value: torrent
|
||||||
|
- name: UN_SONARR_0_TIMEOUT
|
||||||
|
value: 10s
|
||||||
|
- name: UN_SONARR_0_URL
|
||||||
|
value: http://sonarr:8989
|
||||||
|
- name: UN_START_DELAY
|
||||||
|
value: 1m
|
||||||
|
image: golift/unpackerr
|
||||||
|
name: unpackerr
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /downloads
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
51
alaskarTV/extras/diun/deployment.yaml
Normal file
51
alaskarTV/extras/diun/deployment.yaml
Normal file
|
@ -0,0 +1,51 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: diun
|
||||||
|
name: diun
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: diun
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: diun
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- args:
|
||||||
|
- serve
|
||||||
|
env:
|
||||||
|
- name: LOG_JSON
|
||||||
|
value: "false"
|
||||||
|
- name: LOG_LEVEL
|
||||||
|
value: info
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: crazymax/diun:latest
|
||||||
|
name: diun
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/diun/data
|
||||||
|
- mountPath: /diun.yml
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/diun/data/diun.yml
|
||||||
|
readOnly: true
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
47
alaskarTV/extras/searcharr/deployment.yaml
Normal file
47
alaskarTV/extras/searcharr/deployment.yaml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: searcharr
|
||||||
|
name: searcharr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: searcharr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: searcharr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: toddrob/searcharr:latest
|
||||||
|
name: searcharr
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/searcharr/data
|
||||||
|
- mountPath: /app/logs
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/searcharr/logs
|
||||||
|
- mountPath: /app/settings.py
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/searcharr/settings.py
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
41
alaskarTV/extras/suggestarr/deployment.yaml
Normal file
41
alaskarTV/extras/suggestarr/deployment.yaml
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: suggestarr
|
||||||
|
name: suggestarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: suggestarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: suggestarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: ciuse99/suggestarr:latest
|
||||||
|
name: suggestarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 5000
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/config/config_files
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/searcharr/config_files
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
16
alaskarTV/extras/suggestarr/service.yaml
Normal file
16
alaskarTV/extras/suggestarr/service.yaml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: suggestarr
|
||||||
|
name: suggestarr
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: "5000"
|
||||||
|
port: 5000
|
||||||
|
targetPort: 5000
|
||||||
|
nodePort: 30005
|
||||||
|
selector:
|
||||||
|
io.kompose.service: suggestarr
|
||||||
|
|
106
alaskarTV/ingress.yaml
Normal file
106
alaskarTV/ingress.yaml
Normal file
|
@ -0,0 +1,106 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: media-services
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`askar.tv`) || Host(`www.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: jellyfin
|
||||||
|
port: 8096
|
||||||
|
- match: Host(`r.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: jellyseerr
|
||||||
|
port: 5055
|
||||||
|
- match: Host(`stats.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: jellystat
|
||||||
|
port: 3000
|
||||||
|
- match: Host(`sync.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: bazarr
|
||||||
|
port: 6767
|
||||||
|
- match: Host(`user.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: jfa-go
|
||||||
|
port: 8056
|
||||||
|
- match: Host(`pr.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
services:
|
||||||
|
- name: prowlarr
|
||||||
|
port: 9696
|
||||||
|
- match: Host(`rr.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
services:
|
||||||
|
- name: radarr
|
||||||
|
port: 7878
|
||||||
|
- match: Host(`sr.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
services:
|
||||||
|
- name: sonarr
|
||||||
|
port: 8989
|
||||||
|
- match: Host(`dl.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: transmission
|
||||||
|
port: 9091
|
||||||
|
- match: Host(`books.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: audiobookshelf
|
||||||
|
port: 13378
|
||||||
|
- match: Host(`apo.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
namespace: default
|
||||||
|
- name: digest-auth
|
||||||
|
services:
|
||||||
|
- name: api-server
|
||||||
|
port: 9090
|
||||||
|
tls:
|
||||||
|
certResolver: le
|
||||||
|
|
47
alaskarTV/jfa-go/deployment.yaml
Normal file
47
alaskarTV/jfa-go/deployment.yaml
Normal file
|
@ -0,0 +1,47 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jfa-go
|
||||||
|
name: jfa-go
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: jfa-go
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jfa-go
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: hrfee/jfa-go:latest
|
||||||
|
name: jfa-go
|
||||||
|
ports:
|
||||||
|
- containerPort: 8056
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jfa-go/config/jfa-go
|
||||||
|
- mountPath: /jf
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellyarr/jellyfin_config
|
||||||
|
- mountPath: /etc/localtime
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jfa-go/localtime
|
||||||
|
readOnly: true
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
14
alaskarTV/jfa-go/service.yaml
Normal file
14
alaskarTV/jfa-go/service.yaml
Normal file
|
@ -0,0 +1,14 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jfa-go
|
||||||
|
name: jfa-go
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "8056"
|
||||||
|
port: 8056
|
||||||
|
targetPort: 8056
|
||||||
|
selector:
|
||||||
|
io.kompose.service: jfa-go
|
64
alaskarTV/pv.yaml
Normal file
64
alaskarTV/pv.yaml
Normal file
|
@ -0,0 +1,64 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: nfs-ssd
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 3Ti
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
csi:
|
||||||
|
driver: nfs.csi.k8s.io
|
||||||
|
volumeHandle: nfs-ssd
|
||||||
|
volumeAttributes:
|
||||||
|
server: 192.168.0.200
|
||||||
|
share: /SSD/media
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: nfs-hdd
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 6Ti
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
csi:
|
||||||
|
driver: nfs.csi.k8s.io
|
||||||
|
volumeHandle: nfs-hdd
|
||||||
|
volumeAttributes:
|
||||||
|
server: 192.168.0.200
|
||||||
|
share: /HDD/media
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: nfs-ssd-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Ti
|
||||||
|
volumeName: nfs-ssd
|
||||||
|
storageClassName: ""
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: nfs-hdd-pvc
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 6Ti
|
||||||
|
volumeName: nfs-hdd
|
||||||
|
storageClassName: ""
|
||||||
|
---
|
||||||
|
|
114
alaskarTV/stats/deployment.yaml
Normal file
114
alaskarTV/stats/deployment.yaml
Normal file
|
@ -0,0 +1,114 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat
|
||||||
|
name: jellystat
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: jellystat
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: JWT_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: jwt
|
||||||
|
- name: POSTGRES_IP
|
||||||
|
value: jellystat-db
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-stats-password
|
||||||
|
- name: POSTGRES_PORT
|
||||||
|
value: "5432"
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-user
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: cyfershepard/jellystat:unstable
|
||||||
|
name: jellystat
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/backend/backup-data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellystat/backup-data
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat-db
|
||||||
|
name: jellystat-db
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: jellystat-db
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: jfstat
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-stats-password
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-user
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: postgres:15.2
|
||||||
|
name: jellystat-db
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/postgresql/data
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellystat/postgres-data
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
||||||
|
|
30
alaskarTV/stats/service.yaml
Normal file
30
alaskarTV/stats/service.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat
|
||||||
|
name: jellystat
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "3000"
|
||||||
|
port: 3000
|
||||||
|
targetPort: 3000
|
||||||
|
selector:
|
||||||
|
io.kompose.service: jellystat
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: jellystat-db
|
||||||
|
labels:
|
||||||
|
io.kompose.service: jellystat-db
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 5432
|
||||||
|
targetPort: 5432
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
io.kompose.service: jellystat-db
|
50
alaskarTV/trackers/prowlarr/deployment.yaml
Normal file
50
alaskarTV/trackers/prowlarr/deployment.yaml
Normal file
|
@ -0,0 +1,50 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: prowlarr
|
||||||
|
name: prowlarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: prowlarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: prowlarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: UMASK
|
||||||
|
value: "002"
|
||||||
|
image: ghcr.io/hotio/prowlarr
|
||||||
|
name: prowlarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 9696
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/trackers/prowlarr_config
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
15
alaskarTV/trackers/prowlarr/service.yaml
Normal file
15
alaskarTV/trackers/prowlarr/service.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: prowlarr
|
||||||
|
name: prowlarr
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "9696"
|
||||||
|
port: 9696
|
||||||
|
targetPort: 9696
|
||||||
|
selector:
|
||||||
|
io.kompose.service: prowlarr
|
||||||
|
|
56
alaskarTV/trackers/radarr/deployment.yaml
Normal file
56
alaskarTV/trackers/radarr/deployment.yaml
Normal file
|
@ -0,0 +1,56 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: radarr
|
||||||
|
name: radarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: radarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: radarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: linuxserver/radarr:latest
|
||||||
|
name: radarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 7878
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/trackers/radarr_config
|
||||||
|
- mountPath: /movies
|
||||||
|
name: ssd
|
||||||
|
subPath: movies
|
||||||
|
- mountPath: /downloads/complete
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads/complete
|
||||||
|
- mountPath: /data/HDD/media
|
||||||
|
name: hdd
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
15
alaskarTV/trackers/radarr/service.yaml
Normal file
15
alaskarTV/trackers/radarr/service.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: radarr
|
||||||
|
name: radarr
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "7878"
|
||||||
|
port: 7878
|
||||||
|
targetPort: 7878
|
||||||
|
selector:
|
||||||
|
io.kompose.service: radarr
|
||||||
|
|
54
alaskarTV/trackers/readarr/deployment.yaml
Normal file
54
alaskarTV/trackers/readarr/deployment.yaml
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: readarr
|
||||||
|
name: readarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: readarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: readarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: lscr.io/linuxserver/readarr:nightly
|
||||||
|
name: readarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 8787
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellyarr/readarr_config
|
||||||
|
- mountPath: /data/ebooks
|
||||||
|
name: ssd
|
||||||
|
subPath: books/ebooks
|
||||||
|
- mountPath: /downloads/complete
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads/complete
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
16
alaskarTV/trackers/readarr/service.yaml
Normal file
16
alaskarTV/trackers/readarr/service.yaml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: readarr
|
||||||
|
name: readarr
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: "8585"
|
||||||
|
port: 8585
|
||||||
|
targetPort: 8787
|
||||||
|
nodePort: 30787
|
||||||
|
selector:
|
||||||
|
io.kompose.service: readarr
|
||||||
|
|
55
alaskarTV/trackers/sonarr/deployment.yaml
Normal file
55
alaskarTV/trackers/sonarr/deployment.yaml
Normal file
|
@ -0,0 +1,55 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: sonarr
|
||||||
|
name: sonarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: sonarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: sonarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
image: linuxserver/sonarr:latest
|
||||||
|
name: sonarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 8989
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/trackers/sonarr_config
|
||||||
|
- mountPath: /tvshows
|
||||||
|
name: ssd
|
||||||
|
subPath: tvshows
|
||||||
|
- mountPath: /anime
|
||||||
|
name: ssd
|
||||||
|
subPath: anime
|
||||||
|
- mountPath: /downloads/complete
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads/complete
|
||||||
|
- mountPath: /data/HDD/media
|
||||||
|
name: hdd
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
15
alaskarTV/trackers/sonarr/service.yaml
Normal file
15
alaskarTV/trackers/sonarr/service.yaml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: sonarr
|
||||||
|
name: sonarr
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "8989"
|
||||||
|
port: 8989
|
||||||
|
targetPort: 8989
|
||||||
|
selector:
|
||||||
|
io.kompose.service: sonarr
|
||||||
|
|
54
alaskarTV/trackers/speakarr/deployment.yaml
Normal file
54
alaskarTV/trackers/speakarr/deployment.yaml
Normal file
|
@ -0,0 +1,54 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: speakarr
|
||||||
|
name: speakarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: speakarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: speakarr
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
image: lscr.io/linuxserver/readarr:nightly
|
||||||
|
name: speakarr
|
||||||
|
ports:
|
||||||
|
- containerPort: 8787
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /config
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/jellyarr/speakarr_config
|
||||||
|
- mountPath: /data/audiobooks
|
||||||
|
name: ssd
|
||||||
|
subPath: books/audiobooks
|
||||||
|
- mountPath: /downloads/complete
|
||||||
|
name: hdd
|
||||||
|
subPath: transmission/downloads/complete
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
||||||
|
|
16
alaskarTV/trackers/speakarr/service.yaml
Normal file
16
alaskarTV/trackers/speakarr/service.yaml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: speakarr
|
||||||
|
name: speakarr
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: "8787"
|
||||||
|
port: 8787
|
||||||
|
targetPort: 8787
|
||||||
|
nodePort: 30887
|
||||||
|
selector:
|
||||||
|
io.kompose.service: speakarr
|
||||||
|
|
91
alaskarTV/transcoder/deployment.yaml
Normal file
91
alaskarTV/transcoder/deployment.yaml
Normal file
|
@ -0,0 +1,91 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
annotations:
|
||||||
|
keel.sh/policy: minor
|
||||||
|
keel.sh/trigger: poll
|
||||||
|
keel.sh/match-tag: "true"
|
||||||
|
keel.sh/pollSchedule: "@every 6h"
|
||||||
|
labels:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
name: tdarr
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
spec:
|
||||||
|
nodeSelector:
|
||||||
|
role: master
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: NVIDIA_DRIVER_CAPABILITIES
|
||||||
|
value: all
|
||||||
|
- name: NVIDIA_VISIBLE_DEVICES
|
||||||
|
value: all
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: UMASK_SET
|
||||||
|
value: "002"
|
||||||
|
- name: ffmpegVersion
|
||||||
|
value: "6"
|
||||||
|
- name: inContainer
|
||||||
|
value: "true"
|
||||||
|
- name: internalNode
|
||||||
|
value: "true"
|
||||||
|
- name: nodeName
|
||||||
|
value: MasterNode
|
||||||
|
- name: serverIP
|
||||||
|
value: tdarr-server
|
||||||
|
- name: serverPort
|
||||||
|
value: "8266"
|
||||||
|
- name: webUIPort
|
||||||
|
value: "8265"
|
||||||
|
image: ghcr.io/haveagitgat/tdarr:latest
|
||||||
|
name: tdarr
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
nvidia.com/gpu: 1
|
||||||
|
requests:
|
||||||
|
nvidia.com/gpu: 1
|
||||||
|
ports:
|
||||||
|
- containerPort: 8265
|
||||||
|
protocol: TCP
|
||||||
|
- containerPort: 8266
|
||||||
|
protocol: TCP
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /app/server
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/transcoding/docker/tdarr/server
|
||||||
|
- mountPath: /app/logs
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/transcoding/docker/tdarr/logs
|
||||||
|
- mountPath: /app/configs
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/transcoding/docker/tdarr/configs
|
||||||
|
- mountPath: /media
|
||||||
|
name: ssd
|
||||||
|
- mountPath: /data/HDD/media
|
||||||
|
name: hdd
|
||||||
|
- mountPath: /temp
|
||||||
|
name: ssd
|
||||||
|
subPath: configs/transcoding/transcode_cache
|
||||||
|
restartPolicy: Always
|
||||||
|
runtimeClassName: nvidia
|
||||||
|
volumes:
|
||||||
|
- name: ssd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-ssd-pvc
|
||||||
|
- name: hdd
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-hdd-pvc
|
30
alaskarTV/transcoder/service.yaml
Normal file
30
alaskarTV/transcoder/service.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
name: tdarr
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
ports:
|
||||||
|
- name: "webui-tdarr"
|
||||||
|
port: 8265
|
||||||
|
targetPort: 8265
|
||||||
|
nodePort: 30265
|
||||||
|
selector:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: tdarr
|
||||||
|
name: tdarr-server
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- name: "server-tdarr"
|
||||||
|
port: 8266
|
||||||
|
targetPort: 8266
|
||||||
|
selector:
|
||||||
|
io.kompose.service: tdarr
|
120
development/deployment-runner.yaml
Normal file
120
development/deployment-runner.yaml
Normal file
|
@ -0,0 +1,120 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: forgejo-runner
|
||||||
|
name: forgejo-runner
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: forgejo-runner
|
||||||
|
strategy: {}
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
creationTimestamp: null
|
||||||
|
labels:
|
||||||
|
app: forgejo-runner
|
||||||
|
spec:
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: docker-certs
|
||||||
|
emptyDir: {}
|
||||||
|
- name: docker-storage
|
||||||
|
hostPath:
|
||||||
|
path: /dockerImages
|
||||||
|
- name: runner-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-git-claim
|
||||||
|
initContainers:
|
||||||
|
- name: runner-register
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 1001
|
||||||
|
runAsGroup: 1001
|
||||||
|
image: code.forgejo.org/forgejo/runner:5.0.4
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
forgejo-runner register \
|
||||||
|
--no-interactive \
|
||||||
|
--token ${RUNNER_SECRET} \
|
||||||
|
--name ${RUNNER_NAME} \
|
||||||
|
--instance ${FORGEJO_INSTANCE_URL} \
|
||||||
|
--labels "host:host,docker:docker://node:20-bullseye";
|
||||||
|
env:
|
||||||
|
- name: RUNNER_NAME
|
||||||
|
valueFrom:
|
||||||
|
fieldRef:
|
||||||
|
fieldPath: metadata.name
|
||||||
|
- name: RUNNER_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: forgejo-secrets
|
||||||
|
key: token
|
||||||
|
- name: FORGEJO_INSTANCE_URL
|
||||||
|
value: https://git.askar.tv
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
cpu: "0.50"
|
||||||
|
memory: "64Mi"
|
||||||
|
volumeMounts:
|
||||||
|
- name: runner-data
|
||||||
|
mountPath: /data
|
||||||
|
subPath: runner-data
|
||||||
|
containers:
|
||||||
|
- name: runner
|
||||||
|
image: code.forgejo.org/forgejo/runner:5.0.4
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
command:
|
||||||
|
- sh
|
||||||
|
- -c
|
||||||
|
- |
|
||||||
|
apk add --no-cache docker nodejs && echo "Docker Installer";
|
||||||
|
|
||||||
|
while ! nc -z localhost 2376 </dev/null; do
|
||||||
|
echo 'Waiting for Docker daemon...';
|
||||||
|
sleep 5;
|
||||||
|
done;
|
||||||
|
|
||||||
|
# while ! docker version >/dev/null 2>&1; do
|
||||||
|
# echo 'Docker CLI is installed but the daemon is not ready yet...';
|
||||||
|
# sleep 5;
|
||||||
|
# done;
|
||||||
|
|
||||||
|
echo 'Docker daemon is ready!';
|
||||||
|
|
||||||
|
docker context create multiarch || echo "Context already exists" && \
|
||||||
|
docker buildx create multiarch --use || echo "Buildx already set up";
|
||||||
|
|
||||||
|
forgejo-runner daemon;
|
||||||
|
env:
|
||||||
|
- name: DOCKER_HOST
|
||||||
|
value: tcp://localhost:2376
|
||||||
|
- name: DOCKER_CERT_PATH
|
||||||
|
value: /certs/client
|
||||||
|
- name: DOCKER_TLS_VERIFY
|
||||||
|
value: "1"
|
||||||
|
volumeMounts:
|
||||||
|
- name: docker-certs
|
||||||
|
mountPath: /certs
|
||||||
|
- name: runner-data
|
||||||
|
mountPath: /data
|
||||||
|
subPath: runner-data
|
||||||
|
- name: daemon
|
||||||
|
image: docker:27.4.1-dind
|
||||||
|
env:
|
||||||
|
- name: DOCKER_TLS_CERTDIR
|
||||||
|
value: /certs
|
||||||
|
securityContext:
|
||||||
|
runAsUser: 0
|
||||||
|
runAsGroup: 0
|
||||||
|
privileged: true
|
||||||
|
volumeMounts:
|
||||||
|
- name: docker-certs
|
||||||
|
mountPath: /certs
|
||||||
|
- name: docker-storage
|
||||||
|
mountPath: /var/lib/docker
|
102
development/deployment.yaml
Normal file
102
development/deployment.yaml
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: forgejo
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: forgejo
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: forgejo
|
||||||
|
spec:
|
||||||
|
# nodeSelector:
|
||||||
|
# node-role.kubernetes.io/master: "true"
|
||||||
|
containers:
|
||||||
|
- name: forgejo
|
||||||
|
image: codeberg.org/forgejo/forgejo:9.0.3
|
||||||
|
ports:
|
||||||
|
- containerPort: 3000
|
||||||
|
- containerPort: 22
|
||||||
|
volumeMounts:
|
||||||
|
- name: forgejo-data
|
||||||
|
mountPath: /data
|
||||||
|
subPath: forgejo-instance
|
||||||
|
env:
|
||||||
|
- name: FORGEJO_ADMIN_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: forgejo-secrets
|
||||||
|
key: admin-user
|
||||||
|
- name: FORGEJO_ADMIN_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: forgejo-secrets
|
||||||
|
key: admin-password
|
||||||
|
- name: FORGEJO_SECRET
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: forgejo-secrets
|
||||||
|
key: secret
|
||||||
|
volumes:
|
||||||
|
- name: forgejo-data
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-git-claim
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
namespace: development
|
||||||
|
labels:
|
||||||
|
io.kompose.service: forgejo-db
|
||||||
|
name: forgejo-db
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
io.kompose.service: forgejo-db
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
io.kompose.service: forgejo-db
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- env:
|
||||||
|
- name: POSTGRES_DB
|
||||||
|
value: forgejo
|
||||||
|
- name: POSTGRES_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-forgejo-password
|
||||||
|
- name: POSTGRES_USER
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: database-secrets
|
||||||
|
key: postgres-user
|
||||||
|
- name: TZ
|
||||||
|
value: Asia/Kuwait
|
||||||
|
- name: PGDATA
|
||||||
|
value: /var/lib/postgresql/data
|
||||||
|
- name: PGID
|
||||||
|
value: "1000"
|
||||||
|
- name: PUID
|
||||||
|
value: "1000"
|
||||||
|
image: postgres:15.2
|
||||||
|
name: forgejo-db
|
||||||
|
volumeMounts:
|
||||||
|
- mountPath: /var/lib/postgresql
|
||||||
|
name: git
|
||||||
|
subPath: forgejo-db
|
||||||
|
restartPolicy: Always
|
||||||
|
volumes:
|
||||||
|
- name: git
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: nfs-git-claim
|
||||||
|
|
36
development/ingress.yaml
Normal file
36
development/ingress.yaml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: development-ingress
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`git.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : https-redirect
|
||||||
|
namespace: default
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: forgejo
|
||||||
|
port: 3003
|
||||||
|
tls:
|
||||||
|
certResolver: le
|
||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRouteTCP
|
||||||
|
metadata:
|
||||||
|
name: development-ssh
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- ssh
|
||||||
|
routes:
|
||||||
|
- match: HostSNI(`*`)
|
||||||
|
services:
|
||||||
|
- name: forgejo
|
||||||
|
port: 2222
|
37
development/pv.yaml
Normal file
37
development/pv.yaml
Normal file
|
@ -0,0 +1,37 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: nfs-git-volume
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 3Ti
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
mountOptions:
|
||||||
|
- rw
|
||||||
|
- sync
|
||||||
|
- noatime
|
||||||
|
- vers=4.2
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
csi:
|
||||||
|
driver: nfs.csi.k8s.io
|
||||||
|
volumeHandle: nfs-git-volume
|
||||||
|
volumeAttributes:
|
||||||
|
server: 192.168.0.100
|
||||||
|
share: /git
|
||||||
|
uid: "1000"
|
||||||
|
gid: "1000"
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: nfs-git-claim
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Ti
|
||||||
|
volumeName: nfs-git-volume
|
||||||
|
storageClassName: ""
|
36
development/service.yaml
Normal file
36
development/service.yaml
Normal file
|
@ -0,0 +1,36 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: forgejo
|
||||||
|
namespace: development
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app: forgejo
|
||||||
|
ports:
|
||||||
|
- port: 3003
|
||||||
|
targetPort: 3000
|
||||||
|
name: instance
|
||||||
|
- port: 2222
|
||||||
|
targetPort: 22
|
||||||
|
name: ssh
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: forgejo-db
|
||||||
|
namespace: development
|
||||||
|
labels:
|
||||||
|
io.kompose.service: forgejo-db
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 5434
|
||||||
|
targetPort: 5432
|
||||||
|
protocol: TCP
|
||||||
|
selector:
|
||||||
|
io.kompose.service: forgejo-db
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
|
30
external-services/ingress.yaml
Normal file
30
external-services/ingress.yaml
Normal file
|
@ -0,0 +1,30 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: external-services
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- web
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`az.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: motomo
|
||||||
|
port: 8080
|
||||||
|
- match: Host(`i.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: immich
|
||||||
|
port: 2283
|
||||||
|
- match: Host(`ai.askar.tv`)
|
||||||
|
kind: Rule
|
||||||
|
middlewares:
|
||||||
|
- name : analytics
|
||||||
|
namespace: umami
|
||||||
|
services:
|
||||||
|
- name: aichat
|
||||||
|
port: 3002
|
||||||
|
tls:
|
||||||
|
certResolver: le
|
61
external-services/service.yaml
Normal file
61
external-services/service.yaml
Normal file
|
@ -0,0 +1,61 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: motomo
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
targetPort: 8080
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: motomo
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.0.200
|
||||||
|
ports:
|
||||||
|
- port: 8080
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: immich
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 2283
|
||||||
|
targetPort: 2283
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: immich
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.0.200
|
||||||
|
ports:
|
||||||
|
- port: 2283
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: aichat
|
||||||
|
spec:
|
||||||
|
type: ClusterIP
|
||||||
|
ports:
|
||||||
|
- port: 3002
|
||||||
|
targetPort: 3002
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Endpoints
|
||||||
|
metadata:
|
||||||
|
name: aichat
|
||||||
|
subsets:
|
||||||
|
- addresses:
|
||||||
|
- ip: 192.168.0.200
|
||||||
|
ports:
|
||||||
|
- port: 3002
|
8
loadBalancer/middlewares/digestAuth/digestAuth.yml
Normal file
8
loadBalancer/middlewares/digestAuth/digestAuth.yml
Normal file
|
@ -0,0 +1,8 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: digest-auth
|
||||||
|
spec:
|
||||||
|
digestAuth:
|
||||||
|
realm: "PublishAPI"
|
||||||
|
secret: traefik-digest-auth
|
9
loadBalancer/middlewares/https-redirect/middleware.yaml
Normal file
9
loadBalancer/middlewares/https-redirect/middleware.yaml
Normal file
|
@ -0,0 +1,9 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: https-redirect
|
||||||
|
namespace: default
|
||||||
|
spec:
|
||||||
|
redirectScheme:
|
||||||
|
scheme: https
|
||||||
|
permanent: true
|
10
loadBalancer/middlewares/ipWhitelist/ips.yml
Normal file
10
loadBalancer/middlewares/ipWhitelist/ips.yml
Normal file
|
@ -0,0 +1,10 @@
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: Middleware
|
||||||
|
metadata:
|
||||||
|
name: lan-only
|
||||||
|
spec:
|
||||||
|
ipAllowList:
|
||||||
|
sourceRange:
|
||||||
|
- 192.168.0.0/24
|
||||||
|
- 127.0.0.1/32
|
||||||
|
|
63
loadBalancer/traefik-helm/deployment.yaml
Normal file
63
loadBalancer/traefik-helm/deployment.yaml
Normal file
|
@ -0,0 +1,63 @@
|
||||||
|
ports:
|
||||||
|
web:
|
||||||
|
port: 80
|
||||||
|
targetPort: 80
|
||||||
|
nodePort: 30808
|
||||||
|
websecure:
|
||||||
|
port: 443
|
||||||
|
targetPort: 443
|
||||||
|
nodePort: 30443
|
||||||
|
ssh:
|
||||||
|
port: 2222
|
||||||
|
targetport: 2222
|
||||||
|
nodePort: 30222
|
||||||
|
|
||||||
|
service:
|
||||||
|
type: LoadBalancer
|
||||||
|
spec:
|
||||||
|
externalTrafficPolicy: Local
|
||||||
|
|
||||||
|
nodeSelector:
|
||||||
|
kubernetes.io/hostname: alaskarserver
|
||||||
|
|
||||||
|
additionalArguments:
|
||||||
|
- "--entrypoints.web.forwardedHeaders.trustedIPs=0.0.0.0/0"
|
||||||
|
- "--entrypoints.websecure.forwardedHeaders.trustedIPs=0.0.0.0/0"
|
||||||
|
- "--entrypoints.ssh.address=:2222"
|
||||||
|
- "--providers.kubernetescrd.allowCrossNamespace=true"
|
||||||
|
- "--log.level=INFO"
|
||||||
|
|
||||||
|
ingressClass:
|
||||||
|
enabled: true
|
||||||
|
isDefaultClass: true
|
||||||
|
name: traefik-ingress
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
persistence:
|
||||||
|
enabled: true
|
||||||
|
existingClaim: nfs-ssd-traefik-pvc # Persistent storage for ACME certificates
|
||||||
|
subPath: certs
|
||||||
|
|
||||||
|
initContainers:
|
||||||
|
- name: volume-permissions
|
||||||
|
image: busybox:latest
|
||||||
|
command: ["sh", "-c", "mkdir -p /data && touch /data/acme.json && chmod 600 /data/acme.json"]
|
||||||
|
volumeMounts:
|
||||||
|
- name: data
|
||||||
|
mountPath: /data
|
||||||
|
|
||||||
|
certificatesResolvers:
|
||||||
|
le:
|
||||||
|
acme:
|
||||||
|
email: sager@alaskar.dev
|
||||||
|
storage: /data/acme.json
|
||||||
|
httpChallenge:
|
||||||
|
entryPoint: web
|
||||||
|
|
||||||
|
|
||||||
|
experimental:
|
||||||
|
plugins:
|
||||||
|
traefik-umami-feeder:
|
||||||
|
moduleName: "github.com/astappiev/traefik-umami-feeder"
|
||||||
|
version: "v1.2.0"
|
31
loadBalancer/traefik-helm/pv.yaml
Normal file
31
loadBalancer/traefik-helm/pv.yaml
Normal file
|
@ -0,0 +1,31 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolume
|
||||||
|
metadata:
|
||||||
|
name: nfs-ssd-traefik
|
||||||
|
spec:
|
||||||
|
capacity:
|
||||||
|
storage: 3Ti
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
persistentVolumeReclaimPolicy: Retain
|
||||||
|
csi:
|
||||||
|
driver: nfs.csi.k8s.io
|
||||||
|
volumeHandle: nfs-ssd-traefik
|
||||||
|
volumeAttributes:
|
||||||
|
server: 192.168.0.200
|
||||||
|
share: /SSD/media
|
||||||
|
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: nfs-ssd-traefik-pvc
|
||||||
|
namespace: traefik
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteMany
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 3Ti
|
||||||
|
volumeName: nfs-ssd-traefik
|
||||||
|
storageClassName: ""
|
Loading…
Reference in a new issue