pihole.yaml 5.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. apiVersion: apps/v1
  2. kind: Deployment
  3. metadata:
  4. name: pihole
  5. labels:
  6. app: pihole
  7. spec:
  8. selector:
  9. matchLabels:
  10. octopusexport: OctopusExport
  11. revisionHistoryLimit: 10
  12. replicas: 1
  13. strategy:
  14. type: RollingUpdate
  15. template:
  16. metadata:
  17. labels:
  18. app: pihole
  19. octopusexport: OctopusExport
  20. spec:
  21. dnsPolicy: ClusterFirstWithHostNet
  22. dnsConfig:
  23. nameservers:
  24. - 192.168.1.9
  25. - 8.8.8.8
  26. searches:
  27. - dezendorf.net
  28. - dezendorf.com
  29. volumes:
  30. - name: piholeetc
  31. persistentVolumeClaim:
  32. claimName: piholeetc
  33. - name: piholednsmasq
  34. persistentVolumeClaim:
  35. claimName: piholednsmasq
  36. - name: "pihole-custom-list"
  37. configMap:
  38. name: "pihole-custom-list"
  39. containers:
  40. - name: pihole
  41. image: 'pihole/pihole:latest'
  42. ports:
  43. - name: dns-udp
  44. containerPort: 53
  45. protocol: UDP
  46. - name: dns-tcp
  47. containerPort: 53
  48. protocol: TCP
  49. - name: web
  50. containerPort: 80
  51. protocol: TCP
  52. volumeMounts:
  53. - name: piholeetc
  54. mountPath: /etc/pihole
  55. subPath: ''
  56. - name: piholednsmasq
  57. mountPath: /etc/dnsmasq.d
  58. subPath: ''
  59. - name: "pihole-custom-list"
  60. mountPath: "/etc/pihole/custom.list"
  61. subPath: "custom.list"
  62. affinity:
  63. podAntiAffinity:
  64. preferredDuringSchedulingIgnoredDuringExecution:
  65. - weight: 100
  66. podAffinityTerm:
  67. labelSelector:
  68. matchExpressions:
  69. - key: app
  70. operator: In
  71. values:
  72. - web
  73. topologyKey: kubernetes.io/hostname
  74. ---
  75. apiVersion: v1
  76. kind: PersistentVolumeClaim
  77. metadata:
  78. name: piholednsmasq
  79. namespace: default
  80. spec:
  81. accessModes:
  82. - ReadWriteOnce
  83. resources:
  84. requests:
  85. storage: 500M
  86. storageClassName: longhorn
  87. ---
  88. apiVersion: v1
  89. kind: PersistentVolumeClaim
  90. metadata:
  91. name: piholeetc
  92. namespace: default
  93. spec:
  94. accessModes:
  95. - ReadWriteOnce
  96. resources:
  97. requests:
  98. storage: 500M
  99. storageClassName: longhorn
  100. ---
  101. apiVersion: traefik.containo.us/v1alpha1
  102. kind: IngressRoute
  103. metadata:
  104. name: pihole-websecure-route
  105. namespace: default
  106. spec:
  107. entryPoints:
  108. - websecure
  109. routes:
  110. - match: Host(`pihole.dezendorf.net`)
  111. kind: Rule
  112. services:
  113. - name: pihole-web-svc
  114. port: 80
  115. tls:
  116. certResolver: myresolver
  117. ---
  118. apiVersion: v1
  119. kind: Service
  120. metadata:
  121. name: pihole-web-svc
  122. spec:
  123. type: ClusterIP
  124. ports:
  125. - name: websecure
  126. port: 80
  127. targetPort: 80
  128. selector:
  129. app: pihole
  130. ---
  131. apiVersion: v1
  132. kind: Service
  133. metadata:
  134. name: pihole-dns-tcp-svc
  135. spec:
  136. type: ClusterIP
  137. selector:
  138. app: pihole
  139. ports:
  140. - name: dns-tcp
  141. port: 53
  142. targetPort: 53
  143. protocol: TCP
  144. ---
  145. apiVersion: v1
  146. kind: Service
  147. metadata:
  148. name: pihole-dns-udp-svc
  149. spec:
  150. type: ClusterIP
  151. selector:
  152. app: pihole
  153. ports:
  154. - name: dns-udp
  155. port: 53
  156. targetPort: 53
  157. protocol: UDP
  158. ---
  159. apiVersion: traefik.containo.us/v1alpha1
  160. kind: IngressRoute
  161. metadata:
  162. name: pihole-web-route
  163. namespace: default
  164. spec:
  165. entryPoints:
  166. - web
  167. routes:
  168. - match: Host(`pihole.dezendorf.net`)
  169. kind: Rule
  170. middlewares:
  171. - name: redirecthttps
  172. services:
  173. - name: pihole-web-svc
  174. port: 80
  175. ---
  176. apiVersion: traefik.containo.us/v1alpha1
  177. kind: IngressRouteTCP
  178. metadata:
  179. name: pihole-tcp-route
  180. spec:
  181. entryPoints:
  182. - dns-tcp
  183. routes:
  184. - match: HostSNI(`*`)
  185. priority: 10
  186. services:
  187. - name: pihole-dns-tcp-svc
  188. port: 53
  189. ---
  190. apiVersion: traefik.containo.us/v1alpha1
  191. kind: IngressRouteUDP
  192. metadata:
  193. name: pihole-udp-route
  194. spec:
  195. entryPoints:
  196. - dns-udp
  197. routes:
  198. - services:
  199. - name: pihole-dns-udp-svc
  200. port: 53
  201. ---
  202. apiVersion: v1
  203. kind: ConfigMap
  204. metadata:
  205. name: pihole-custom-list
  206. namespace: default
  207. data:
  208. custom.list: |
  209. 192.168.1.87 go.dezendorf.net
  210. 192.168.1.9 gondor.dezendorf.net
  211. 192.168.1.87 pihole.dezendorf.net
  212. 192.168.1.87 tesseract.dezendorf.net
  213. 192.168.1.50 astoria.dezendorf.net
  214. 192.168.1.151 thin1.dezendorf.net
  215. 192.168.1.152 thin2.dezendorf.net
  216. 192.168.1.153 thin3.dezendorf.net
  217. 192.168.1.87 docker.dezendorf.net
  218. 192.168.1.87 sso.dezendorf.net
  219. 192.168.1.87 argocd.dezendorf.net
  220. 192.168.1.87 auth.dezendorf.net
  221. 192.168.1.87 longhorn.dezendorf.net
  222. 192.168.1.87 whoami.dezendorf.net
  223. 192.168.1.87 transmission.dezendorf.net
  224. 192.168.1.87 traefik.dezendorf.net
  225. 192.168.1.87 jackett.dezendorf.net
  226. 192.168.1.87 sonarr.dezendorf.net
  227. 192.168.1.87 radarr.dezendorf.net
  228. 192.168.1.87 bazarr.dezendorf.net
  229. 192.168.1.154 apc-pdu-01.dezendorf.net
  230. 192.168.1.158 thick1.dezendorf.net
  231. 192.168.1.87 grafana.dezendorf.net
  232. 192.168.1.87 prometheus.dezendorf.net
  233. 192.168.1.87 alertmanager.dezendorf.net
  234. 192.168.1.87 readarr.dezendorf.net
  235. 192.168.1.87 calibre.dezendorf.net
  236. 192.168.1.87 books.dezendorf.net
  237. 192.168.1.87 lidarr.dezendorf.net
  238. 192.168.1.87 airsonic.dezendorf.net
  239. 192.168.1.87 beets.dezendorf.net
  240. 192.168.1.87 codeserver.dezendorf.net
  241. 192.168.1.157 thick2.dezendorf.net
  242. 192.168.1.192 git.dezendorf.net
  243. 192.168.1.87 gogs.dezendorf.net