transmission.yaml 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. ---
  2. apiVersion: v1
  3. kind: Secret
  4. metadata:
  5. name: pia-auth
  6. data:
  7. username: cDk1MDkyMDU=
  8. password: bWFwa29iLTRjZWhnZS1wZWdLaWs=
  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: PEER_DNS
  45. value: "false"
  46. - name: OVERRIDE_DNS
  47. value: "8.8.8.8"
  48. - name: OPENVPN_PROVIDER
  49. value: PIA
  50. - name: OPENVPN_CONFIG
  51. value: "ca_montreal"
  52. - name: TRANSMISSION_DOWNLOAD_DIR
  53. value: "/downloads/transmission"
  54. - name: OPENVPN_USERNAME
  55. valueFrom:
  56. secretKeyRef:
  57. name: pia-auth
  58. key: username
  59. - name: OPENVPN_PASSWORD
  60. valueFrom:
  61. secretKeyRef:
  62. name: pia-auth
  63. key: password
  64. ports:
  65. - name: web
  66. containerPort: 9091
  67. volumeMounts:
  68. - name: transmission-config
  69. mountPath: "/config/transmission-home"
  70. subPath: "config/transmission-home"
  71. - name: media-volume
  72. mountPath: "/downloads/transmission"
  73. subPath: "downloads/transmission"
  74. volumes:
  75. - name: media-volume
  76. persistentVolumeClaim:
  77. claimName: media-pvc
  78. - name: transmission-config
  79. persistentVolumeClaim:
  80. claimName: transmission-config-pvc
  81. ---
  82. apiVersion: v1
  83. kind: Service
  84. metadata:
  85. name: transmission
  86. spec:
  87. type: ClusterIP
  88. ports:
  89. - name: web
  90. port: 9091
  91. targetPort: 9091
  92. selector:
  93. app: transmission
  94. ---
  95. apiVersion: traefik.containo.us/v1alpha1
  96. kind: IngressRoute
  97. metadata:
  98. name: transmission-ingress-route
  99. namespace: default
  100. spec:
  101. entryPoints:
  102. - web
  103. routes:
  104. - match: Host(`transmission.dezendorf.net`)
  105. kind: Rule
  106. middlewares:
  107. - name: redirecthttps
  108. services:
  109. - name: transmission
  110. port: 9091
  111. ---
  112. apiVersion: traefik.containo.us/v1alpha1
  113. kind: IngressRoute
  114. metadata:
  115. name: transmission-websecure-route
  116. namespace: default
  117. spec:
  118. entryPoints:
  119. - websecure
  120. routes:
  121. - match: Host(`transmission.dezendorf.net`)
  122. kind: Rule
  123. services:
  124. - name: transmission
  125. port: 9091
  126. tls:
  127. certResolver: myresolver