qbittorrentvpn.yaml 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174
  1. ---
  2. apiVersion: apps/v1
  3. kind: Deployment
  4. metadata:
  5. name: qbittorrentvpn
  6. namespace: plex
  7. spec:
  8. strategy:
  9. type: Recreate
  10. selector:
  11. matchLabels:
  12. app: qbittorrentvpn
  13. replicas: 1
  14. template:
  15. metadata:
  16. labels:
  17. app: qbittorrentvpn
  18. annotations:
  19. backup.velero.io/backup-volumes-excludes: seedbox,media,media2,data-ec
  20. spec:
  21. affinity:
  22. nodeAffinity:
  23. requiredDuringSchedulingIgnoredDuringExecution:
  24. nodeSelectorTerms:
  25. - matchExpressions:
  26. - key: cluster-ingress
  27. operator: In
  28. values:
  29. - "true"
  30. containers:
  31. - name: qbittorrentvpn
  32. image: binhex/arch-qbittorrentvpn:5.0.2-1-01
  33. ports:
  34. - containerPort: 8080
  35. name: http-web-svc
  36. securityContext:
  37. privileged: true
  38. envFrom:
  39. - secretRef:
  40. name: qbittorrentvpn-secret
  41. volumeMounts:
  42. - mountPath: "/data"
  43. name: seedbox
  44. - mountPath: "/media"
  45. name: media
  46. - mountPath: "/media2"
  47. name: media2
  48. - mountPath: "/dataec"
  49. name: data-ec
  50. - mountPath: "/config"
  51. name: config
  52. resources:
  53. requests:
  54. memory: "0"
  55. limits:
  56. memory: "4Gi"
  57. volumes:
  58. - name: seedbox
  59. persistentVolumeClaim:
  60. claimName: seedbox-pvc
  61. - name: media
  62. persistentVolumeClaim:
  63. claimName: plex-pvc
  64. - name: media2
  65. persistentVolumeClaim:
  66. claimName: media2-pvc
  67. - name: data-ec
  68. persistentVolumeClaim:
  69. claimName: data-ec-pvc
  70. - name: config
  71. persistentVolumeClaim:
  72. claimName: qbittorrentvpn-pvc
  73. ---
  74. apiVersion: apps/v1
  75. kind: Deployment
  76. metadata:
  77. name: qbittorrentvpn-exporter
  78. namespace: plex
  79. spec:
  80. strategy:
  81. type: Recreate
  82. selector:
  83. matchLabels:
  84. app: qbittorrentvpn-exporter
  85. replicas: 1
  86. template:
  87. metadata:
  88. labels:
  89. app: qbittorrentvpn-exporter
  90. spec:
  91. affinity:
  92. nodeAffinity:
  93. requiredDuringSchedulingIgnoredDuringExecution:
  94. nodeSelectorTerms:
  95. - matchExpressions:
  96. - key: cluster-ingress
  97. operator: In
  98. values:
  99. - "true"
  100. containers:
  101. - name: qbittorrentvpn-exporter
  102. image: ghcr.io/esanchezm/prometheus-qbittorrent-exporter:v1.6.0
  103. ports:
  104. - containerPort: 8000
  105. name: metrics
  106. envFrom:
  107. - secretRef:
  108. name: qbittorrentvpn-exporter-secret
  109. livenessProbe:
  110. exec:
  111. command:
  112. - "/bin/sh"
  113. - "-c"
  114. - 'wget -O - 0.0.0.0:8000 | grep -E "qbittorrent_up\{.* 1.0"'
  115. initialDelaySeconds: 3
  116. periodSeconds: 3
  117. resources:
  118. requests:
  119. memory: "0"
  120. limits:
  121. memory: "256Mi"
  122. ---
  123. apiVersion: v1
  124. kind: Service
  125. metadata:
  126. name: qbittorrentvpn-service
  127. namespace: plex
  128. spec:
  129. selector:
  130. app: qbittorrentvpn
  131. type: ClusterIP
  132. ports:
  133. - name: qbittorrentvpn-web-port
  134. protocol: TCP
  135. port: 8080
  136. targetPort: http-web-svc
  137. ---
  138. apiVersion: v1
  139. kind: Service
  140. metadata:
  141. name: qbittorrentvpn-exporter-service
  142. namespace: plex
  143. labels:
  144. app: qbittorrentvpn-exporter
  145. spec:
  146. selector:
  147. app: qbittorrentvpn-exporter
  148. type: ClusterIP
  149. ports:
  150. - name: metrics
  151. protocol: TCP
  152. port: 8000
  153. targetPort: metrics
  154. ---
  155. apiVersion: networking.k8s.io/v1
  156. kind: Ingress
  157. metadata:
  158. name: qbittorrentvpn
  159. namespace: plex
  160. annotations:
  161. traefik.ingress.kubernetes.io/router.entrypoints: websecure
  162. traefik.ingress.kubernetes.io/router.middlewares: kube-system-lanonly@kubernetescrd
  163. spec:
  164. rules:
  165. - host: qbittorrentvpn.lan.jibby.org
  166. http:
  167. paths:
  168. - path: /
  169. pathType: Prefix
  170. backend:
  171. service:
  172. name: qbittorrentvpn-service
  173. port:
  174. number: 8080