Last active
June 12, 2020 14:12
-
-
Save iler/80f7c04496947b2be1f0aa739a64badf to your computer and use it in GitHub Desktop.
Metallb + pihole
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apiVersion: v1 | |
| kind: Namespace | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: metallb-system | |
| --- | |
| apiVersion: policy/v1beta1 | |
| kind: PodSecurityPolicy | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: speaker | |
| namespace: metallb-system | |
| spec: | |
| allowPrivilegeEscalation: false | |
| allowedCapabilities: | |
| - NET_ADMIN | |
| - NET_RAW | |
| - SYS_ADMIN | |
| fsGroup: | |
| rule: RunAsAny | |
| hostNetwork: true | |
| hostPorts: | |
| - max: 7472 | |
| min: 7472 | |
| privileged: true | |
| runAsUser: | |
| rule: RunAsAny | |
| seLinux: | |
| rule: RunAsAny | |
| supplementalGroups: | |
| rule: RunAsAny | |
| volumes: | |
| - '*' | |
| --- | |
| apiVersion: v1 | |
| kind: ServiceAccount | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: controller | |
| namespace: metallb-system | |
| --- | |
| apiVersion: v1 | |
| kind: ServiceAccount | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: speaker | |
| namespace: metallb-system | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: ClusterRole | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: metallb-system:controller | |
| rules: | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - services | |
| verbs: | |
| - get | |
| - list | |
| - watch | |
| - update | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - services/status | |
| verbs: | |
| - update | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - events | |
| verbs: | |
| - create | |
| - patch | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: ClusterRole | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: metallb-system:speaker | |
| rules: | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - services | |
| - endpoints | |
| - nodes | |
| verbs: | |
| - get | |
| - list | |
| - watch | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - events | |
| verbs: | |
| - create | |
| - patch | |
| - apiGroups: | |
| - extensions | |
| resourceNames: | |
| - speaker | |
| resources: | |
| - podsecuritypolicies | |
| verbs: | |
| - use | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: Role | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: config-watcher | |
| namespace: metallb-system | |
| rules: | |
| - apiGroups: | |
| - '' | |
| resources: | |
| - configmaps | |
| verbs: | |
| - get | |
| - list | |
| - watch | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: ClusterRoleBinding | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: metallb-system:controller | |
| roleRef: | |
| apiGroup: rbac.authorization.k8s.io | |
| kind: ClusterRole | |
| name: metallb-system:controller | |
| subjects: | |
| - kind: ServiceAccount | |
| name: controller | |
| namespace: metallb-system | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: ClusterRoleBinding | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: metallb-system:speaker | |
| roleRef: | |
| apiGroup: rbac.authorization.k8s.io | |
| kind: ClusterRole | |
| name: metallb-system:speaker | |
| subjects: | |
| - kind: ServiceAccount | |
| name: speaker | |
| namespace: metallb-system | |
| --- | |
| apiVersion: rbac.authorization.k8s.io/v1 | |
| kind: RoleBinding | |
| metadata: | |
| labels: | |
| app: metallb | |
| name: config-watcher | |
| namespace: metallb-system | |
| roleRef: | |
| apiGroup: rbac.authorization.k8s.io | |
| kind: Role | |
| name: config-watcher | |
| subjects: | |
| - kind: ServiceAccount | |
| name: controller | |
| - kind: ServiceAccount | |
| name: speaker | |
| --- | |
| apiVersion: apps/v1 | |
| kind: DaemonSet | |
| metadata: | |
| labels: | |
| app: metallb | |
| component: speaker | |
| name: speaker | |
| namespace: metallb-system | |
| spec: | |
| selector: | |
| matchLabels: | |
| app: metallb | |
| component: speaker | |
| template: | |
| metadata: | |
| annotations: | |
| prometheus.io/port: '7472' | |
| prometheus.io/scrape: 'true' | |
| labels: | |
| app: metallb | |
| component: speaker | |
| spec: | |
| containers: | |
| - args: | |
| - --port=7472 | |
| - --config=config | |
| env: | |
| - name: METALLB_NODE_NAME | |
| valueFrom: | |
| fieldRef: | |
| fieldPath: spec.nodeName | |
| - name: METALLB_HOST | |
| valueFrom: | |
| fieldRef: | |
| fieldPath: status.hostIP | |
| image: metallb/speaker:v0.8.3 | |
| imagePullPolicy: IfNotPresent | |
| name: speaker | |
| ports: | |
| - containerPort: 7472 | |
| name: monitoring | |
| resources: | |
| limits: | |
| cpu: 100m | |
| memory: 100Mi | |
| securityContext: | |
| allowPrivilegeEscalation: false | |
| capabilities: | |
| add: | |
| - NET_ADMIN | |
| - NET_RAW | |
| - SYS_ADMIN | |
| drop: | |
| - ALL | |
| readOnlyRootFilesystem: true | |
| hostNetwork: true | |
| nodeSelector: | |
| beta.kubernetes.io/os: linux | |
| serviceAccountName: speaker | |
| terminationGracePeriodSeconds: 0 | |
| tolerations: | |
| - effect: NoSchedule | |
| key: node-role.kubernetes.io/master | |
| --- | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| labels: | |
| app: metallb | |
| component: controller | |
| name: controller | |
| namespace: metallb-system | |
| spec: | |
| revisionHistoryLimit: 3 | |
| selector: | |
| matchLabels: | |
| app: metallb | |
| component: controller | |
| template: | |
| metadata: | |
| annotations: | |
| prometheus.io/port: '7472' | |
| prometheus.io/scrape: 'true' | |
| labels: | |
| app: metallb | |
| component: controller | |
| spec: | |
| containers: | |
| - args: | |
| - --port=7472 | |
| - --config=config | |
| image: metallb/controller:v0.8.3 | |
| imagePullPolicy: IfNotPresent | |
| name: controller | |
| ports: | |
| - containerPort: 7472 | |
| name: monitoring | |
| resources: | |
| limits: | |
| cpu: 100m | |
| memory: 100Mi | |
| securityContext: | |
| allowPrivilegeEscalation: false | |
| capabilities: | |
| drop: | |
| - all | |
| readOnlyRootFilesystem: true | |
| nodeSelector: | |
| beta.kubernetes.io/os: linux | |
| securityContext: | |
| runAsNonRoot: true | |
| runAsUser: 65534 | |
| serviceAccountName: controller | |
| terminationGracePeriodSeconds: 0 |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| namespace: metallb-system | |
| name: metallb-config | |
| data: | |
| config: | | |
| peers: | |
| - peer-address: "10.10.70.1" | |
| peer-asn: 64512 | |
| my-asn: 64512 | |
| address-pools: | |
| - name: default | |
| protocol: bgp | |
| addresses: | |
| - "10.10.71.0/24" | |
| avoid-buggy-ips: true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| apiVersion: v1 | |
| kind: Namespace | |
| metadata: | |
| name: pihole-system | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: pihole-ftl.conf | |
| namespace: pihole-system | |
| data: | |
| pihole-FTL.conf: | | |
| MAXDBDAYS=7 | |
| LOGFILE=/var/log/pihole/pihole-FTL.log | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: whitelist.txt | |
| namespace: pihole-system | |
| data: | |
| whitelist.txt: | | |
| ichnaea.netflix.com | |
| nrdp.nccp.netflix.com | |
| collector-medium.lightstep.com | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: adlists.list | |
| namespace: pihole-system | |
| data: | |
| adlists.list: | | |
| https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | |
| https://mirror1.malwaredomains.com/files/justdomains | |
| http://sysctl.org/cameleon/hosts | |
| https://s3.amazonaws.com/lists.disconnect.me/simple_tracking.txt | |
| https://s3.amazonaws.com/lists.disconnect.me/simple_ad.txt | |
| https://hosts-file.net/ad_servers.txt | |
| https://raw.githubusercontent.com/Perflyst/PiHoleBlocklist/master/SmartTV.txt | |
| https://raw.githubusercontent.com/crazy-max/WindowsSpyBlocker/master/data/hosts/spy.txt | |
| https://blocklist.site/app/dl/malware | |
| https://blocklist.site/app/dl/spam | |
| https://raw.githubusercontent.com/StevenBlack/hosts/master/hosts | |
| https://gitlab.com/quidsup/notrack-blocklists/raw/master/notrack-blocklist.txt | |
| --- | |
| apiVersion: v1 | |
| kind: ConfigMap | |
| metadata: | |
| name: pihole-env | |
| namespace: pihole-system | |
| data: | |
| TZ: Europe/Helsinki | |
| DNS1: 127.0.0.1#5054 | |
| DNS2: 127.0.0.1#5054 | |
| WEBPASSWORD: anther-visceral-defecate-valet-hindu | |
| --- | |
| apiVersion: apps/v1 | |
| kind: Deployment | |
| metadata: | |
| name: pihole | |
| namespace: pihole-system | |
| labels: | |
| app: pihole | |
| spec: | |
| replicas: 3 | |
| selector: | |
| matchLabels: | |
| app: pihole | |
| template: | |
| metadata: | |
| labels: | |
| app: pihole | |
| spec: | |
| containers: | |
| - name: pihole-cloudflared | |
| image: visibilityspots/cloudflared:amd64 | |
| resources: | |
| requests: | |
| memory: "64Mi" | |
| cpu: "250m" | |
| limits: | |
| memory: "128Mi" | |
| cpu: "500m" | |
| - name: pihole-core | |
| image: pihole/pihole:4.3.2-1 | |
| resources: | |
| requests: | |
| memory: "64Mi" | |
| cpu: "250m" | |
| limits: | |
| memory: "128Mi" | |
| cpu: "500m" | |
| readinessProbe: | |
| exec: | |
| command: ['dig', '@127.0.0.1', 'hs.fi'] | |
| timeoutSeconds: 20 | |
| initialDelaySeconds: 5 | |
| periodSeconds: 60 | |
| env: | |
| - name: TZ | |
| valueFrom: | |
| configMapKeyRef: | |
| name: pihole-env | |
| key: TZ | |
| - name: WEBPASSWORD | |
| valueFrom: | |
| configMapKeyRef: | |
| name: pihole-env | |
| key: WEBPASSWORD | |
| - name: DNS1 | |
| valueFrom: | |
| configMapKeyRef: | |
| name: pihole-env | |
| key: DNS1 | |
| - name: DNS2 | |
| valueFrom: | |
| configMapKeyRef: | |
| name: pihole-env | |
| key: DNS2 | |
| ports: | |
| - name: web | |
| containerPort: 80 | |
| - name : dns | |
| protocol : UDP | |
| containerPort: 53 | |
| volumeMounts: | |
| - name: etc-pihole | |
| mountPath: /etc/pihole | |
| - name: etc-dnsmasq | |
| mountPath: /etc/dnsmasq.d | |
| - name: var-log | |
| mountPath: /var/log | |
| - name: var-log-lighttpd | |
| mountPath: /var/log/lighttpd | |
| - name: ftlconf | |
| mountPath: /etc/pihole/pihole-FTL.conf | |
| subPath: pihole-FTL.conf | |
| - name: whitelist | |
| mountPath: /etc/pihole/whitelist.txt | |
| subPath: whitelist.txt | |
| - name: adlists | |
| mountPath: /etc/pihole/adlists.list | |
| subPath: adlists.list | |
| volumes: | |
| - name: etc-pihole | |
| emptyDir: | |
| medium: Memory | |
| - name: etc-dnsmasq | |
| emptyDir: | |
| medium: Memory | |
| - name: var-log | |
| emptyDir: | |
| medium: Memory | |
| - name: var-log-lighttpd | |
| emptyDir: | |
| medium: Memory | |
| - name: ftlconf | |
| configMap: | |
| name: pihole-ftl.conf | |
| items: | |
| - key: pihole-FTL.conf | |
| path: pihole-FTL.conf | |
| - name: whitelist | |
| configMap: | |
| name: whitelist.txt | |
| items: | |
| - key: whitelist.txt | |
| path: whitelist.txt | |
| - name: adlists | |
| configMap: | |
| name: adlists.list | |
| items: | |
| - key: adlists.list | |
| path: adlists.list | |
| --- | |
| kind: Service | |
| apiVersion: v1 | |
| metadata: | |
| name: pihole-web-service | |
| namespace : pihole-system | |
| spec: | |
| selector: | |
| app: pihole | |
| ports: | |
| - protocol: TCP | |
| port: 80 | |
| targetPort: 80 | |
| name : web | |
| type: LoadBalancer | |
| loadBalancerIP: 10.10.71.10 | |
| --- | |
| kind: Service | |
| apiVersion: v1 | |
| metadata: | |
| name: pihole-dns-service | |
| namespace: pihole-system | |
| spec: | |
| selector: | |
| app: pihole | |
| ports: | |
| - protocol: UDP | |
| port: 53 | |
| targetPort: 53 | |
| name : dns | |
| type: LoadBalancer | |
| loadBalancerIP: 10.10.71.10 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment