70 Commits

Author SHA1 Message Date
Basil Pozdeev
e3d8983ed4
feat(azure): dns metadata (tags) support (#5984)
* feat: Add Azure DNS metadata (tags) support

* fix: address PR review comments for Azure metadata support

* test: add Azure metadata annotation test cases and fix prefix initialization

* Replace azure-metadata-* annotations with azure-tags

* refactor: move Azure tags parsing to provider package

Move provider-specific Azure tags annotation parsing from
source/annotations to provider/azure, following the same
pattern as Cloudflare tags handling.

* fix: use GetProviderSpecificProperty and handle duplicate tags

* fix: align with upstream Go 1.26 migration and short-form property names
2026-04-02 13:11:04 +05:30
vflaux
c745bb044a
chore(go): upgrade to go1.26 (#6314)
* chore(go): upgrade to go1.26

* chore: use the new new() capability

* chore(lint): update golanci-lint

* chore(endpoint): add EndpointKey.String() test
2026-03-29 23:12:12 +05:30
Ivan Ka
564d5353b8
refactor(provider): introduce factory with uniform New consturctor (#6276)
* refactor(controller): move provider construction to provider/factory package

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* refactor(controller): move provider construction to provider/factory package

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* refactor(provider): introduce factory package with per-provider New constructors

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* refactor(provider): introduce factory package with per-provider New constructors

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* refactor(provider): introduce factory package with per-provider New constructors

* refactor(provider): introduce factory package with per-provider New constructors

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* refactor(provider): introduce factory package with per-provider New constructors

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-16 13:29:37 +05:30
Ivan Ka
e21f1389fb
linter(usetesting): enable usetesting (#6266)
* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* linter(usetesting): enable usetesting

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-14 22:07:35 +05:30
Ivan Ka
a929ad6cc6
chore(linter): enable unparam (#6160)
* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-02-20 15:15:39 +05:30
Ivan Ka
b304dfe37d
chore(linter): unused params and functions linter (#6142)
* chore(linter): enable unused

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(linter): enable unusedparam

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-31 23:20:24 +05:30
Ivan Ka
1756cdd5d1
chore(provider): zone cache provider interface (#6120)
* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): zone cache provider interface

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-25 14:32:13 +05:30
vflaux
b2390a9187
chore(lint): replace with NewSoftErrorf when possible (#6061) 2025-12-30 15:48:34 +05:30
Pascal Bourdier
699e994a9c
ci(linter): add go-critic (#5875)
* ci: add go-critic linter

follow go-critic advices when possible

* docs: add a short description about go-critic
2025-10-01 09:06:19 -07:00
Anthony Chand
9e0acd0bd0
feat(azure): update Azure provider configuration and documentation (#5648)
* feat(azure): update Azure provider configuration and documentation

- Update Azure tutorial documentation
- Modify Azure provider config implementation

* fix formatting

* update text
2025-08-28 06:05:10 -07:00
Ivan Ka
6e2fc4aa31
chore(codebase): enable linter nonamedreturns (#5594)
* chore(codebase): enable linter nonamedreturns

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(codebase): enable linter nonamedreturns

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-01 22:13:25 -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
Ivan Ka
e21607254d
chore(codebase): enable errorlint (#5439)
* chore(codebase): enable errorlint

* chore(codebase): enable errorlint

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-21 04:14:34 -07:00
Ivan Ka
bdb51b2d96
chore(codebase): enable testifylint (#5441)
* chore(codebase): enable testifylint

* chore(codebase): enable testifylint

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(codebase): enable testifylint

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-21 03:46:34 -07:00
ivan katliarchuk
7f3b24098e
chore(codebase-uniformity): added linters for json/yaml tags
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-18 11:08:04 +01: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
Ivan Ka
a6243cf6bb
chore(providers): rename custom TTL constants to defaultTTL (#5312)
* chore(provider): inline providers

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): inline providers

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): inline providers

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): inline providers

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

* chore(provider): inline providers

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-04-27 14:59:25 -07:00
ivan katliarchuk
abdf8bbc02
chore(refactore): added lint checks
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-04-23 08:22:43 +01:00
Raffaele Di Fazio
3e9f4642e3 use json to unmarshal json
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2025-04-15 09:30:37 +02:00
Raffaele Di Fazio
b38d6bc867 changes to goccy yaml
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2025-04-15 08:42:00 +02:00
Michel Loiseleur
a3ac49e269 fix test name 2025-02-19 15:03:37 +01:00
Andre Aguas
c2dc4bdb1b Add NS record support for Azure DNS
Azure supports NS records on public DNS zones: https://learn.microsoft.com/en-us/rest/api/dns/record-sets/create-or-update?view=rest-dns-2018-05-01&tabs=HTTP#create-ns-recordset
This PR adds this support to external dns. The implementation is similar to the other records.

Besides the unit tests this PR was also tested by creating a DNSEndpoint with the following spec:
```
    endpoints:
    - dnsName: cloud.k8gb.io
      recordTTL: 5
      recordType: NS
      targets:
      - gslb-ns-eu-cloud.k8gb.io
      - gslb-ns-us-cloud.k8gb.io
```
The creation of the NS record in Azure was successful:
```
az network dns record-set ns list --resource-group rg-k8gb  --zone-name "$EDGE_DNS_ZONE" --output json
[
  {...},
  {
    "NSRecords": [
      {
        "nsdname": "gslb-ns-eu-cloud.k8gb.io"
      },
      {
        "nsdname": "gslb-ns-us-cloud.k8gb.io"
      }
    ],
    "TTL": 5,
    "etag": "97a7199f-3be9-47bd-ab00-37013b775180",
    "fqdn": "cloud.k8gb.io.",
    "id": "/subscriptions/<redacted>/resourceGroups/rg-k8gb/providers/Microsoft.Network/dnszones/k8gb.io/NS/cloud",
    "name": "cloud",
    "provisioningState": "Succeeded",
    "resourceGroup": "rg-k8gb",
    "targetResource": {},
    "trafficManagementProfile": {},
    "type": "Microsoft.Network/dnszones/NS"
  }
]
```

This change was already attempted in #2835, but it was never merged due to inactivity.

Signed-off-by: Andre Aguas <andre.aguas@protonmail.com>
2024-11-04 23:02:10 +01:00
tanujd11
f6bafb14e1 addressed review comments
Signed-off-by: tanujd11 <dwiveditanuj41@gmail.com>
2024-10-17 01:48:38 +05:30
tanujd11
faced93ba2 feature: add azure zone list cache
Signed-off-by: tanujd11 <dwiveditanuj41@gmail.com>
2024-10-16 16:48:42 +05:30
Khue Doan
b16d1b3a4b Merge branch 'master' into az-private-dns-zone-name-filter 2024-04-26 00:31:11 +07:00
Jeremy-Boyle
fe0af65a14 Removed the env, and moved to config file changes for ADD endpoints, need to update docs next 2024-04-16 09:58:31 -07:00
Khue Doan
2cad978659 test(azure): Azure Private DNS apply change with zone name filter 2024-03-28 20:38:22 +07:00
Khue Doan
aa396a9a2f test(azure): Azure Private DNS zone name filter 2024-03-28 20:38:13 +07:00
Khue Doan
425dea47f3 feat(azure): add zone name filter for Azure Private DNS 2024-03-28 19:56:27 +07:00
Jeremy-Boyle
e39959d400 Adding feature for #4209
Signed-off-by: Jeremy-Boyle <9406398+Jeremy-Boyle@users.noreply.github.com>
2024-02-22 11:46:17 -06:00
Kubernetes Prow Robot
52460ba89c
Merge pull request #4186 from pascalgn/azure-subscription-id-override
feat: enable Azure subscription ID override
2024-02-15 06:00:13 -08:00
Pascal
be7cac2a56 feat: enable Azure subscription ID override 2024-02-09 12:17:44 +01:00
jeanfrancoislelezec
1b79fca437
add soft error 2024-01-22 13:43:51 +01:00
Tanuj Dwivedi
27232ffd1d
chore: fix code comment 2023-12-21 10:36:51 +05:30
jbpaux
45e2c2f677 chore(azure): refactor clientOpts 2023-09-29 19:52:23 +02:00
jbpaux
8e6d85a922 fix(azure) sovereign cloud support
Signed-off-by: jbpaux <9682558+jbpaux@users.noreply.github.com>
2023-09-29 19:49:55 +02:00
Kubernetes Prow Robot
bfe50a9432
Merge pull request #3908 from jbpaux/features/aaaa-azure
feat(azure): add AAAA records support
2023-09-15 13:02:13 -07:00
jbpaux
ae71b6c286 fix fmt to pass lint 2023-09-03 00:33:45 +02:00
jbpaux
b0ac8184ed azure: add aaaa tests 2023-09-01 23:25:23 +02:00
jbpaux
e9fb8a8f36 azure: add aaaa support 2023-09-01 23:24:35 +02:00
Igor Beliakov
a1c2775d45 feat(azure): add support for workload identity
Signed-off-by: Igor Beliakov <demtis.register@gmail.com>
2023-09-01 19:08:42 +02:00
Philip Laine
985a53217c
Update provider/azure/config.go
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2023-08-15 09:06:11 +02:00
Philip Laine
55c93e7823
Update provider/azure/azure_private_dns.go
Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>
2023-08-15 09:05:28 +02:00
Philip Laine
d42df08c17
Update provider/azure/azure.go
Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>
2023-08-15 09:05:17 +02:00
Philip Laine
70eda8b84b Update Azure SDK and remove deprecated autorest dependency 2023-08-10 15:42:51 +02:00
Jonas-Taha El Sesiy
83d58fae03
Remove UpdateOld changeset for Azure
The underlying SDK uses `recordSetsClient.CreateOrUpdate()` [doc](https://docs.microsoft.com/en-us/rest/api/dns/record-sets/create-or-update) which allows us to exclusively rely on UpdateNew for record set updates.
As a result, we're no longer running the risk of zone update failures causing outages as outlined in #2918

Fix https://github.com/kubernetes-sigs/external-dns/issues/2918
2023-05-16 08:46:54 -07:00
Seweryn Chlewicki
93665c9e74
Update nolint comments 2023-05-02 16:01:59 +01:00
Seweryn Chlewicki
574c1025ce
Fix whitespace 2023-03-31 13:23:14 +01:00
Seweryn Chlewicki
b265cbf937
Add no lint 2023-03-31 13:14:27 +01:00
Seweryn Chlewicki
761f0e94f6
Add licence 2023-03-31 11:44:03 +01:00