1
0
Fork 0

Compare commits

...

5 Commits

Author SHA1 Message Date
Massaki Archambault 23ef2d1a3d updates 2023-09-22 00:48:09 -04:00
Massaki Archambault 25a2436e95 update nextcloud 26.0.3 2023-06-29 10:22:33 -04:00
Massaki Archambault 47eee3dd77 add deluge 2023-06-20 19:55:33 -04:00
Massaki Archambault 422c98755a scale imaginary to min 1 2023-06-19 18:15:55 -04:00
Massaki Archambault 637be75029 enable transcode for jellyfin 2023-06-19 18:15:39 -04:00
12 changed files with 234 additions and 14 deletions

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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:

View File

@ -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:

View File

@ -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

View File

@ -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

View File

@ -0,0 +1,5 @@
resources:
- namespace.yaml
- ../../bases/deluge
namespace: deluge

View File

@ -0,0 +1,4 @@
apiVersion: v1
kind: Namespace
metadata:
name: deluge