transmission.yaml 2.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. ---
  2. apiVersion: v1
  3. kind: Secret
  4. metadata:
  5. name: pia-auth
  6. data:
  7. username: cDk1MDkyMDU=
  8. password: N2lrSjhrc0ozSw==
  9. ---
  10. kind: Deployment
  11. apiVersion: apps/v1
  12. metadata:
  13. name: transmission
  14. labels:
  15. app: transmission
  16. spec:
  17. replicas: 1
  18. selector:
  19. matchLabels:
  20. app: transmission
  21. template:
  22. metadata:
  23. labels:
  24. app: transmission
  25. spec:
  26. containers:
  27. - name: transmission
  28. image: haugene/transmission-openvpn
  29. securityContext:
  30. capabilities:
  31. add:
  32. - NET_ADMIN
  33. env:
  34. - name: TRANSMISSION_RATIO_LIMIT_ENABLED
  35. value: "True"
  36. - name: TRANSMISSION_IDLE_SEEDING_LIMIT_ENABLED
  37. value: "True"
  38. - name: LOCAL_NETWORK
  39. value: 10.42.0.0/16
  40. - name: PUID
  41. value: "1000"
  42. - name: PGID
  43. value: "1000"
  44. - name: OPENVPN_PROVIDER
  45. value: PIA
  46. - name: TRANSMISSION_DOWNLOAD_DIR
  47. value: "/downloads/transmission"
  48. - name: OPENVPN_USERNAME
  49. valueFrom:
  50. secretKeyRef:
  51. name: pia-auth
  52. key: username
  53. - name: OPENVPN_PASSWORD
  54. valueFrom:
  55. secretKeyRef:
  56. name: pia-auth
  57. key: password
  58. ports:
  59. - name: web
  60. containerPort: 9091
  61. volumeMounts:
  62. - name: media-volume
  63. mountPath: "/downloads/transmission"
  64. subPath: "downloads/transmission"
  65. volumes:
  66. - name: media-volume
  67. persistentVolumeClaim:
  68. claimName: media-pvc
  69. ---
  70. apiVersion: v1
  71. kind: Service
  72. metadata:
  73. name: transmission
  74. spec:
  75. type: ClusterIP
  76. ports:
  77. - name: web
  78. port: 9091
  79. targetPort: 9091
  80. selector:
  81. app: transmission
  82. ---
  83. apiVersion: traefik.containo.us/v1alpha1
  84. kind: IngressRoute
  85. metadata:
  86. name: transmission-ingress-route
  87. namespace: default
  88. spec:
  89. entryPoints:
  90. - web
  91. routes:
  92. - match: Host(`transmission.dezendorf.net`)
  93. kind: Rule
  94. middlewares:
  95. - name: redirecthttps
  96. services:
  97. - name: transmission
  98. port: 9091
  99. ---
  100. apiVersion: traefik.containo.us/v1alpha1
  101. kind: IngressRoute
  102. metadata:
  103. name: transmission-websecure-route
  104. namespace: default
  105. spec:
  106. entryPoints:
  107. - websecure
  108. routes:
  109. - match: Host(`transmission.dezendorf.net`)
  110. kind: Rule
  111. services:
  112. - name: transmission
  113. port: 9091
  114. tls:
  115. certResolver: myresolver