--- # ----------------------------------------------------------------------- # DEPLOYMENTS # ----------------------------------------------------------------------- apiVersion: apps/v1 kind: Deployment metadata: name: pihole namespace: networking spec: replicas: 1 selector: matchLabels: app: pihole template: metadata: labels: app: pihole spec: containers: - name: pihole image: pihole/pihole:latest imagePullPolicy: IfNotPresent env: - name: TZ value: "Australia/Melbourne" - name: FTLCONF_webserver_api_password value: grepgrepgrep # allow it to respond to devices outside cluster - name: FTLCONF_dns_listeningMode value: single # resolve wildcards - name: FTLCONF_misc_dnsmasq_lines value: address=/nightowl.strix.systems/192.168.1.88 ports: - containerPort: 53 protocol: TCP - containerPort: 53 protocol: UDP - containerPort: 67 protocol: UDP - containerPort: 80 protocol: TCP - containerPort: 443 protocol: TCP # volumeMounts: # - name: etc # mountPath: /etc/pihole # - name: dnsmasq # mountPath: /etc/dnsmasq.d resources: requests: memory: 128Mi cpu: 100m limits: memory: 2Gi cpu: 1 # volumes: # - name: etc # hostPath: # path: /data/pihole/etc # type: Directory # - name: dnsmasq # hostPath: # path: /data/pihole/dnsmasq.d # type: Directory # ----------------------------------------------------------------------- # SERVICES # ----------------------------------------------------------------------- --- kind: Service apiVersion: v1 metadata: name: pihole namespace: networking spec: selector: app: pihole ports: - name: web port: 80 targetPort: 80 - name: dns-tcp port: 53 targetPort: 53 protocol: TCP - name: dns-udp port: 53 targetPort: 53 protocol: UDP --- apiVersion: v1 kind: Service metadata: name: pihole-dns-udp namespace: networking spec: selector: app: pihole ports: - name: dns-udp port: 53 protocol: UDP externalTrafficPolicy: Local type: LoadBalancer --- apiVersion: v1 kind: Service metadata: name: pihole-dns-tcp namespace: networking spec: selector: app: pihole ports: - name: dns-tcp port: 53 protocol: TCP externalTrafficPolicy: Local type: LoadBalancer --- apiVersion: v1 kind: Service metadata: name: pihole-web-debug namespace: networking spec: selector: app: pihole ports: - name: dns-tcp port: 9980 targetPort: 80 protocol: TCP externalTrafficPolicy: Local type: LoadBalancer --- apiVersion: networking.k8s.io/v1 kind: Ingress metadata: name: pihole namespace: networking spec: ingressClassName: haproxy rules: - host: "pihole.nightowl.strix.systems" http: paths: - path: / pathType: Prefix backend: service: name: pihole port: name: web