# Apply: kubectl apply -f manifests/media/jdownloader.yaml # Delete: kubectl delete -f manifests/media/jdownloader.yaml # Description: JDownloader deployment with Ingress at jdownloader.home.arpa. apiVersion: apps/v1 kind: Deployment metadata: name: jdownloader namespace: downloads spec: replicas: 1 selector: matchLabels: app: jdownloader template: metadata: labels: app: jdownloader spec: nodeSelector: node-role: storage containers: - name: jdownloader image: jlesage/jdownloader-2:latest ports: - containerPort: 5800 env: - name: USER_ID value: "1000" - name: GROUP_ID value: "1000" - name: TZ value: "Asia/Tokyo" volumeMounts: - name: config mountPath: /config - name: dl mountPath: /output volumes: - name: config hostPath: path: /data/jdownloader type: DirectoryOrCreate - name: dl hostPath: path: /mnt/storage/dl type: Directory --- apiVersion: v1 kind: Service metadata: name: jdownloader namespace: downloads spec: selector: app: jdownloader ports: - name: web port: 80 targetPort: 5800 --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: jdownloader namespace: downloads annotations: traefik.ingress.kubernetes.io/router.entrypoints: websecure traefik.ingress.kubernetes.io/router.tls: "true" cert-manager.io/cluster-issuer: internal-ca-issuer spec: ingressClassName: traefik tls: - secretName: jdownloader-tls hosts: - jdownloader.home.arpa rules: - host: jdownloader.home.arpa http: paths: - path: / pathType: Prefix backend: service: name: jdownloader port: number: 80