pihole.yaml 4.7 KB

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