feature/jdownloader
This commit is contained in:
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
apiVersion: image.toolkit.fluxcd.io/v1
|
||||||
|
kind: ImagePolicy
|
||||||
|
metadata:
|
||||||
|
name: jdownloader2
|
||||||
|
namespace: plex-and-tools
|
||||||
|
spec:
|
||||||
|
imageRepositoryRef:
|
||||||
|
# https://hub.docker.com/r/jlesage/jdownloader-2
|
||||||
|
name: jdownloader2
|
||||||
|
policy:
|
||||||
|
# semver:
|
||||||
|
# range: '>=vx.x.x'
|
||||||
|
alphabetical:
|
||||||
|
order: asc
|
||||||
@@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
apiVersion: image.toolkit.fluxcd.io/v1
|
||||||
|
kind: ImageRepository
|
||||||
|
metadata:
|
||||||
|
name: jdownloader2
|
||||||
|
namespace: plex-and-tools
|
||||||
|
spec:
|
||||||
|
image: jlesage/jdownloader-2
|
||||||
|
interval: 24h
|
||||||
|
exclusionList:
|
||||||
|
- latest
|
||||||
37
cluster/apps/plex-and-tools/jdownloader/IngressRoute.yaml
Normal file
37
cluster/apps/plex-and-tools/jdownloader/IngressRoute.yaml
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
---
|
||||||
|
apiVersion: traefik.io/v1alpha1
|
||||||
|
kind: IngressRoute
|
||||||
|
metadata:
|
||||||
|
name: jdownloader
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
spec:
|
||||||
|
entryPoints:
|
||||||
|
- websecure
|
||||||
|
routes:
|
||||||
|
- match: Host(`jdownloader.example.org`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: jdownloader
|
||||||
|
port: 5800
|
||||||
|
middlewares:
|
||||||
|
- name: authentik-proxy
|
||||||
|
namespace: authentik
|
||||||
|
- name: security
|
||||||
|
namespace: traefik
|
||||||
|
|
||||||
|
- match: Host(`jdownloader.example.org`) && PathPrefix(`/outpost.goauthentik.io`)
|
||||||
|
kind: Rule
|
||||||
|
services:
|
||||||
|
- name: authentik-proxy
|
||||||
|
namespace: authentik
|
||||||
|
port: http
|
||||||
|
middlewares:
|
||||||
|
- name: security
|
||||||
|
namespace: traefik
|
||||||
|
tls:
|
||||||
|
secretName: jdownloader.example.org
|
||||||
|
options:
|
||||||
|
name: tls-security
|
||||||
|
namespace: traefik
|
||||||
@@ -0,0 +1,15 @@
|
|||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: jdownloader-filebot-script
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
data:
|
||||||
|
jdownloader-postprocess.sh: |
|
||||||
|
#!/bin/sh -xu
|
||||||
|
|
||||||
|
# container has curl
|
||||||
|
# apk add curl
|
||||||
|
|
||||||
|
curl -X GET http://filebot-node.plex-and-tools:5452/task?id=42
|
||||||
@@ -0,0 +1,16 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: ConfigMap
|
||||||
|
metadata:
|
||||||
|
name: jdownloader
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
data:
|
||||||
|
# https://github.com/jlesage/docker-jdownloader-2?tab=readme-ov-file#environment-variables
|
||||||
|
KEEP_APP_RUNNING: '1'
|
||||||
|
MYJDOWNLOADER_DEVICE_NAME: 'k8s'
|
||||||
|
JDOWNLOADER_HEADLESS: '0'
|
||||||
|
JDOWNLOADER_MAX_MEM: '2G'
|
||||||
|
INSTALL_PACKAGES: 'curl'
|
||||||
|
DARK_MODE: '1'
|
||||||
95
cluster/apps/plex-and-tools/jdownloader/deployment.yaml
Normal file
95
cluster/apps/plex-and-tools/jdownloader/deployment.yaml
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
apiVersion: apps/v1
|
||||||
|
kind: Deployment
|
||||||
|
metadata:
|
||||||
|
name: jdownloader
|
||||||
|
namespace: plex-and-tools
|
||||||
|
annotations:
|
||||||
|
reloader.stakater.com/auto: 'true'
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
unraid.nfs: 'true'
|
||||||
|
spec:
|
||||||
|
replicas: 1
|
||||||
|
selector:
|
||||||
|
matchLabels:
|
||||||
|
app: jdownloader
|
||||||
|
strategy:
|
||||||
|
type: Recreate # because of pvc
|
||||||
|
template:
|
||||||
|
metadata:
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
spec:
|
||||||
|
automountServiceAccountToken: false
|
||||||
|
# CURRENLTY hostNetwork disabled because we use https://jdownloader.sikorski.cloud/
|
||||||
|
# dnsPolicy: ClusterFirstWithHostNet
|
||||||
|
# hostNetwork: true # direct connection for better web ui performance
|
||||||
|
containers:
|
||||||
|
- name: jdownloader
|
||||||
|
# https://hub.docker.com/r/jlesage/jdownloader-2
|
||||||
|
# https://github.com/jlesage/docker-jdownloader-2/releases
|
||||||
|
image: jlesage/jdownloader-2:v25.02.1 # {"$imagepolicy": "flux-system:jdownloader2"}
|
||||||
|
imagePullPolicy: IfNotPresent
|
||||||
|
resources:
|
||||||
|
limits:
|
||||||
|
memory: 8Gi
|
||||||
|
requests:
|
||||||
|
memory: 2Gi
|
||||||
|
cpu: 1000m
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
containerPort: 5800
|
||||||
|
protocol: TCP
|
||||||
|
envFrom:
|
||||||
|
- configMapRef:
|
||||||
|
name: plex-and-tools
|
||||||
|
- configMapRef:
|
||||||
|
name: jdownloader
|
||||||
|
optional: false
|
||||||
|
- secretRef:
|
||||||
|
name: jdownloader
|
||||||
|
optional: false
|
||||||
|
securityContext:
|
||||||
|
readOnlyRootFilesystem: false
|
||||||
|
allowPrivilegeEscalation: false
|
||||||
|
runAsNonRoot: false
|
||||||
|
volumeMounts:
|
||||||
|
# config
|
||||||
|
- name: jdownloader
|
||||||
|
mountPath: /config
|
||||||
|
# emptyDir Logs
|
||||||
|
- name: jdownloader-nginx-log
|
||||||
|
mountPath: /config/log
|
||||||
|
- name: jdownloader-logs
|
||||||
|
mountPath: /config/logs
|
||||||
|
# configMap scripts
|
||||||
|
- name: jdownloader-filebot-script
|
||||||
|
mountPath: /config/scripts/jdownloader-postprocess.sh
|
||||||
|
subPath: jdownloader-postprocess.sh
|
||||||
|
# NFS shares
|
||||||
|
- name: plex-media
|
||||||
|
mountPath: /mnt/plex-media/
|
||||||
|
|
||||||
|
imagePullSecrets:
|
||||||
|
- name: registry-dockerhub
|
||||||
|
volumes:
|
||||||
|
# app
|
||||||
|
- name: jdownloader
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: jdownloader-longhorn
|
||||||
|
# emptyDir Logs
|
||||||
|
- name: jdownloader-nginx-log
|
||||||
|
emptyDir:
|
||||||
|
sizeLimit: 500Mi
|
||||||
|
- name: jdownloader-logs
|
||||||
|
emptyDir:
|
||||||
|
sizeLimit: 500Mi
|
||||||
|
# NFS shares
|
||||||
|
- name: plex-media
|
||||||
|
persistentVolumeClaim:
|
||||||
|
claimName: plex-media
|
||||||
|
# configmap
|
||||||
|
- name: jdownloader-filebot-script
|
||||||
|
configMap:
|
||||||
|
name: jdownloader-filebot-script
|
||||||
|
defaultMode: 0777
|
||||||
15
cluster/apps/plex-and-tools/jdownloader/pvc.yaml
Normal file
15
cluster/apps/plex-and-tools/jdownloader/pvc.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: PersistentVolumeClaim
|
||||||
|
metadata:
|
||||||
|
name: jdownloader-longhorn
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
spec:
|
||||||
|
accessModes:
|
||||||
|
- ReadWriteOnce
|
||||||
|
storageClassName: longhorn
|
||||||
|
resources:
|
||||||
|
requests:
|
||||||
|
storage: 1Gi
|
||||||
@@ -0,0 +1,12 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Secret
|
||||||
|
metadata:
|
||||||
|
name: jdownloader
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
type: Opaque
|
||||||
|
stringData:
|
||||||
|
MYJDOWNLOADER_EMAIL: change_me@example.org
|
||||||
|
MYJDOWNLOADER_PASSWORD: CHANGE_ME
|
||||||
15
cluster/apps/plex-and-tools/jdownloader/service.yaml
Normal file
15
cluster/apps/plex-and-tools/jdownloader/service.yaml
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
apiVersion: v1
|
||||||
|
kind: Service
|
||||||
|
metadata:
|
||||||
|
name: jdownloader
|
||||||
|
namespace: plex-and-tools
|
||||||
|
labels:
|
||||||
|
app: jdownloader
|
||||||
|
spec:
|
||||||
|
ports:
|
||||||
|
- name: http
|
||||||
|
targetPort: 5800
|
||||||
|
port: 5800
|
||||||
|
selector:
|
||||||
|
app: jdownloader
|
||||||
Reference in New Issue
Block a user