* fix(charts): Skip cluster-scope RBAC on namespaced
* Restore tenant-friendly installs by keeping RBAC namespaced if
`.Values.gatewayNamespace` is set
* `namespaced=true` and `gatewayNamespace` set results in a namespaced
Role and Rolebinding for listing namespaces
* `namespaced=true` AND `gatewayNamespace` unset will retain the
original `ClusterRole` and `ClusterRoleBinding`
* `namespace=false` will retain the original `ClusterRole` and
`ClusterRoleBinding`
* No breaking changes introduced
Ticket: #5832
Signed-off-by: Tobias Harnickell <tobias.harnickell@bedag.ch>
* fix: Add review feedback
Signed-off-by: Tobias Harnickell <tobias@harnickell.ch>
* fix: Ran helm-docs
Signed-off-by: Tobias Harnickell <tobias@harnickell.ch>
* doc: Update chart changelog
Signed-off-by: Tobias Harnickell <tobias@harnickell.ch>
---------
Signed-off-by: Tobias Harnickell <tobias.harnickell@bedag.ch>
Signed-off-by: Tobias Harnickell <tobias@harnickell.ch>
* feat(chart): Release for v0.20.0
* feat(chart): remove release date from CHANGELOG.md
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
---------
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
* feat(annotations): add custom annotation prefix support for split horizon DNS
Add --annotation-prefix flag to allow customizing the annotation prefix
used by external-dns. This enables split horizon DNS scenarios where
multiple instances process different sets of annotations from the same
Kubernetes resources.
Changes:
- Add AnnotationPrefix field to Config with validation
- Convert annotation constants to variables that can be reconfigured
- Add SetAnnotationPrefix() function to rebuild annotation keys
- Integrate annotation prefix setting in controller startup
- Update Helm chart with annotationPrefix value
- Add comprehensive split horizon DNS documentation
- Update FAQ with annotation prefix examples
This maintains full backward compatibility - the default prefix remains
"external-dns.alpha.kubernetes.io/".
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(advanced): fix markdown formatting in split-horizon guide
Add blank lines before code blocks to improve markdown rendering
and comply with markdownlint rules.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(advanced): fix markdown formatting in split-horizon guide
Co-Authored-By: Claude <noreply@anthropic.com>
* docs(charts): regenerate Helm chart documentation
Co-Authored-By: Claude <noreply@anthropic.com>
* test: add AnnotationPrefix field to test configs
Add missing AnnotationPrefix field to minimalConfig and overriddenConfig
test configurations to match the new default value set in NewConfig().
Co-Authored-By: Claude <noreply@anthropic.com>
* test(charts): update error pattern in json-schema test
Update expected error message pattern to match current Helm validation
output format.
Co-Authored-By: Claude <noreply@anthropic.com>
* refactor(annotations): remove init() for explicit initialization
- Remove init() function from annotations package
- Add explicit SetAnnotationPrefix() call in controller/execute.go
- Remove annotation key aliases from source/source.go
- Replace all alias usages with annotations.* references (348 changes in 28 files)
- Add TestMain to existing test files (service_test.go, cloudflare_test.go)
This change makes annotation initialization explicit and predictable,
avoiding hidden global state initialization at import time.
Co-Authored-By: Claude <noreply@anthropic.com>
* docs: update changelog and mkdocs to include annotationPrefix and split horizon DNS
Signed-off-by: Aleksei Sviridkin <f@lex.la>
* docs(split-horizon): fix linting
Signed-off-by: Aleksei Sviridkin <f@lex.la>
* refactor(annotations): replace hardcoded annotation prefix with constant
Replace all hardcoded "external-dns.alpha.kubernetes.io/" strings
with annotations.DefaultAnnotationPrefix constant to establish
a single source of truth.
Changes:
- Add DefaultAnnotationPrefix constant in source/annotations/annotations.go
- Replace hardcoded string in controller/execute.go with constant reference
- Replace hardcoded strings in pkg/apis/externaldns/types.go (2 occurrences)
- Add helm unit tests for annotationPrefix value
This eliminates string duplication and makes future changes easier.
Co-Authored-By: Claude <noreply@anthropic.com>
---------
Signed-off-by: Aleksei Sviridkin <f@lex.la>
Co-authored-by: Claude <noreply@anthropic.com>
Only grant endpointslices permissions when using service source and remove
outdated endpoints RBAC from provider tutorials.
Add rbac tests for the chart.
* fix(helm): Update schema for helm to allow `create-only`
* fix(docs): Update changelog to reflect addition of `create-only` policy.
* chore(docs): Update changelog with PR
* fix(helm): Undo improper spacing on comments
* chore(docs): Update README.md with new option
* fix(helm): Add EOF newline since format-on-save removed it
* fix(chart): Change .extraContainers type to array
Adding additional containers was impossible because the
`.extraContainers` attribute was defined as object while the templating
expected an array. This blocked the addition of other containers to the
deployment using the Helm chart.
Signed-off-by: Sven Greb <development@svengreb.de>
* fix(chart): Add changelog entry
Signed-off-by: Sven Greb <development@svengreb.de>
---------
Signed-off-by: Sven Greb <development@svengreb.de>
* chore(fqdn): fqdn move to specific folder and update documentation
* chore(fqdn): fqdn move to specific folder and update documentation
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(fqdn): fqdn move to specific folder and update documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(fqdn): fqdn move to specific folder and update documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(fqdn): fqdn move to specific folder and update documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(helm): add valiation.tpl and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add valiation.tpl and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation.tpl and capture regression
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(helm): add validation.tpl and capture regression
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(helm): add validation.tpl and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation.tpl and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation for prefix and suffix and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation for prefix and suffix and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation for prefix and suffix and capture regression
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(helm): add validation for prefix and suffix and capture regression
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
Co-authored-by: Steve Hipwell <steve.hipwell@gmail.com>
* Update RBAC for f5-virtualserver and f5-transportserver source for ClusterRole
* Update CHANGELOG.md for helm chart
* Move sections for commit in CHANGELOG.md for helm chart
* Allow run tpl on serviceaccount annotations
* updated the CHANGELOG
* iterate over kv and tpl and update docs
* fix multiline-string docs
* add CI values
* add more CI values
* fix ci values
By promoting this options to dedicated values they no longer have to be configured via `extraArgs`
In the [K8GB project](https://github.com/k8gb-io/k8gb), a DNS based load balancer, we use external-dns as a chart dependency.
We would like to configure all values specific to the controller in the default values of our Chart, and leave to the users the provider configuration. This provider configuration usually includes `extraArgs`.
Since `extraArgs` is a list that would be overwritten we would like to keep it empty, otherwise users will have to copy paste our base configuration.