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