aboutsummaryrefslogtreecommitdiff
path: root/roles/pihole/files
diff options
context:
space:
mode:
Diffstat (limited to 'roles/pihole/files')
-rw-r--r--roles/pihole/files/pihole.service14
-rw-r--r--roles/pihole/files/pihole/.helmignore23
-rw-r--r--roles/pihole/files/pihole/Chart.yaml6
-rw-r--r--roles/pihole/files/pihole/templates/deployment.yaml37
-rw-r--r--roles/pihole/files/pihole/templates/ingress.yaml34
-rw-r--r--roles/pihole/files/pihole/templates/pv.yaml16
-rw-r--r--roles/pihole/files/pihole/templates/pvc.yaml14
-rw-r--r--roles/pihole/files/pihole/templates/service.yaml21
8 files changed, 165 insertions, 0 deletions
diff --git a/roles/pihole/files/pihole.service b/roles/pihole/files/pihole.service
new file mode 100644
index 0000000..6d992d0
--- /dev/null
+++ b/roles/pihole/files/pihole.service
@@ -0,0 +1,14 @@
+[Unit]
+Description=Manage PiHole
+After=network-online.target
+Wants=network-online.target
+
+[Service]
+Type=oneshot
+RemainAfterExit=true
+User=root
+ExecStart=/usr/local/bin/podman-compose -f /opt/containers/pihole.yaml up -d
+ExecStop=/usr/local/bin/podman-compose -f /opt/containers/pihole.yaml down
+
+[Install]
+WantedBy=multi-user.target
diff --git a/roles/pihole/files/pihole/.helmignore b/roles/pihole/files/pihole/.helmignore
new file mode 100644
index 0000000..0e8a0eb
--- /dev/null
+++ b/roles/pihole/files/pihole/.helmignore
@@ -0,0 +1,23 @@
+# Patterns to ignore when building packages.
+# This supports shell glob matching, relative path matching, and
+# negation (prefixed with !). Only one pattern per line.
+.DS_Store
+# Common VCS dirs
+.git/
+.gitignore
+.bzr/
+.bzrignore
+.hg/
+.hgignore
+.svn/
+# Common backup files
+*.swp
+*.bak
+*.tmp
+*.orig
+*~
+# Various IDEs
+.project
+.idea/
+*.tmproj
+.vscode/
diff --git a/roles/pihole/files/pihole/Chart.yaml b/roles/pihole/files/pihole/Chart.yaml
new file mode 100644
index 0000000..e472ab4
--- /dev/null
+++ b/roles/pihole/files/pihole/Chart.yaml
@@ -0,0 +1,6 @@
+apiVersion: v2
+name: pihole
+description: PiHole on K8s
+type: application
+
+version: 0.1.0
diff --git a/roles/pihole/files/pihole/templates/deployment.yaml b/roles/pihole/files/pihole/templates/deployment.yaml
new file mode 100644
index 0000000..4fc7faa
--- /dev/null
+++ b/roles/pihole/files/pihole/templates/deployment.yaml
@@ -0,0 +1,37 @@
+apiVersion: apps/v1
+kind: Deployment
+metadata:
+ name: "{{ .Chart.Name }}-deployment"
+ labels:
+ app: {{ .Chart.Name }}
+spec:
+ replicas: {{ .Values.replicas }}
+ selector:
+ matchLabels:
+ app: {{ .Chart.Name }}
+ template:
+ metadata:
+ labels:
+ app: {{ .Chart.Name }}
+ spec:
+ containers:
+ - name: pihole
+ image: "{{ .Values.image }}:{{ .Values.version }}"
+ ports:
+ - containerPort: 53
+ protocol: TCP
+ - containerPort: 53
+ protocol: UDP
+ - containerPort: 80
+ protocol: TCP
+ volumeMounts:
+ - mountPath: "/etc/pihole"
+ name: "{{ .Chart.Name }}-volume"
+ subPath: "pihole"
+ - mountPath: "/etc/dnsmasq.d"
+ name: "{{ .Chart.Name }}-volume"
+ subPath: "dnsmasq"
+ volumes:
+ - name: "{{ .Chart.Name }}-volume"
+ persistentVolumeClaim:
+ claimName: "{{ .Chart.Name }}-pvc"
diff --git a/roles/pihole/files/pihole/templates/ingress.yaml b/roles/pihole/files/pihole/templates/ingress.yaml
new file mode 100644
index 0000000..8e84845
--- /dev/null
+++ b/roles/pihole/files/pihole/templates/ingress.yaml
@@ -0,0 +1,34 @@
+apiVersion: networking.k8s.io/v1
+kind: Ingress
+metadata:
+ name: pihole
+ annotations:
+ cert-manager.io/cluster-issuer: "ca-issuer"
+spec:
+ ingressClassName: traefik
+ tls:
+ - hosts:
+ - dns.aadityadhruv.com
+ - dns.home
+ secretName: pihole-tls
+ rules:
+ - host: dns.home
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: pihole-service
+ port:
+ number: 80
+ - host: dns.aadityadhruv.com
+ http:
+ paths:
+ - path: /
+ pathType: Prefix
+ backend:
+ service:
+ name: pihole-service
+ port:
+ number: 80
diff --git a/roles/pihole/files/pihole/templates/pv.yaml b/roles/pihole/files/pihole/templates/pv.yaml
new file mode 100644
index 0000000..498fbd5
--- /dev/null
+++ b/roles/pihole/files/pihole/templates/pv.yaml
@@ -0,0 +1,16 @@
+apiVersion: v1
+kind: PersistentVolume
+metadata:
+ name: "{{ .Chart.Name }}-pv"
+ labels:
+ app: "{{ .Chart.Name }}-pv"
+spec:
+ storageClassName: nfs
+ capacity:
+ storage: 2Gi
+ accessModes:
+ - ReadWriteMany
+ nfs:
+ server: {{ .Values.nfs.server }}
+ path: {{ .Values.nfs.path }}
+ readOnly: false
diff --git a/roles/pihole/files/pihole/templates/pvc.yaml b/roles/pihole/files/pihole/templates/pvc.yaml
new file mode 100644
index 0000000..71b9b85
--- /dev/null
+++ b/roles/pihole/files/pihole/templates/pvc.yaml
@@ -0,0 +1,14 @@
+apiVersion: v1
+kind: PersistentVolumeClaim
+metadata:
+ name: {{ .Chart.Name }}-pvc
+spec:
+ storageClassName: nfs
+ accessModes:
+ - ReadWriteMany
+ resources:
+ requests:
+ storage: 2Gi
+ selector:
+ matchLabels:
+ app: "{{ .Chart.Name }}-pv"
diff --git a/roles/pihole/files/pihole/templates/service.yaml b/roles/pihole/files/pihole/templates/service.yaml
new file mode 100644
index 0000000..72612c0
--- /dev/null
+++ b/roles/pihole/files/pihole/templates/service.yaml
@@ -0,0 +1,21 @@
+apiVersion: v1
+kind: Service
+metadata:
+ name: {{ .Chart.Name }}-service
+spec:
+ type: LoadBalancer
+ selector:
+ app: {{ .Chart.Name }}
+ ports:
+ - name: dns-tcp
+ port: 53
+ targetPort: 53
+ protocol: TCP
+ - name: dns-udp
+ port: 53
+ targetPort: 53
+ protocol: UDP
+ - name: web
+ port: 80
+ targetPort: 80
+ protocol: TCP