Skip to content

Instantly share code, notes, and snippets.

@manchuwook
Created May 11, 2020 16:20
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save manchuwook/e47ea3319102f083e3e5292f60176208 to your computer and use it in GitHub Desktop.
Save manchuwook/e47ea3319102f083e3e5292f60176208 to your computer and use it in GitHub Desktop.
PiHole Yaml
---
apiVersion: v1
kind: ServiceAccount
metadata:
name: pihole-admin
imagePullSecrets:
- name: dockersecret
---
apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
name: pihole-local
provisioner: kubernetes.io/no-provisioner
volumeBindingMode: WaitForFirstConsumer
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pihole-volume
labels:
directory: pihole
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: pihole-local
local:
path: /opt/pihole
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k3os-8675309
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pihole-claim
spec:
storageClassName: pihole-local
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 1Gi
selector:
matchLabels:
directory: pihole
---
apiVersion: v1
kind: PersistentVolume
metadata:
name: pihole-dnsmasq-volume
labels:
directory: dnsmasq.d
spec:
capacity:
storage: 1Gi
accessModes:
- ReadWriteOnce
persistentVolumeReclaimPolicy: Delete
storageClassName: pihole-local
local:
path: /opt/pihole/dnsmasq.d
nodeAffinity:
required:
nodeSelectorTerms:
- matchExpressions:
- key: kubernetes.io/hostname
operator: In
values:
- k3os-8675309
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
name: pihole-dnsmasq-claim
spec:
storageClassName: pihole-local
accessModes:
- ReadWriteOnce
resources:
requests:
storage: 500Mi
selector:
matchLabels:
directory: dnsmasq.d
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: pihole
labels:
app: pihole
spec:
replicas: 1
selector:
matchLabels:
app: pihole
template:
metadata:
labels:
app: pihole
name: pihole
spec:
serviceAccountName: pihole-admin
containers:
- name: pihole
image: pihole/pihole:latest
imagePullPolicy: Always
env:
- name: TZ
value: "America/Chicago"
- name: WEBPASSWORD
value: "AVALIDWEBPASSWORDGOESHERE"
volumeMounts:
- name: pihole-volume
mountPath: "/opt/pihole"
- name: pihole-dnsmasq-volume
mountPath: "/opt/pihole/dnsmasq.d"
volumes:
- name: pihole-volume
persistentVolumeClaim:
claimName: pihole-claim
- name: pihole-dnsmasq-volume
persistentVolumeClaim:
claimName: pihole-dnsmasq-claim
imagePullSecrets:
- name: dockersecret
---
apiVersion: v1
kind: Service
metadata:
name: pihole
spec:
selector:
app: pihole
ports:
- port: 8000
targetPort: 80
name: pihole-admin
- port: 53
targetPort: 53
protocol: TCP
name: dns-tcp
- port: 53
targetPort: 53
protocol: UDP
name: dns-udp
externalIPs:
- 192.168.0.155
@manchuwook
Copy link
Author

PW="AVALIDPA$$WORD"
TOKEN="2dF5f50f-13d4-4430-9afa-ea0ffaf1cf28" # a valid token provided by dockerhub
kubectl create secret docker-registry dockersecret \
 --docker-server=auth.docker.io \
 --docker-username=validuser \
 --docker-password=$TOKEN \
 --docker-email=validuser@validdomain.com \
 --namespace default

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment