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