diff --git a/deployments/media/transmission/configmap.yaml b/deployments/media/transmission/configmap.yaml new file mode 100644 index 0000000..8026544 --- /dev/null +++ b/deployments/media/transmission/configmap.yaml @@ -0,0 +1,7 @@ +apiVersion: v1 +kind: ConfigMap +metadata: + name: transmission-config + namespace: media +data: + peer-port: "0" diff --git a/deployments/media/transmission/deployment.yaml b/deployments/media/transmission/deployment.yaml new file mode 100644 index 0000000..90d79fe --- /dev/null +++ b/deployments/media/transmission/deployment.yaml @@ -0,0 +1,85 @@ +apiVersion: apps/v1 +kind: Deployment +metadata: + name: transmission + namespace: media + labels: + app: transmission +spec: + replicas: 1 + selector: + matchLabels: + app: transmission + template: + metadata: + labels: + app: transmission + spec: + containers: + - name: gluetun + image: ghcr.io/qmcgaw/gluetun:v3.40.0 + env: + - name: OPENVPN_PROVIDER + value: "PROTONVPN" + - name: OPENVPN_USERNAME + valueFrom: + secretKeyRef: + name: transmission-vpn-secret + key: username + - name: OPENVPN_PASSWORD + valueFrom: + secretKeyRef: + name: transmission-vpn-secret + key: password + - name: SERVER_COUNTRIES + value: "US" + - name: FIREWALL_ENABLED + value: "off" + - name: DOT_ENABLED + value: "true" + ports: + - name: http + containerPort: 8000 + volumeMounts: + - name: config + mountPath: /config + - name: transmission + image: lscr.io/linuxserver/transmission:latest + env: + - name: PUID + value: "1000" + - name: PGID + value: "1000" + - name: TZ + value: "America/New_York" + - name: USER + value: "admin" + - name: PASS + value: "admin" + - name: TRANSMISSION_WEB_HOME + value: "/combui" + - name: PEER_PORT + valueFrom: + configMapKeyRef: + name: transmission-config + key: peer-port + ports: + - name: http + containerPort: 9091 + - name: peer + containerPort: 0 + protocol: TCP + - name: peer-udp + containerPort: 0 + protocol: UDP + volumeMounts: + - name: config + mountPath: /config + - name: downloads + mountPath: /downloads + volumes: + - name: config + emptyDir: {} + - name: downloads + persistentVolumeClaim: + claimName: media-data diff --git a/deployments/media/transmission/ingress.yaml b/deployments/media/transmission/ingress.yaml new file mode 100644 index 0000000..e8c554e --- /dev/null +++ b/deployments/media/transmission/ingress.yaml @@ -0,0 +1,20 @@ +apiVersion: networking.k8s.io/v1 +kind: Ingress +metadata: + name: transmission + namespace: media + annotations: + cert-manager.io/cluster-issuer: letsencrypt-prod + nginx.ingress.kubernetes.io/ssl-redirect: "true" +spec: + rules: + - host: transmission.khalis.corp + http: + paths: + - path: / + pathType: Prefix + backend: + service: + name: transmission + port: + name: http diff --git a/deployments/media/transmission/service.yaml b/deployments/media/transmission/service.yaml new file mode 100644 index 0000000..ed4a440 --- /dev/null +++ b/deployments/media/transmission/service.yaml @@ -0,0 +1,13 @@ +apiVersion: v1 +kind: Service +metadata: + name: transmission + namespace: media +spec: + selector: + app: transmission + ports: + - name: http + port: 9091 + targetPort: http + type: ClusterIP