apiVersion: v1
kind: ConfigMap
metadata:
name: pihole-adlists
data:
adlists.list: |
https://raw.githubusercontent.com/hagezi/dns-blocklists/main/adblock/pro.txt
---
apiVersion: v1
kind: ConfigMap
metadata:
name: pihole-regex
data:
regex.list: |
^(.+[-_.])??adse?rv(er?|ice)?s?[0-9]*[-.]
^(.+[-_.])??m?ad[sxv]?[0-9]*[-_.]
^(.+[-_.])??telemetry[-.]
^(.+[-_.])??xn--
^adim(age|g)s?[0-9]*[-_.]
^adtrack(er|ing)?[0-9]*[-.]
^advert(s|is(ing|ements?))?[0-9]*[-_.]
^aff(iliat(es?|ion))?[-.]
^analytics?[-.]
^banners?[-.]
^beacons?[0-9]*[-.]
^count(ers?)?[0-9]*[-.]
^pixels?[-.]
^stat(s|istics)?[0-9]*[-.]
^track(ers?|ing)?[0-9]*[-.]
^traff(ic)?[-.]
^(.*)\.g00\.(.*)
---
apiVersion: v1
kind: ConfigMap
metadata:
name: pihole-env
data:
TZ: America/New_York
FTLCONF_dns_upstreams: '127.0.0.1#5054'
FTLCONF_webserver_api_password: 'password'
FTLCONF_dns_listeningMode: 'all'
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: pihole
labels:
app: pihole
spec:
replicas: 1
selector:
matchLabels:
app: pihole
template:
metadata:
labels:
app: pihole
spec:
containers:
- name: cloudflared
image: visibilityspots/cloudflared
imagePullPolicy: IfNotPresent
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
- name: pihole
image: pihole/pihole
imagePullPolicy: IfNotPresent
resources:
requests:
memory: "64Mi"
cpu: "250m"
limits:
memory: "128Mi"
cpu: "500m"
env:
- name: TZ
valueFrom:
configMapKeyRef:
name: pihole-env
key: TZ
- name: FTLCONF_webserver_api_password
valueFrom:
configMapKeyRef:
name: pihole-env
key: FTLCONF_webserver_api_password
- name: FTLCONF_dns_upstreams
valueFrom:
configMapKeyRef:
name: pihole-env
key: FTLCONF_dns_upstreams
- name: FTLCONF_dns_listeningMode
valueFrom:
configMapKeyRef:
name: pihole-env
key: FTLCONF_dns_listeningMode
ports:
- name: web
containerPort: 80
- name : dns
protocol : UDP
containerPort: 53
volumeMounts:
- name: pihole-adlists
mountPath: /etc/pihole/adlists.list
subPath: adlists.list
- name: pihole-regex
mountPath: /etc/pihole/regex.list
subPath: regex.list
volumes:
- name: pihole-adlists
configMap:
name: pihole-adlists
- name: pihole-regex
configMap:
name: pihole-regex
---
kind: Service
apiVersion: v1
metadata:
name: pihole-web-service
spec:
selector:
app: pihole
ports:
- protocol: TCP
port: 80
targetPort: 80
name : web
type: LoadBalancer
---
kind: Service
apiVersion: v1
metadata:
name: pihole-dns-service
spec:
selector:
app: pihole
ports:
- protocol: UDP
port: 53
targetPort: 53
name : dns
type: LoadBalancer