sickchill.yaml 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: sickchill
  5. labels:
  6. run: sickchill
  7. spec:
  8. ports:
  9. - name: http
  10. port: 80
  11. targetPort: 8081
  12. selector:
  13. run: sickchill
  14. # type: LoadBalancer
  15. #status:
  16. # loadBalancer: {}
  17. ---
  18. apiVersion: v1
  19. kind: PersistentVolume
  20. metadata:
  21. name: sickchill-tv
  22. spec:
  23. capacity:
  24. storage: 10Ti
  25. volumeMode: Filesystem
  26. accessModes:
  27. - ReadWriteMany
  28. persistentVolumeReclaimPolicy: Retain # Keep 4eva
  29. storageClassName: default
  30. mountOptions:
  31. - hard
  32. - nfsvers=3
  33. nfs:
  34. path: /mnt/DroboFS/Shares/Public/media/tv
  35. server: 10.42.42.10
  36. claimRef:
  37. name: sickchill-tv
  38. namespace: default
  39. ---
  40. apiVersion: v1
  41. kind: PersistentVolume
  42. metadata:
  43. name: sickchill-shared
  44. spec:
  45. capacity:
  46. storage: 10Ti
  47. volumeMode: Filesystem
  48. accessModes:
  49. - ReadWriteMany
  50. persistentVolumeReclaimPolicy: Retain # Keep 4eva
  51. storageClassName: default
  52. mountOptions:
  53. - hard
  54. - nfsvers=3
  55. nfs:
  56. path: /mnt/DroboFS/Shares/Public/
  57. server: 10.42.42.10
  58. claimRef:
  59. name: sickchill-shared
  60. namespace: default
  61. ---
  62. apiVersion: v1
  63. kind: PersistentVolumeClaim
  64. metadata:
  65. name: sickchill-tv
  66. spec:
  67. storageClassName: standard
  68. accessModes:
  69. - ReadWriteMany
  70. resources:
  71. requests:
  72. storage: 10Ti
  73. status: {}
  74. ---
  75. apiVersion: v1
  76. kind: PersistentVolumeClaim
  77. metadata:
  78. name: sickchill-shared
  79. spec:
  80. storageClassName: standard
  81. accessModes:
  82. - ReadWriteMany
  83. resources:
  84. requests:
  85. storage: 10Ti
  86. status: {}
  87. ---
  88. apiVersion: v1
  89. kind: PersistentVolumeClaim
  90. metadata:
  91. name: sickchill-config
  92. annotations:
  93. nfs.io/storage-path: "sickchill-config"
  94. spec:
  95. storageClassName: managed-nfs-storage
  96. accessModes:
  97. - ReadWriteMany
  98. resources:
  99. requests:
  100. storage: 5Mi
  101. status: {}
  102. ---
  103. apiVersion: v1
  104. kind: PersistentVolumeClaim
  105. metadata:
  106. name: sickchill-downloads
  107. annotations:
  108. nfs.io/storage-path: "sickchill-downloads"
  109. spec:
  110. storageClassName: managed-nfs-storage
  111. accessModes:
  112. - ReadWriteMany
  113. resources:
  114. requests:
  115. storage: 5Mi
  116. status: {}
  117. ---
  118. apiVersion: apps/v1
  119. kind: Deployment
  120. metadata:
  121. name: sickchill
  122. spec:
  123. replicas: 1
  124. selector:
  125. matchLabels:
  126. run: sickchill
  127. strategy:
  128. type: Recreate
  129. template:
  130. metadata:
  131. labels:
  132. run: sickchill
  133. spec:
  134. containers:
  135. - image: linuxserver/sickchill
  136. name: sickchill
  137. env:
  138. - name: TZ
  139. value: US/Michigan
  140. ports:
  141. - containerPort: 8081
  142. resources: {}
  143. volumeMounts:
  144. - mountPath: /config
  145. name: sickchill-config
  146. - mountPath: /downloads
  147. name: sickchill-downloads
  148. - mountPath: /tv
  149. name: sickchill-tv
  150. - mountPath: /shared
  151. name: sickchill-shared
  152. restartPolicy: Always
  153. volumes:
  154. - name: sickchill-config
  155. persistentVolumeClaim:
  156. claimName: sickchill-config
  157. - name: sickchill-downloads
  158. persistentVolumeClaim:
  159. claimName: sickchill-downloads
  160. - name: sickchill-tv
  161. persistentVolumeClaim:
  162. claimName: sickchill-tv
  163. - name: sickchill-shared
  164. persistentVolumeClaim:
  165. claimName: sickchill-shared
  166. status: {}
  167. ---
  168. # Hosting
  169. apiVersion: networking.k8s.io/v1
  170. kind: Ingress
  171. metadata:
  172. name: sickchill-ingress
  173. annotations:
  174. cert-manager.io/cluster-issuer: "letsencrypt-prod"
  175. ## No basic auth for sickchill
  176. ## type of authentication
  177. #nginx.ingress.kubernetes.io/auth-type: basic
  178. ## name of the secret that contains the user/password definitions
  179. #nginx.ingress.kubernetes.io/auth-secret: basic-auth
  180. ## message to display with an appropriate context why the authentication is required
  181. #nginx.ingress.kubernetes.io/auth-realm: 'Authentication Required - Octoprint'
  182. spec:
  183. tls:
  184. - hosts:
  185. - sickchill.monkeybox.org
  186. - tv.monkeybox.org
  187. secretName: sickchill-tls
  188. rules:
  189. - host: sickchill.monkeybox.org
  190. http:
  191. paths:
  192. - path: /
  193. pathType: Prefix
  194. backend:
  195. service:
  196. name: sickchill
  197. port:
  198. number: 80
  199. - host: tv.monkeybox.org
  200. http:
  201. paths:
  202. - path: /
  203. pathType: Prefix
  204. backend:
  205. service:
  206. name: sickchill
  207. port:
  208. number: 80