pihole.yaml 5.5 KB

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