| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245 | apiVersion: apps/v1kind: Deploymentmetadata:  name: pihole  labels:    app: piholespec:  selector:    matchLabels:      octopusexport: OctopusExport  revisionHistoryLimit: 10  replicas: 1  strategy:    type: RollingUpdate  template:    metadata:      labels:        app: pihole        octopusexport: OctopusExport    spec:      dnsPolicy: ClusterFirstWithHostNet      dnsConfig:        nameservers:          - 192.168.1.9          - 8.8.8.8        searches:          - dezendorf.net          - dezendorf.com      volumes:        - name: piholeetc          persistentVolumeClaim:            claimName: piholeetc        - name: piholednsmasq          persistentVolumeClaim:            claimName: piholednsmasq      containers:        - name: pihole          image: 'pihole/pihole:latest'          ports:            - name: dns-udp              containerPort: 53              protocol: UDP            - name: dns-tcp              containerPort: 53              protocol: TCP            - name: web              containerPort: 80              protocol: TCP          volumeMounts:            - name: piholeetc              mountPath: /etc/pihole              subPath: ''            - name: piholednsmasq              mountPath: /etc/dnsmasq.d              subPath: ''            - name: "pihole-custom-list"              mountPath: "/etc/pihole/custom.list"              subPath: "custom.list"      volumes:        - name: "pihole-custom-list"          configMap:            name: "pihole-custom-list"      affinity:        podAntiAffinity:          preferredDuringSchedulingIgnoredDuringExecution:            - weight: 100              podAffinityTerm:                labelSelector:                  matchExpressions:                    - key: app                      operator: In                      values:                        - web                topologyKey: kubernetes.io/hostname---apiVersion: v1kind: PersistentVolumeClaimmetadata:  name: piholednsmasq  namespace: defaultspec:  accessModes:  - ReadWriteOnce  resources:    requests:      storage: 500M  storageClassName: longhorn---apiVersion: v1kind: PersistentVolumeClaimmetadata:   name: piholeetc  namespace: defaultspec:       accessModes:  - ReadWriteOnce  resources:    requests:      storage: 500M  storageClassName: longhorn---apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: pihole-websecure-route  namespace: defaultspec:  entryPoints:    - websecure  routes:  - match: Host(`pihole.dezendorf.net`)    kind: Rule    services:    - name: pihole-web-svc      port: 80  tls:    certResolver: myresolver---apiVersion: v1kind: Servicemetadata:  name: pihole-web-svcspec:  type: ClusterIP  ports:    - name: websecure      port: 80      targetPort: 80  selector:    app: pihole---apiVersion: v1kind: Servicemetadata:  name: pihole-dns-tcp-svcspec:  type: ClusterIP  selector:    app: pihole  ports:    - name: dns-tcp      port: 53      targetPort: 53      protocol: TCP---apiVersion: v1kind: Servicemetadata:  name: pihole-dns-udp-svcspec:  type: ClusterIP  selector:    app: pihole  ports:    - name: dns-udp      port: 53      targetPort: 53      protocol: UDP---   apiVersion: traefik.containo.us/v1alpha1kind: IngressRoutemetadata:  name: pihole-web-route  namespace: defaultspec:  entryPoints:    - web  routes:  - match: Host(`pihole.dezendorf.net`)     kind: Rule    middlewares:    - name: redirecthttps    services:    - name: pihole-web-svc      port: 80---apiVersion: traefik.containo.us/v1alpha1kind: IngressRouteTCPmetadata:  name: pihole-tcp-routespec:  entryPoints:    - dns-tcp  routes:  - match: HostSNI(`*`)    priority: 10    services:    - name: pihole-dns-tcp-svc      port: 53---apiVersion: traefik.containo.us/v1alpha1kind: IngressRouteUDPmetadata:  name: pihole-udp-routespec:  entryPoints:    - dns-udp  routes:  - services:    - name: pihole-dns-udp-svc      port: 53---apiVersion: v1kind: ConfigMapmetadata:  name: pihole-custom-list  namespace: defaultdata:  custom.list: |    192.168.1.87 go.dezendorf.net    192.168.1.9 gondor.dezendorf.net    192.168.1.87 pihole.dezendorf.net    192.168.1.87 tesseract.dezendorf.net    192.168.1.50 astoria.dezendorf.net    192.168.1.151 thin1.dezendorf.net    192.168.1.152 thin2.dezendorf.net    192.168.1.153 thin3.dezendorf.net    192.168.1.87 docker.dezendorf.net    192.168.1.87 sso.dezendorf.net    192.168.1.87 argocd.dezendorf.net    192.168.1.87 auth.dezendorf.net    192.168.1.87 longhorn.dezendorf.net    192.168.1.87 whoami.dezendorf.net    192.168.1.87 transmission.dezendorf.net    192.168.1.87 traefik.dezendorf.net    192.168.1.87 jackett.dezendorf.net    192.168.1.87 sonarr.dezendorf.net    192.168.1.87 radarr.dezendorf.net    192.168.1.87 bazarr.dezendorf.net    192.168.1.154 apc-pdu-01.dezendorf.net    192.168.1.158 thick1.dezendorf.net    192.168.1.87 grafana.dezendorf.net    192.168.1.87 prometheus.dezendorf.net    192.168.1.87 alertmanager.dezendorf.net    192.168.1.87 readarr.dezendorf.net    192.168.1.87 calibre.dezendorf.net    192.168.1.87 books.dezendorf.net    192.168.1.87 lidarr.dezendorf.net    192.168.1.87 airsonic.dezendorf.net    192.168.1.87 beets.dezendorf.net    192.168.1.87 codeserver.dezendorf.net    192.168.1.157 thick2.dezendorf.net    192.168.1.192 git.dezendorf.net    192.168.1.87 gogs.dezendorf.net
 |