pihole.yaml 4.7 KB

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