Ivan Ka
9f16d835f1
feat(txt-registry): deprecate legacy txt-format ( #5172 )
...
* feat(txt-registry): only support single format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): only support single format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): only support single format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): only support single format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): only support single format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(txt-registry): deprecate legacy txt-format
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): address review comments
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
* feat(txt-registry): deprecate legacy txt-format
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(txt-registry): deprecate legacy txt-format
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(txt-registry): deprecate legacy txt-format
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>
2025-06-25 00:16:29 -07:00
vflaux
7108979df1
improve cloudflare regional hostname implementation ( #5309 )
...
- add flag to enable regional hostname feature
- support deletion of regional hostname on annotation edit
- correctly support differences detection with cloudflare state
- increased tests coverage
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-06-22 03:22:52 -07:00
kaikai
a4522f0b76
chore(domainfilter): use pointer receivers for DomainFilter ( #5546 )
...
* refactor(domainfilter): use pointer receivers for DomainFilter
* refactor(domainfilter): complete pointer type consistency across providers
2025-06-21 00:38:53 -07:00
Alen Zubic
28f9e9c06e
feat(source)!: introduce optional force-default-targets ( #5316 )
...
* BREAKING CHANGE: Improve default targets management
* fix: Remove old test case
* fix: Test confirming legacy mode allows empty CRD targets
* fix: Remove comments
* fix: Move flag definition closer to detault-targets
* fix: Initial merge adaptation
* fix: Improved legacy needs a chance to work with empty CRD list
* fix: Code coverage and dead code
* fix: Simpler Endpoints logic
* fix: Flag description
* feat: Add tutorial
* fix: Improve linting
* fix: Improve linting
* fix: Import linting
2025-06-17 23:48:51 -07:00
Ivan Ka
4d02fbe628
test(controller): reduce complexity and improve code coverage ( #5523 )
...
* chore(codebase): reduce complexity and improve code coverage for controller/execute.go
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* apply suggestions from code review
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(codebase): reduce complexity and improve code coverage for controller/execute.go
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(codebase): reduce complexity and improve code coverage for controller/execute.go
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-06-13 05:52:56 -07:00
Ivan Ka
d63bfb324c
feat(controller)!: publish metrics for all supported endpoint types ( #5516 )
...
* feat(controller): add more metrics for all supported endpoint types
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(controller): add cardinality and labels for records metrics
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(controller): add cardinality and labels for records metrics
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* fix rebase
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>
2025-06-13 02:40:58 -07:00
kaikai
662fb3652d
test(controller): increase timeout and refactor toggle registry test ( #5518 )
...
* test(controller): increase timeout and refactor toggle registry test
* Update controller/controller_test.go TestToggleRegistry deadline
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
---------
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-06-13 00:39:03 -07:00
Andrew Hay
93d4d47bff
feat(metrics): consecutiveSoftErrors ( #5502 )
...
* feat(controller): add consecutive soft error metric and improve retry test
* docs: clean up metrics.md Go runtime metrics table, remove duplicates, ensure CI compliance
* style: gofmt
* style: gofmt
2025-06-06 09:52:39 -07:00
Michel Loiseleur
a48b75b266
remove ultradns provider
2025-05-25 10:09:11 +02:00
Michel Loiseleur
640e593fcb
remove tencentcloud provider
2025-05-25 10:04:19 +02:00
Michel Loiseleur
756a7288da
chore!: remove unmaintained providers
2025-05-25 09:43:01 +02:00
tom
14ea50300e
feat(cloudflare): Suppport DNS record comments ( #5411 )
...
* feat(cloudflare): Suppport DNS record comments
* Provide comment flag example
2025-05-19 00:43:15 -07:00
Shruti Panapana
7b9d8d9355
fix(azure): enhance retry logic using azure SDK ( #5361 )
...
* fix(azure): Enhance retry logic using azure SDK
* Added the changes for flag based maxretries configuration
* Fixed types.go, flags.md and delected unneccesary comments
* Added the correct image for the Azure Private DNS tutorial
* Following the go naming convention for maxRetriesCount
* Added the correct flag information to the --azure-maxretries-count
* Made the required changes to accept the --azure-maxretries-count flag value from cli/env
2025-05-17 02:09:14 -07:00
Michel Loiseleur
3c93bcb076
chore(code): improve some tests + re-order sources flags CLI ( #5288 )
...
* fix(plan): always use managed records
* robust random port in test
* use defaultconfig for managed-record-types
* be explicit about static variable
* fix wait
* re-order flags related to sources + dynamic managedrecordtype help
* fix flag doc
2025-04-27 14:11:24 -07:00
tJouve
1efdf4161c
feat(pihole): add optional support for v6 ( #5226 )
...
* Pi hole V6 impl
* Code Review Part One
* Fix Go Lint
* Regenerate Flags file
* Increase code coverage 1/2
* Increase code coverage 2/2
* Fix merge conflict => Provider init move from main.go to execute.go
2025-04-02 09:10:43 -07:00
Ivan Ka
65d534e4a1
chore(code-cleanup): move logic away from main.go add tests ( #5222 )
...
* feat(code cleanup): remove from main.go
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic away from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic away from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic away from main.go add tests
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* chore(code-cleanup): move logic away from main.go add tests
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(code-cleanup): move logic away from main.go add tests
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>
2025-03-31 15:58:43 -07:00
Ivan Ka
1e8e5e06c5
chore(docs): generate docs/monitoring/metrics.md file ( #5117 )
...
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(docs): generate docs/monitoring/metrics.md file
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-03-04 05:05:44 -08:00
Thibault Jamet
b2ff1619f5
Add Domain filter interface
2024-08-14 10:20:59 +02:00
Thibault Jamet
2007a49f1f
Improve MinEventInterval compliance with docs
...
**Description**
In the command line arguments, we see `min-event-sync-interval` as
"The minimum interval between two consecutive synchronizations triggered from kubernetes events"
In the code, it actually acts a different way.
It imposes a certain dealy between syncs.
While this is compliant with the "minimum delay between 2 consecutive
synchronizations", it has side-effects in case of large delays.
In particular, when trying to fine-tune external-dns to match the
provider rate-limits.
In this case, it may be interesting to restrict the rate of reconciling
actions happening by having a high `min-event-sync-interval`, while
keeping a low latency for initial events.
This would allow to maximise the bulk effect of high change rate while
keeping fast enough reaction for isolated changes.
**Checklist**
- [X] Unit tests updated
- [X] End user documentation updated
> End user documentation matches the updated behaviour with more
> accuracy
Change-Id: Ibcea707974a095a2d5861a3974b4c79e5a15b00e
2024-08-06 08:52:27 +02:00
Kubernetes Prow Robot
fa17f9d06c
Merge pull request #3639 from kubernetes-sigs/test/controller-run
...
test: controller run() and successfully shutdown
2024-05-03 12:53:43 -07:00
Sandor Szücs
1ee6c0a77d
fix: provide possibility to have a soft error mode to only log error and not fatal
...
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
2024-01-09 22:13:24 +01:00
Sandor Szücs
2b50b14726
refactor: as suggested
...
fix: race as suggested
Signed-off-by: Sandor Szücs <sandor.szuecs@zalando.de>
2024-01-05 20:11:19 +01:00
Kubernetes Prow Robot
bc22050579
Merge pull request #3340 from gozer/issue/3339/last_reconcile_timestamp_seconds
...
Add external_dns_controller_last_reconcile_timestamp_seconds metric
2023-10-07 11:45:10 +02:00
John Gardiner Myers
94713c20c6
Add --exclude-record-types flag
2023-09-15 18:45:09 -07:00
Kubernetes Prow Robot
bb705a146d
Merge pull request #3911 from johngmyers/adjust-err
...
chore(providers): allow AdjustEndpoints to return error
2023-09-14 22:50:12 -07:00
Kubernetes Prow Robot
030342f445
Merge pull request #3747 from cronik/bugfix/dual-stack-records
...
Fix planning for multi-cluster dual stack record types
2023-09-14 22:24:12 -07:00
John Gardiner Myers
c596611f9e
Allow AdjustEndpoints to return error
2023-09-03 11:23:03 -07:00
Kyle Cronin
20bff0aae5
Remove EndpointFilterInterface
2023-08-16 23:48:30 -04:00
John Gardiner Myers
e9be5887bd
Remove DomainFilterInterface
2023-08-11 13:01:22 -07:00
John Gardiner Myers
5affab0561
Remove PropertyValuesEqual method from Provider interface
2023-08-04 04:56:43 -07:00
John Gardiner Myers
43eea7fa9b
Refactor Provider to require DomainFilter
2023-06-19 20:25:59 -07:00
Matias Charriere
e938f5a67f
remove tests from missing endpoint tests from controller
...
the entire logic of missing endpoints was removed from the controller
taking leverage on the planner
Signed-off-by: Matias Charriere <matias@giantswarm.io>
2023-06-15 11:50:04 +02:00
Matias Charriere
1bd3834743
handle missing TXT records with a forcedUpdate strategy
...
This change tries to remove part of the logic added in 50f196c0db
.
The forceUpdate strategy relies on existing code of the planner to migrate TXT records to the new format,
being the main goal to avoid conflicts during apply.
Signed-off-by: Matias Charriere <matias@giantswarm.io>
2023-06-15 11:50:04 +02:00
Sandor Szuecs
5af4ae0edc
test: controller run() should do somthing and successfully shutdown
...
Signed-off-by: Sandor Szuecs <sandor.szuecs@zalando.de>
2023-05-26 23:18:29 +02:00
Kubernetes Prow Robot
128bcf8d7f
Merge pull request #3009 from olemarkus/continue-on-bad-source
...
If an error propagates all the way out, bail execution
2023-05-08 04:43:17 -07:00
Philippe M. Chiasson
6e15aa0406
Merge branch 'master' into issue/3339/last_reconcile_timestamp_seconds
2023-04-14 02:08:34 -04:00
John Gardiner Myers
2eed9cb6ba
Add AAAA records metrics
2023-03-30 17:49:31 -07:00
Philippe M. Chiasson
8389939f18
Add external_dns_controller_last_reconcile_timestamp_seconds metric
2023-01-25 21:33:18 -05:00
Ole Markus With
07dc39abc7
If controller error propagates all the way out, bail execution
2022-11-20 15:40:00 +01:00
Kubernetes Prow Robot
03e3d22298
Merge pull request #2609 from claudiumocanu/fix-reconcile-blocker
...
Do not reschedule, if already scheduled in the next MinInterval
2022-07-29 12:43:12 -07:00
Andrey Lebedev
0feb32de3c
Handle the migration to the new TXT format: missing records to be created separately
2022-07-27 12:57:18 +02:00
Claudiu Mocanu
6e75baa356
Fixed type as suggested
...
Co-authored-by: Raffaele Di Fazio <raffo@github.com>
2022-07-23 17:47:38 +03:00
Andrey Lebedev
50f196c0db
Handle the migration to the new TXT format: create missing records
2022-07-13 21:49:27 +02:00
claudiumocanu
58ae18439c
ScheduleRunOnce if not already scheduled
2022-02-17 18:28:07 +02:00
Aditya Kolhar
19d9bc8ef9
Changes to add A records of source and registry as metrics
...
Changes to add A records of source and registry as metrics. The existing metrics -
external_dns_registry_endpoints_total & external_dns_source_endpoints_total gives a cumulative count of records all records (A, SRV, CNAME, TXT).
We have a metric - external_dns_controller_verified_records which gives the intersection of A records between source & regsitry. However, in order to determined how many records are yet to be synced to registry, we need count of total A records in registry & source.
2021-11-08 15:22:36 +05:30
Aditya Kolhar
39d5b39e18
Changes to add metric to external-dns.
...
1. external_dns_controller_verified_records - No of DNS A-records that exists both in source and registry - Gauge Metric
2021-10-27 13:51:31 +05:30
Dinar Valeev
c792d49c41
Fix controller tests
...
8d6f29b8a0
commit breaks
TestWhenNoFilterControllerConsidersAllComain and
TestWhenMultipleControllerConsidersAllFilteredComain tests,
lets fix them
Signed-off-by: Dinar Valeev <dinar.valeev@absa.africa>
2021-08-04 19:53:31 +02:00
Kubernetes Prow Robot
41ea66b7c6
Merge pull request #2078 from k0da/ns
...
Fix managed-record-types option
2021-08-04 08:35:24 -07:00
Dinar Valeev
8d6f29b8a0
Fix managed-record-types
...
Use config option instead of passing just A and CNAME
Signed-off-by: Dinar Valeev <dinar.valeev@absa.africa>
2021-05-13 17:03:13 +02:00
Thibault Jamet
0eebf53c95
Update controller/controller.go
...
Co-authored-by: Nick Jüttner <nick@juni.io>
2021-05-05 16:32:09 +02:00