adguard.yaml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. apiVersion: v1
  2. kind: Service
  3. metadata:
  4. name: adguard-tcp
  5. labels:
  6. run: adguard
  7. annotations:
  8. metallb.universe.tf/allow-shared-ip: "adguard"
  9. spec:
  10. ports:
  11. - name: dns
  12. protocol: TCP
  13. port: 53
  14. targetPort: 53
  15. - name: http
  16. protocol: TCP
  17. port: 80
  18. targetPort: 80
  19. - name: dns-over-https
  20. protocol: TCP
  21. port: 443
  22. targetPort: 443
  23. - name: dns-over-tls
  24. protocol: TCP
  25. port: 853
  26. targetPort: 853
  27. - name: adguard-management
  28. protocol: TCP
  29. port: 3000
  30. targetPort: 3000
  31. - name: dnscrypt
  32. protocol: TCP
  33. port: 5443
  34. targetPort: 5443
  35. selector:
  36. run: adguard
  37. type: LoadBalancer
  38. loadBalancerIP: 10.42.42.239
  39. ---
  40. apiVersion: v1
  41. kind: Service
  42. metadata:
  43. name: adguard-udp
  44. labels:
  45. run: adguard
  46. annotations:
  47. metallb.universe.tf/allow-shared-ip: "adguard"
  48. spec:
  49. ports:
  50. - name: dns
  51. protocol: UDP
  52. port: 53
  53. targetPort: 53
  54. - name: dns-over-quic
  55. protocol: UDP
  56. port: 784
  57. targetPort: 784
  58. - name: dnscrypt
  59. protocol: UDP
  60. port: 5443
  61. targetPort: 5443
  62. selector:
  63. run: adguard
  64. type: LoadBalancer
  65. loadBalancerIP: 10.42.42.239
  66. ---
  67. apiVersion: v1
  68. kind: PersistentVolume
  69. metadata:
  70. name: adguard-config
  71. spec:
  72. capacity:
  73. storage: 5Mi
  74. volumeMode: Filesystem
  75. accessModes:
  76. - ReadWriteMany
  77. persistentVolumeReclaimPolicy: Retain # Keep 4eva
  78. storageClassName: default
  79. mountOptions:
  80. - hard
  81. - nfsvers=3
  82. nfs:
  83. path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/adguard-config
  84. server: 10.42.42.10
  85. claimRef:
  86. name: adguard-config
  87. namespace: default
  88. ---
  89. apiVersion: v1
  90. kind: PersistentVolumeClaim
  91. metadata:
  92. name: adguard-config
  93. annotations:
  94. nfs.io/storage-path: "adguard-config"
  95. spec:
  96. storageClassName: default
  97. accessModes:
  98. - ReadWriteMany
  99. resources:
  100. requests:
  101. storage: 5Mi
  102. status: {}
  103. ---
  104. apiVersion: v1
  105. kind: PersistentVolume
  106. metadata:
  107. name: adguard-data
  108. spec:
  109. capacity:
  110. storage: 5Mi
  111. volumeMode: Filesystem
  112. accessModes:
  113. - ReadWriteMany
  114. persistentVolumeReclaimPolicy: Retain # Keep 4eva
  115. storageClassName: default
  116. mountOptions:
  117. - hard
  118. - nfsvers=3
  119. nfs:
  120. path: /mnt/DroboFS/Shares/Kubernetes/volumes/static/adguard-data
  121. server: 10.42.42.10
  122. claimRef:
  123. name: adguard-data
  124. namespace: default
  125. ---
  126. apiVersion: v1
  127. kind: PersistentVolumeClaim
  128. metadata:
  129. name: adguard-data
  130. annotations:
  131. nfs.io/storage-path: "adguard-data"
  132. spec:
  133. storageClassName: default
  134. accessModes:
  135. - ReadWriteMany
  136. resources:
  137. requests:
  138. storage: 5Mi
  139. status: {}
  140. ---
  141. apiVersion: apps/v1
  142. kind: Deployment
  143. metadata:
  144. name: adguard
  145. spec:
  146. replicas: 1
  147. selector:
  148. matchLabels:
  149. run: adguard
  150. strategy:
  151. type: Recreate
  152. template:
  153. metadata:
  154. labels:
  155. run: adguard
  156. spec:
  157. containers:
  158. - image: adguard/adguardhome
  159. name: adguard
  160. ports:
  161. - containerPort: 53
  162. protocol: UDP
  163. - containerPort: 53
  164. protocol: TCP
  165. - containerPort: 80
  166. protocol: TCP
  167. - containerPort: 3000
  168. protocol: TCP
  169. - containerPort: 443
  170. protocol: TCP
  171. - containerPort: 853
  172. protocol: TCP
  173. - containerPort: 5443
  174. protocol: TCP
  175. - containerPort: 5443
  176. protocol: UDP
  177. resources: {}
  178. volumeMounts:
  179. - mountPath: /opt/adguardhome/work
  180. name: adguard-data
  181. - mountPath: /opt/adguardhome/conf
  182. name: adguard-config
  183. restartPolicy: Always
  184. volumes:
  185. - name: adguard-data
  186. persistentVolumeClaim:
  187. claimName: adguard-data
  188. - name: adguard-config
  189. persistentVolumeClaim:
  190. claimName: adguard-config
  191. status: {}
  192. ---
  193. # Hosting
  194. apiVersion: networking.k8s.io/v1
  195. kind: Ingress
  196. metadata:
  197. name: adguard-management
  198. annotations:
  199. #nginx.ingress.kubernetes.io/backend-protocol: "HTTPS"
  200. #nginx.ingress.kubernetes.io/proxy-ssl-verify: "off"
  201. cert-manager.io/cluster-issuer: "letsencrypt-prod"
  202. spec:
  203. tls:
  204. - hosts:
  205. - adguard.monkeybox.org
  206. secretName: adguard-tls
  207. rules:
  208. - host: adguard.monkeybox.org
  209. http:
  210. paths:
  211. - path: /
  212. pathType: Prefix
  213. backend:
  214. service:
  215. name: adguard-tcp
  216. port:
  217. number: 3000