diff --git a/charts/stable/external-dns/Chart.yaml b/charts/stable/external-dns/Chart.yaml
index 4f77a102054..c57e694e2f3 100644
--- a/charts/stable/external-dns/Chart.yaml
+++ b/charts/stable/external-dns/Chart.yaml
@@ -38,5 +38,5 @@ sources:
- https://github.com/kubernetes-sigs/external-dns
- https://github.com/trueforge-org/truecharts/tree/master/charts/stable/external-dns
type: application
-version: 7.12.3
+version: 7.12.4
diff --git a/charts/stable/external-dns/docs/setup-guide.md b/charts/stable/external-dns/docs/setup-guide.md
index 1cf233ff283..ffa6d8d1160 100644
--- a/charts/stable/external-dns/docs/setup-guide.md
+++ b/charts/stable/external-dns/docs/setup-guide.md
@@ -15,7 +15,21 @@ Inspired by Kubernetes DNS, Kubernetes' cluster-internal DNS server, ExternalDNS
## Installation instructions
-This guide will cover 2 scenarios, `Cloudflare` and `Pi-hole`. For more external DNS record providers, see [External-DNS Docs](https://github.com/kubernetes-sigs/external-dns/tree/master/docs/tutorials).
+This guide will cover 3 scenarios, `Cloudflare`, `Pi-hole` and `PowerDNS`. For more external DNS record providers, see [External-DNS Docs](https://github.com/kubernetes-sigs/external-dns/tree/master/docs/tutorials).
+
+### PowerDNS
+
+These instructions taken from [external-dns powerdns tutorial](https://github.com/kubernetes-sigs/external-dns/blob/master/docs/tutorials/pdns.md)
+
+### Step 1
+
+Set pdns provider with externaldns.provider: pdns
+
+### Step 2
+
+Set externaldns.pdns.pdnsApiKey and externaldns.pdns.pdnsServerUrl.
+The ApiKey must provide Zone Read/Write on all zones covered by domainFilters
+The pdnsServerUrl is the full URL of the powerdns api endpoint, including the port (http://pdns-server-api.tld:9191/)
### Cloudflare
diff --git a/charts/stable/external-dns/templates/_args.tpl b/charts/stable/external-dns/templates/_args.tpl
index ca9521d7b45..c6df16ab1b2 100644
--- a/charts/stable/external-dns/templates/_args.tpl
+++ b/charts/stable/external-dns/templates/_args.tpl
@@ -51,4 +51,12 @@ args:
{{- with .Values.externaldns.piholeAPIVersion }}
- --pihole-api-version={{ . }}
{{- end -}}
+ {{- if eq .Values.externaldns.provider "pdns" }}
+ {{- with .Values.externaldns.pdns.pdnsApiKey }}
+ - --pdns-api-key={{ . }}
+ {{- end -}}
+ {{- with .Values.externaldns.pdns.pdnsServerUrl }}
+ - --pdns-server={{ . }}
+ {{- end -}}
+ {{- end }}
{{- end -}}
diff --git a/charts/stable/external-dns/values.yaml b/charts/stable/external-dns/values.yaml
index f8a8bf2e9ed..300f30de3c1 100644
--- a/charts/stable/external-dns/values.yaml
+++ b/charts/stable/external-dns/values.yaml
@@ -20,6 +20,10 @@ externaldns:
piholePassword: ""
piholeAPIVersion: ""
triggerLoopOnEvent: "false"
+ # with externaldns.provider = pdns
+ pdns:
+ pdnsApiKey: ""
+ pdnsServerUrl: ""
txtOwnerId: ""
txtPrefix: ""
txtSuffix: ""