core services
This commit is contained in:
48
helm/helmfile.yaml
Normal file
48
helm/helmfile.yaml
Normal file
@@ -0,0 +1,48 @@
|
|||||||
|
repositories:
|
||||||
|
- name: longhorn
|
||||||
|
url: https://charts.longhorn.io
|
||||||
|
- name: metallb
|
||||||
|
url: https://metallb.github.io/metallb
|
||||||
|
- name: mojo2600
|
||||||
|
url: https://mojo2600.github.io/pihole-kubernetes
|
||||||
|
- name: ingress-nginx
|
||||||
|
url: https://kubernetes.github.io/ingress-nginx
|
||||||
|
- name: bitnami
|
||||||
|
url: https://charts.bitnami.com/bitnami
|
||||||
|
---
|
||||||
|
releases:
|
||||||
|
# Distributed Storage
|
||||||
|
- name: longhorn
|
||||||
|
namespace: longhorn-system
|
||||||
|
chart: longhorn/longhorn
|
||||||
|
version: 1.7.0
|
||||||
|
|
||||||
|
# Load Balancer
|
||||||
|
- name: metallb
|
||||||
|
namespace: metallb-system
|
||||||
|
chart: metallb/metallb
|
||||||
|
version: 0.14.8
|
||||||
|
|
||||||
|
# pihole
|
||||||
|
- name: pihole
|
||||||
|
namespace: pihole-system
|
||||||
|
chart: mojo2600/pihole
|
||||||
|
version: 2.26.1
|
||||||
|
values:
|
||||||
|
- ./values/pihole.values.yaml
|
||||||
|
|
||||||
|
# Ingress for local network
|
||||||
|
- name: ingress-nginx-internal
|
||||||
|
namespace: nginx-system
|
||||||
|
chart: ingress-nginx/ingress-nginx
|
||||||
|
version: 4.10.1
|
||||||
|
values:
|
||||||
|
- ./values/nginx-internal.values.yaml
|
||||||
|
|
||||||
|
# Automatic DNS for pihole
|
||||||
|
- name: externaldns-pihole
|
||||||
|
namespace: pihole-system
|
||||||
|
chart: bitnami/external-dns
|
||||||
|
version: 8.3.4
|
||||||
|
values:
|
||||||
|
- ./values/externaldns.values.yaml
|
||||||
16
helm/values/externaldns.values.yaml
Normal file
16
helm/values/externaldns.values.yaml
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
provider: pihole
|
||||||
|
policy: upsert-only
|
||||||
|
txtOwnerId: "homelab"
|
||||||
|
pihole:
|
||||||
|
server: http://pihole-web.pihole-system.svc.cluster.local
|
||||||
|
extraEnvVars:
|
||||||
|
- name: EXTERNAL_DNS_PIHOLE_PASSWORD
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
name: pihole-password
|
||||||
|
key: password
|
||||||
|
serviceAccount:
|
||||||
|
create: true
|
||||||
|
name: "external-dns"
|
||||||
|
ingressClassFilters:
|
||||||
|
- nginx-internal
|
||||||
17
helm/values/nginx-internal.values.yaml
Normal file
17
helm/values/nginx-internal.values.yaml
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
controller:
|
||||||
|
ingressClassResource:
|
||||||
|
# -- Name of the ingressClass
|
||||||
|
name: nginx-internal
|
||||||
|
# -- Is this ingressClass enabled or not
|
||||||
|
enabled: true
|
||||||
|
# -- Is this the default ingressClass for the cluster
|
||||||
|
default: true
|
||||||
|
# -- Controller-value of the controller that is processing this ingressClass
|
||||||
|
controllerValue: "k8s.io/ingress-nginx"
|
||||||
|
# -- Parameters is a link to a custom resource containing additional
|
||||||
|
# configuration for the controller. This is optional if the controller
|
||||||
|
# does not require extra parameters.
|
||||||
|
parameters: {}
|
||||||
|
# -- For backwards compatibility with ingress.class annotation, use ingressClass.
|
||||||
|
# Algorithm is as follows, first ingressClassName is considered, if not present, controller looks for ingress.class annotation
|
||||||
|
ingressClass: nginx-internal
|
||||||
20
helm/values/pihole.values.yaml
Normal file
20
helm/values/pihole.values.yaml
Normal file
@@ -0,0 +1,20 @@
|
|||||||
|
---
|
||||||
|
DNS1:
|
||||||
|
192.168.0.1
|
||||||
|
persistentVolumeClaim:
|
||||||
|
enabled: true
|
||||||
|
ingress:
|
||||||
|
enabled: true
|
||||||
|
hosts:
|
||||||
|
- "pihole.home"
|
||||||
|
serviceWeb:
|
||||||
|
loadBalancerIP: 192.168.0.250
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/allow-shared-ip: pihole-svc
|
||||||
|
type: LoadBalancer
|
||||||
|
serviceDns:
|
||||||
|
loadBalancerIP: 192.168.0.250
|
||||||
|
annotations:
|
||||||
|
metallb.universe.tf/allow-shared-ip: pihole-svc
|
||||||
|
type: LoadBalancer
|
||||||
|
replicaCount: 1
|
||||||
6
kustomize/kustomization.yaml
Normal file
6
kustomize/kustomization.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
apiVersion: kustomize.config.k8s.io/v1beta1
|
||||||
|
kind: Kustomization
|
||||||
|
commonLabels:
|
||||||
|
app.kubernetes.io/managed-by: Kustomize
|
||||||
|
resources:
|
||||||
|
- ./metallb/pool.yaml
|
||||||
18
kustomize/metallb/pool.yaml
Normal file
18
kustomize/metallb/pool.yaml
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
apiVersion: metallb.io/v1beta1
|
||||||
|
kind: IPAddressPool
|
||||||
|
metadata:
|
||||||
|
name: pool
|
||||||
|
namespace: metallb-system
|
||||||
|
spec:
|
||||||
|
addresses:
|
||||||
|
- 192.168.0.192/26
|
||||||
|
---
|
||||||
|
apiVersion: metallb.io/v1beta1
|
||||||
|
kind: L2Advertisement
|
||||||
|
metadata:
|
||||||
|
name: pool
|
||||||
|
namespace: metallb-system
|
||||||
|
spec:
|
||||||
|
ipAddressPools:
|
||||||
|
- pool
|
||||||
Reference in New Issue
Block a user