Add external-dns to argo
This commit is contained in:
parent
d7588ec661
commit
b87e8503f8
5 changed files with 23 additions and 117 deletions
|
@ -15,6 +15,11 @@ helmApps:
|
||||||
repoURL: https://mojo2600.github.io/pihole-kubernetes/
|
repoURL: https://mojo2600.github.io/pihole-kubernetes/
|
||||||
chart: pihole
|
chart: pihole
|
||||||
revision: 2.17.0
|
revision: 2.17.0
|
||||||
|
- app: external-dns
|
||||||
|
namespace: external-dns
|
||||||
|
repoURL: https://kubernetes-sigs.github.io/external-dns/
|
||||||
|
chart: external-dns
|
||||||
|
revision: 1.13.0
|
||||||
- app: prometheus
|
- app: prometheus
|
||||||
namespace: prometheus
|
namespace: prometheus
|
||||||
repoURL: https://prometheus-community.github.io/helm-charts
|
repoURL: https://prometheus-community.github.io/helm-charts
|
||||||
|
|
18
argo/external-dns/values.yaml
Normal file
18
argo/external-dns/values.yaml
Normal file
|
@ -0,0 +1,18 @@
|
||||||
|
---
|
||||||
|
image:
|
||||||
|
repository: gcr.io/k8s-staging-external-dns/external-dns
|
||||||
|
tag: "v20230707-external-dns-helm-chart-1.13.0-145-g1ac38660"
|
||||||
|
pullPolicy: IfNotPresent
|
||||||
|
provider: pihole
|
||||||
|
extraArgs:
|
||||||
|
- --pihole-server=http://pihole-web.external-dns.svc.cluster.local
|
||||||
|
|
||||||
|
env:
|
||||||
|
- name: "EXTERNAL_DNS_PIHOLE_PASSWORD"
|
||||||
|
valueFrom:
|
||||||
|
secretKeyRef:
|
||||||
|
key: pihole-password
|
||||||
|
name: pihole
|
||||||
|
|
||||||
|
sources:
|
||||||
|
- istio-gateway
|
|
@ -1,52 +0,0 @@
|
||||||
---
|
|
||||||
apiVersion: rbac.authorization.k8s.io/v1
|
|
||||||
kind: ClusterRoleBinding
|
|
||||||
metadata:
|
|
||||||
name: external-dns-k8s-tokenreview-binding
|
|
||||||
roleRef:
|
|
||||||
apiGroup: rbac.authorization.k8s.io
|
|
||||||
kind: ClusterRole
|
|
||||||
name: system:auth-delegator
|
|
||||||
subjects:
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: default
|
|
||||||
namespace: external-dns
|
|
||||||
- kind: ServiceAccount
|
|
||||||
name: external-dns
|
|
||||||
namespace: external-dns
|
|
||||||
...
|
|
||||||
---
|
|
||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: SecretStore
|
|
||||||
metadata:
|
|
||||||
name: default
|
|
||||||
namespace: external-dns
|
|
||||||
spec:
|
|
||||||
provider:
|
|
||||||
vault:
|
|
||||||
server: "https://vault.service.masked.name:8200"
|
|
||||||
path: "kv"
|
|
||||||
version: "v2"
|
|
||||||
caBundle: LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUROVENDQWgyZ0F3SUJBZ0lVWXA4eG81dDJsSkZQM1NpRDFmSmlyZ0dVUUowd0RRWUpLb1pJaHZjTkFRRUwKQlFBd0ZqRVVNQklHQTFVRUF4TUxiV0Z6YTJWa0xtNWhiV1V3SGhjTk1qQXdPREk1TVRreU16RXlXaGNOTXpBdwpPREkzTVRreU16UXlXakFXTVJRd0VnWURWUVFERXd0dFlYTnJaV1F1Ym1GdFpUQ0NBU0l3RFFZSktvWklodmNOCkFRRUJCUUFEZ2dFUEFEQ0NBUW9DZ2dFQkFNSTdvUitLSHZ2em5mbmFBWERNTzVxcFNUQ0FZQ3lmakZFb2hZSmYKbE9jbkxPTlhiM2Y2c1A1ZDFlbHRMK1VUcTBSVlU1VVAwYU5XN2hxRFRhNDFNUncwSkNEdEI2OHlLZFlxMmhaZgo5N2dBK2xqM01FSlU2UlRBS0xyZzc1R1JoL0FiTkVJZ3d2UHVIS1c2aE1idHdPeU05REZVLy9XM3hwdXNhbFh5ClJNRnpBSGZTRGo5Y2krVXlnVXQ5SElOV2QvU21NR0cvOFBnaGFSaGZFNDR3UkZNcVllemVsaUl0MkpJczQzQlYKN0hxRzBPZXY5V1BlWG1pYVpVWUtRZXRIaVFxUjE0TXhpdjFJR3pDbXd3Tis5YjR0WnRaVGE1OG9NNWRQWGZiYgpsckVMUUU1T3NQYU50TXRFUjNNZ3hvdkROM1ZTQ0dIL08vR3lhRVdWYW5ZNVVGOENBd0VBQWFON01Ia3dEZ1lEClZSMFBBUUgvQkFRREFnRUdNQThHQTFVZEV3RUIvd1FGTUFNQkFmOHdIUVlEVlIwT0JCWUVGQlk4alczZkRWVXAKVVJ0MXByaG1ETWprVmlrZ01COEdBMVVkSXdRWU1CYUFGQlk4alczZkRWVXBVUnQxcHJobURNamtWaWtnTUJZRwpBMVVkRVFRUE1BMkNDMjFoYzJ0bFpDNXVZVzFsTUEwR0NTcUdTSWIzRFFFQkN3VUFBNElCQVFBV1F6NGQzUXpFClc4TkdBMTZaUGFtbFZ1Yk9MQjVEdFp6MnFyU3JuM0RlT2JMSURTaEluVjNxdFJsRHg5SFlKTFRDQTc1S2V0MEoKTlRzeU1jVHkydHhkNEk4aGdkRjMwWEplRWNpTjl3WjBtS0VlUC9ZS0R3ZThWMlh3V3E0WFlrRGVjaGxXSHBabwpQZldjb0xwckt3VlVJNEh6YXFrTm13Y21NVUk0eEFzQytTTGUxbXJlYnNlS200OW9Pd2RRcy9vUFZMSyswbkVwClJ2RDBhT3ZvaElMSWEvMlp0S2N6dmhCL0wzZm81cGc5RXgvMEpEQmRESEllZE1hYkQzcW44SWRzZStQNURmd2EKSnUyQ3R5YituMVRUUHhSRE14czJjRmJBNWlycisyQVJKZDhqdEdTKzFmeXhvZ2pPV1MxUlI1MjNGK3FJUzNzdQpLaWJHZWwrZ0ZQcHEKLS0tLS1FTkQgQ0VSVElGSUNBVEUtLS0tLQotLS0tLUJFR0lOIENFUlRJRklDQVRFLS0tLS0KTUlJRDB6Q0NBcnVnQXdJQkFnSVVNNTJ1aFhTZVRDaW0xcG16dWNtL2NuSWdOcDh3RFFZSktvWklodmNOQVFFTApCUUF3RmpFVU1CSUdBMVVFQXhNTGJXRnphMlZrTG01aGJXVXdIaGNOTWpBd09ESTVNVGt5TnpBd1doY05NalV3Ck9ESTRNVGt5TnpNd1dqQXRNU3N3S1FZRFZRUURFeUp0WVhOclpXUXVibUZ0WlNCSmJuUmxjbTFsWkdsaGRHVWcKUVhWMGFHOXlhWFI1TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUE4THVHbytBcwpJQ1lXZEpqQkNZMHNuRi9YK2pGMXRkY3JRek5pUktFU0ViNWRzRGl5OTc5YnVnQ2JsUFFEUStnNVdHcVhYNHBqClV5WlpFM1p3aE91ZklTbEdLMG93MWFNanFTK3BGbFE4NUtSRC9qVXRMUFJVSnVRRittMll3SWQvTWc2L0I3UWsKZDE2NnVKa054UytNR1pDaTJPWVhlb2l2bk9ZN1EwS2ovMHZJYmM1VnQza0NSVmcybGpMU1Fob0JkKzg1QUhNUgpqZVJqWk1lWUVZRjJIVFZ3cmc0RHJDL3IwME1WdERjTnFzNitNN1laL3J6bnk3M0d2ZkpXZldvQjFDNHBpWmxnCmZ2VWNTREw1SEFoaml1NWNTZUlSN0RUdVZ4N3Q0UG9LNkFxVWtQeWdEdHExWmFMeWJYVDdYNmQwNzJkUjVBWE8KbldGTFBhYUdKOTc5aXdJREFRQUJvNElCQURDQi9UQU9CZ05WSFE4QkFmOEVCQU1DQVFZd0R3WURWUjBUQVFILwpCQVV3QXdFQi96QWRCZ05WSFE0RUZnUVVJa2hWWUJhSzlDY3ZYRzhGTTJqS1ZaMTZvWkF3SHdZRFZSMGpCQmd3CkZvQVVGanlOYmQ4TlZTbFJHM1dtdUdZTXlPUldLU0F3VVFZSUt3WUJCUVVIQVFFRVJUQkRNRUVHQ0NzR0FRVUYKQnpBQ2hqVm9kSFJ3T2k4dmRtRjFiSFF1WTI5c2RXMWlhV0V1YldGemEyVmtMbTVoYldVNk9ESXdNQzkyTVM5dwphMmxmY205dmRDOWpZVEJIQmdOVkhSOEVRREErTUR5Z09xQTRoalpvZEhSd09pOHZkbUYxYkhRdVkyOXNkVzFpCmFXRXViV0Z6YTJWa0xtNWhiV1U2T0RJd01DOTJNUzl3YTJsZmNtOXZkQzlqY213d0RRWUpLb1pJaHZjTkFRRUwKQlFBRGdnRUJBSzZITWdSK2hwd2paQ21mNU5zekRTSHI3ZFlLWlhQNExyY0hQV3M5NG5MTTMzVVo1NzJ1YkdIcwpkS2pSdzhZRDBjbmNyc3lwc1ltRWdSNTdVK0RIa3lzMzk0d2tiN1VPd3kxWnZkNUlJUlhkUDBjRHlsejBRenFNCkFQblFZTitpc21rb2xqaGs5ZXkwUWJvM0NtUGpNK1VRY0F4dVpRdEE0TStyaUMxK2prdWRlMXVZTDBzekM2WTkKNEtldGZ2Yk5rZWRTYVY1eUphUktDQmhSY0M0L0dqcEJHL29kUS81QWZCUEFGalpxaGNJSldCclZZYlRRVkM3OQpoTUExaXdXSlBtVDlMc2pNU1VmeEZUUHp4Um5OWFFpS0Z6NWtUMk9pUzFucWg4YU9jeVU5WUM5Mjhwa2lmTkpWCktva3VEZXpKRk03aWUzZCtFY0JrMVY5bEh3T1dkdG89Ci0tLS0tRU5EIENFUlRJRklDQVRFLS0tLS0K
|
|
||||||
auth:
|
|
||||||
kubernetes:
|
|
||||||
mountPath: "k8s-teapot"
|
|
||||||
role: "external-dns"
|
|
||||||
secretRef:
|
|
||||||
name: "serviceaccounttoken"
|
|
||||||
...
|
|
||||||
---
|
|
||||||
apiVersion: external-secrets.io/v1beta1
|
|
||||||
kind: ExternalSecret
|
|
||||||
metadata:
|
|
||||||
name: pihole
|
|
||||||
namespace: external-dns
|
|
||||||
spec:
|
|
||||||
secretStoreRef:
|
|
||||||
name: default
|
|
||||||
kind: SecretStore
|
|
||||||
data:
|
|
||||||
- secretKey: pihole-password
|
|
||||||
remoteRef:
|
|
||||||
key: external-dns
|
|
||||||
property: pihole-password
|
|
|
@ -1,39 +0,0 @@
|
||||||
#!/bin/bash -x
|
|
||||||
CHART_VERSION="2.11.0"
|
|
||||||
NAMESPACE="external-dns"
|
|
||||||
VAULT_AUTH_NAMESPACE="k8s-teapot"
|
|
||||||
|
|
||||||
kubectl create ns ${NAMESPACE}
|
|
||||||
cat <<EOH | kubectl apply -f -
|
|
||||||
---
|
|
||||||
apiVersion: v1
|
|
||||||
kind: Secret
|
|
||||||
type: kubernetes.io/service-account-token
|
|
||||||
metadata:
|
|
||||||
name: serviceaccounttoken
|
|
||||||
namespace: external-dns
|
|
||||||
annotations:
|
|
||||||
kubernetes.io/service-account.name: "default"
|
|
||||||
...
|
|
||||||
EOH
|
|
||||||
|
|
||||||
HOST_IP=$(ip addr show eth0 | grep -Po 'inet \K[\d.]+')
|
|
||||||
TOKEN="$(kubectl get secret serviceaccounttoken -n external-dns -o go-template='{{ .data.token }}' | base64 -d)"
|
|
||||||
|
|
||||||
vault write auth/${VAULT_AUTH_NAMESPACE}/role/external-dns \
|
|
||||||
bound_service_account_names=default,external-dns \
|
|
||||||
bound_service_account_namespaces=external-dns \
|
|
||||||
policies=external-dns \
|
|
||||||
ttl=24h
|
|
||||||
|
|
||||||
kubectl apply -f external-secrets.yaml
|
|
||||||
|
|
||||||
helm repo add mojo2600 https://mojo2600.github.io/pihole-kubernetes/
|
|
||||||
helm repo update
|
|
||||||
helm upgrade --install \
|
|
||||||
pihole \
|
|
||||||
mojo2600/pihole \
|
|
||||||
-n ${NAMESPACE} \
|
|
||||||
--version ${CHART_VERSION} \
|
|
||||||
--values values.yaml \
|
|
||||||
--cleanup-on-fail
|
|
|
@ -1,26 +0,0 @@
|
||||||
---
|
|
||||||
serviceDns:
|
|
||||||
mixedService: true
|
|
||||||
type: LoadBalancer
|
|
||||||
loadBalancerIP: 192.168.0.220
|
|
||||||
annotations:
|
|
||||||
metallb.universe.tf/allow-shared-ip: pihole
|
|
||||||
|
|
||||||
serviceWeb:
|
|
||||||
loadBalancerIP: 192.168.0.220
|
|
||||||
annotations:
|
|
||||||
metallb.universe.tf/allow-shared-ip: pihole
|
|
||||||
type: LoadBalancer
|
|
||||||
|
|
||||||
serviceDhcp:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
DNS1: "192.168.0.1"
|
|
||||||
DNS2: "192.168.0.1"
|
|
||||||
|
|
||||||
podDnsConfig:
|
|
||||||
enabled: false
|
|
||||||
|
|
||||||
admin:
|
|
||||||
existingSecret: pihole
|
|
||||||
passwordKey: pihole-password
|
|
Loading…
Reference in a new issue