Compare commits
5 Commits
7a170337a1
...
23ef2d1a3d
Author | SHA1 | Date |
---|---|---|
Massaki Archambault | 23ef2d1a3d | |
Massaki Archambault | 25a2436e95 | |
Massaki Archambault | 47eee3dd77 | |
Massaki Archambault | 422c98755a | |
Massaki Archambault | 637be75029 |
|
@ -0,0 +1,105 @@
|
||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: server
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
strategy:
|
||||||
|
type: Recreate
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
containers:
|
||||||
|
- image: lscr.io/linuxserver/deluge
|
||||||
|
name: deluge
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 8112
|
||||||
|
- name: deluge-daemon
|
||||||
|
containerPort: 58846
|
||||||
|
- name: torrent-tcp
|
||||||
|
containerPort: 6881
|
||||||
|
hostPort: 6881
|
||||||
|
protocol: TCP
|
||||||
|
- name: torrent-udp
|
||||||
|
containerPort: 6881
|
||||||
|
hostPort: 6881
|
||||||
|
protocol: UDP
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
cpu: 1500m
|
||||||
|
memory: 250Mi
|
||||||
|
limits:
|
||||||
|
cpu: 1500m
|
||||||
|
memory: 250Mi
|
||||||
|
volumeMounts:
|
||||||
|
- name: deluge-config-pvc
|
||||||
|
mountPath: /config
|
||||||
|
volumes:
|
||||||
|
- name: deluge-config-pvc
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: deluge-config-pvc
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: deluge-config-pvc
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: webui
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
port: 80
|
||||||
|
targetPort: http
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: daemon
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
ports:
|
||||||
|
- port: 58846
|
||||||
|
targetPort: deluge-daemon
|
||||||
|
nodePort: 31000
|
||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: torrent
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
spec:
|
||||||
|
type: NodePort
|
||||||
|
selector:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
ports:
|
||||||
|
- port: 6881
|
||||||
|
targetPort: deluge-daemon
|
||||||
|
nodePort: 31001
|
|
@ -0,0 +1,19 @@
|
||||||
|
apiVersion: networking.k8s.io/v1
|
||||||
|
kind: Ingress
|
||||||
|
metadata:
|
||||||
|
name: webui
|
||||||
|
labels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
probe: blackbox-http
|
||||||
|
spec:
|
||||||
|
rules:
|
||||||
|
- host: ${DELUGE_EXTERNAL_HOST}
|
||||||
|
http:
|
||||||
|
paths:
|
||||||
|
- path: /
|
||||||
|
pathType: Prefix
|
||||||
|
backend:
|
||||||
|
service:
|
||||||
|
name: webui
|
||||||
|
port:
|
||||||
|
name: http
|
|
@ -0,0 +1,25 @@
|
||||||
|
resources:
|
||||||
|
- deluge-deployment.yaml
|
||||||
|
- deluge-ingress.yaml
|
||||||
|
|
||||||
|
namePrefix: deluge-
|
||||||
|
|
||||||
|
commonLabels:
|
||||||
|
app.kubernetes.io/name: deluge
|
||||||
|
|
||||||
|
configMapGenerator:
|
||||||
|
- name: kustomize-generated-config
|
||||||
|
literals:
|
||||||
|
- DELUGE_EXTERNAL_HOST=deluge.badjware.dev
|
||||||
|
|
||||||
|
replacements:
|
||||||
|
- source:
|
||||||
|
kind: ConfigMap
|
||||||
|
name: kustomize-generated-config
|
||||||
|
fieldPath: data.DELUGE_EXTERNAL_HOST
|
||||||
|
targets:
|
||||||
|
- select:
|
||||||
|
kind: Ingress
|
||||||
|
name: webui
|
||||||
|
fieldPaths:
|
||||||
|
- spec.rules.0.host
|
|
@ -41,6 +41,12 @@ spec:
|
||||||
# value: "true"
|
# value: "true"
|
||||||
- name: GF_INSTALL_PLUGINS
|
- name: GF_INSTALL_PLUGINS
|
||||||
value: marcusolsson-json-datasource,marcusolsson-treemap-panel
|
value: marcusolsson-json-datasource,marcusolsson-treemap-panel
|
||||||
|
- name: GF_FEATURE_TOGGLES_ENABLE
|
||||||
|
value: nestedFolders
|
||||||
|
- name: GF_AUTH_GENERIC_OAUTH_SKIP_ORG_ROLE_SYNC
|
||||||
|
value: "true"
|
||||||
|
- name: GF_AUTH_OAUTH_ALLOW_INSECURE_EMAIL_LOOKUP
|
||||||
|
value: "true"
|
||||||
args: ['--config', '/etc/grafana/provisioning/config/custom.ini']
|
args: ['--config', '/etc/grafana/provisioning/config/custom.ini']
|
||||||
readinessProbe:
|
readinessProbe:
|
||||||
failureThreshold: 3
|
failureThreshold: 3
|
||||||
|
|
|
@ -7,7 +7,7 @@ spec:
|
||||||
apiVersion: apps/v1
|
apiVersion: apps/v1
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: server
|
name: server
|
||||||
minReplicas: 2
|
minReplicas: 1
|
||||||
maxReplicas: 4
|
maxReplicas: 4
|
||||||
metrics:
|
metrics:
|
||||||
- type: Resource
|
- type: Resource
|
||||||
|
|
|
@ -16,13 +16,26 @@ spec:
|
||||||
labels:
|
labels:
|
||||||
app.kubernetes.io/name: jellyfin
|
app.kubernetes.io/name: jellyfin
|
||||||
spec:
|
spec:
|
||||||
securityContext:
|
# securityContext:
|
||||||
runAsUser: 33
|
# runAsUser: 33
|
||||||
runAsGroup: 33
|
# runAsGroup: 33
|
||||||
fsGroup: 33
|
# fsGroup: 33
|
||||||
|
affinity:
|
||||||
|
nodeAffinity:
|
||||||
|
# TODO: eviction policy
|
||||||
|
requiredDuringSchedulingIgnoredDuringExecution:
|
||||||
|
nodeSelectorTerms:
|
||||||
|
- matchExpressions:
|
||||||
|
# we require to be scheduled on a raspberry pi for hardware transcoding to work
|
||||||
|
- key: kubernetes.io/arch
|
||||||
|
operator: In
|
||||||
|
values:
|
||||||
|
- arm64
|
||||||
containers:
|
containers:
|
||||||
- image: jellyfin/jellyfin
|
- image: jellyfin/jellyfin
|
||||||
name: jellyfin
|
name: jellyfin
|
||||||
|
securityContext:
|
||||||
|
privileged: true # required for hardware transcode
|
||||||
env:
|
env:
|
||||||
- name: JELLYFIN_PublishedServerUrl
|
- name: JELLYFIN_PublishedServerUrl
|
||||||
value: ${JELLYFIN_EXTERNAL_URL}
|
value: ${JELLYFIN_EXTERNAL_URL}
|
||||||
|
@ -45,6 +58,15 @@ spec:
|
||||||
mountPath: /config
|
mountPath: /config
|
||||||
- name: jellyfin-cache-pvc
|
- name: jellyfin-cache-pvc
|
||||||
mountPath: /cache
|
mountPath: /cache
|
||||||
|
- name: jellyfin-transcode
|
||||||
|
mountPath: /config/transcodes
|
||||||
|
# below mounts are for hardware transcode
|
||||||
|
- mountPath: /dev/video10
|
||||||
|
name: device-video10
|
||||||
|
- mountPath: /dev/video11
|
||||||
|
name: device-video11
|
||||||
|
- mountPath: /dev/video12
|
||||||
|
name: device-video12
|
||||||
volumes:
|
volumes:
|
||||||
- name: jellyfin-config-pvc
|
- name: jellyfin-config-pvc
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
|
@ -52,6 +74,18 @@ spec:
|
||||||
- name: jellyfin-cache-pvc
|
- name: jellyfin-cache-pvc
|
||||||
persistentVolumeClaim:
|
persistentVolumeClaim:
|
||||||
claimName: jellyfin-cache-pvc
|
claimName: jellyfin-cache-pvc
|
||||||
|
- name: jellyfin-transcode
|
||||||
|
emptyDir:
|
||||||
|
sizeLimit: 80Gi
|
||||||
|
- name: device-video10 #Only needed if you want to use your Raspberry Pi V4L2 video encoding.
|
||||||
|
hostPath:
|
||||||
|
path: /dev/video10
|
||||||
|
- name: device-video11 #Only needed if you want to use your Raspberry Pi V4L2 video encoding.
|
||||||
|
hostPath:
|
||||||
|
path: /dev/video11
|
||||||
|
- name: device-video12 #Only needed if you want to use your Raspberry Pi V4L2 video encoding.
|
||||||
|
hostPath:
|
||||||
|
path: /dev/video12
|
||||||
---
|
---
|
||||||
apiVersion: v1
|
apiVersion: v1
|
||||||
kind: PersistentVolumeClaim
|
kind: PersistentVolumeClaim
|
||||||
|
|
|
@ -17,6 +17,7 @@ spec:
|
||||||
app.kubernetes.io/component: cron
|
app.kubernetes.io/component: cron
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0 # no retry
|
backoffLimit: 0 # no retry
|
||||||
|
ttlSecondsAfterFinished: 86400
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
|
|
@ -17,6 +17,7 @@ spec:
|
||||||
app.kubernetes.io/component: previewgenerator
|
app.kubernetes.io/component: previewgenerator
|
||||||
spec:
|
spec:
|
||||||
backoffLimit: 0 # no retry
|
backoffLimit: 0 # no retry
|
||||||
|
ttlSecondsAfterFinished: 86400
|
||||||
template:
|
template:
|
||||||
metadata:
|
metadata:
|
||||||
labels:
|
labels:
|
||||||
|
|
|
@ -9,6 +9,7 @@ resources:
|
||||||
- ../../overlays/nextcloud
|
- ../../overlays/nextcloud
|
||||||
- ../../overlays/home-assistant
|
- ../../overlays/home-assistant
|
||||||
- ../../overlays/jellyfin
|
- ../../overlays/jellyfin
|
||||||
|
- ../../overlays/deluge
|
||||||
|
|
||||||
# resources:
|
# resources:
|
||||||
# - probes/external-services-bobcat-miner.yaml
|
# - probes/external-services-bobcat-miner.yaml
|
||||||
|
@ -18,28 +19,30 @@ buildMetadata:
|
||||||
|
|
||||||
images:
|
images:
|
||||||
- name: gitea/gitea
|
- name: gitea/gitea
|
||||||
newTag: 1.16.9
|
newTag: 1.20.1
|
||||||
- name: grafana/grafana
|
- name: grafana/grafana
|
||||||
newTag: 9.4.3
|
newTag: 10.1.2
|
||||||
# - name: prom/node-exporter
|
# - name: prom/node-exporter
|
||||||
# newTag: v0.18.1
|
# newTag: v0.18.1
|
||||||
- name: prom/blackbox-exporter
|
- name: prom/blackbox-exporter
|
||||||
newName: badjware/blackbox-exporter-tweak
|
newName: badjware/blackbox-exporter-tweak
|
||||||
newTag: 0.21.1
|
newTag: 0.21.1
|
||||||
- name: drone/drone
|
# - name: drone/drone
|
||||||
newTag: 2.14.0
|
# newTag: 2.14.0
|
||||||
- name: drone/drone-runner-kube
|
# - name: drone/drone-runner-kube
|
||||||
newTag: 1.0.0-rc.3
|
# newTag: 1.0.0-rc.3
|
||||||
- name: nextcloud
|
- name: nextcloud
|
||||||
newTag: 26.0.2
|
newTag: 27.1.1
|
||||||
- name: collabora/code
|
- name: collabora/code
|
||||||
newTag: 23.05.0.5.1
|
newTag: 23.05.4.2.1
|
||||||
- name: nextcloud/aio-imaginary
|
- name: nextcloud/aio-imaginary
|
||||||
newTag: 20230613_120442-latest-arm64
|
newTag: 20230613_120442-latest-arm64
|
||||||
- name: homeassistant/home-assistant
|
- name: homeassistant/home-assistant
|
||||||
newTag: 2023.5.4
|
newTag: 2023.9.2
|
||||||
- name: jellyfin/jellyfin
|
- name: jellyfin/jellyfin
|
||||||
newTag: 10.8.10
|
newTag: 10.8.10
|
||||||
|
- name: lscr.io/linuxserver/deluge
|
||||||
|
newTag: latest
|
||||||
- name: postgres
|
- name: postgres
|
||||||
newTag: 9.6.23
|
newTag: 9.6.23
|
||||||
- name: redis
|
- name: redis
|
||||||
|
@ -77,6 +80,11 @@ patches:
|
||||||
kind: Deployment
|
kind: Deployment
|
||||||
name: jellyfin-server
|
name: jellyfin-server
|
||||||
path: patches/jellyfin-deployment-patch.yaml
|
path: patches/jellyfin-deployment-patch.yaml
|
||||||
|
- target:
|
||||||
|
version: v1
|
||||||
|
kind: Deployment
|
||||||
|
name: deluge-server
|
||||||
|
path: patches/deluge-deployment-patch.yaml
|
||||||
# - target:
|
# - target:
|
||||||
# version: v1
|
# version: v1
|
||||||
# kind: Prometheus
|
# kind: Prometheus
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
- op: add
|
||||||
|
path: /spec/template/spec/containers/0/volumeMounts/-
|
||||||
|
value:
|
||||||
|
name: share-media-downloads-nfs
|
||||||
|
mountPath: /share/media/Downloads
|
||||||
|
- op: add
|
||||||
|
path: /spec/template/spec/volumes/-
|
||||||
|
value:
|
||||||
|
name: share-media-downloads-nfs
|
||||||
|
nfs:
|
||||||
|
server: 192.168.20.30
|
||||||
|
path: /mnt/pool0/media/Downloads
|
|
@ -0,0 +1,5 @@
|
||||||
|
resources:
|
||||||
|
- namespace.yaml
|
||||||
|
- ../../bases/deluge
|
||||||
|
|
||||||
|
namespace: deluge
|
|
@ -0,0 +1,4 @@
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Namespace
|
||||||
|
metadata:
|
||||||
|
name: deluge
|
Loading…
Reference in New Issue