Commit Graph

110 Commits

Author SHA1 Message Date
vflaux
e2b56049f7
chore(cloudflare): use lib v4 for regional services (#5609)
* chore(cloudflare): add cloudflare v4 client

* chrome(cloudflare): cli v4 for regional hostanmes
2025-07-11 09:47:36 -07:00
vflaux
5c42ed00c7
refactor(provider/cloudflare): use local regionalHostname struct (#5615) 2025-07-06 11:19:25 -07:00
vflaux
69d3424d4d
fix(cloudflare): fix action display in logs (#5550) 2025-07-06 03:37:24 -07:00
Arthur Le Roux
e17b5ed07b
feat(cloudflare): add support for MX records (#5283)
* feat(cloudflare): add support for MX records

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* test(txt): add additional TXT and MX record test cases

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* feat(endpoint): implement parsing for MX and SRV records with structured targets

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(txt): remove TXT record type from supported types in NewTXTRegistry

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(digitalocean): streamline MX record handling

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(cloudflare): improve error handling in change creation

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(endpoint): return all parsed SRV targets instead of a single target

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* test(endpoint): add parsing tests for MX and SRV records

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(endpoint): streamline MX and SRV record validation and parsing

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(digital_ocean): simplify MX record parsing

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(docs): update link to CRD source in MX record documentation

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(cloudflare): improve error handling for MX record parsing

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(cloudflare): improve error message formatting for MX record parsing

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(endpoint): rename ParseMXRecord to NewMXTarget and update references

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(endpoint): update NewMXTarget to return pointer and adjust tests accordingly

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(cloudflare): consolidate proxyEnabled and proxyDisabled variable declarations

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(endpoint): update TestNewMXTarget to reflect changes in MXTarget struct fields and add missing test case for host validation

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* fix(digitalocean): improve MX record handling by adjusting error handling and ensuring proper priority and host retrieval

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(endpoint): change MXTarget fields to unexported and update NewMXTarget to use them

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(cloudflare): update groupByNameAndTypeWithCustomHostnames to use provider methods and enhance MX record handling in tests

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* test(cloudflare): enhance test cover

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(endpoint): remove unused SRVTarget struct from endpoint.go

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* refactor(endpoint): rename NewMXTarget to NewMXRecord for clarity and update references

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>

* Update docs/sources/mx-record.md

Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>

---------

Signed-off-by: Arthur Le Roux <arthurleroux@protonmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-06-23 23:32:28 -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
vflaux
104157f8b1
chore(cloudflare): remove unused funcs (#5553) 2025-06-22 02:54:59 -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
Edouard Benauw
0fae060dff
fix(cloudflare): improve handling of rate limiting errors (#5524)
* fix cloudflare

* factorize error conversion

* only log if not a soft error

* add comment for workaround

* Remove debug print

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

* Use assert

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

* Improve error check

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

* fix lint

---------

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2025-06-19 15:30:53 -07:00
Henry Arend
a1944d1ae4 feat(cloudflare): updating allowable and default value to none to better clarity 2025-05-24 07:43:42 -04:00
Henry Arend
b55a04c000 feat(cloudflare): fix formatting for getCustomHostnamesSSLOptions 2025-05-23 14:58:16 -04:00
Henry Arend
7931d8d19d
Merge branch 'kubernetes-sigs:master' into master 2025-05-23 14:32:54 -04:00
vflaux
7c0881477a
chore(cloudflare): move regional services logic to dedicated file (#5329)
* cloudflare: move regional logic to dedicated file

* cloudflare: actions as enum type
2025-05-23 07:42:37 -07:00
Henry Arend
7d307ad792 feat(cloudflare): change defaults from google to empty string for certificateAuthority to not set the CertificateAuthority field in customHostnamesConfig 2025-05-22 09:34:20 -04: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
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
Ivan Ka
791601e2e3
chore(codebase): add nilnil return check (#5415)
* chore(code-quality): added nilnil return check

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

* chore(code-quality): added nilnil return check

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-19 00:19:16 -07:00
ivan katliarchuk
fe83c0d2d0
chore(source): code cleanup 2025-05-12 14:21:28 +01: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
757a57609f
chore(code-quality): linter warnings fixes
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-04-23 22:03:00 +01:00
ivan katliarchuk
9f427e5622
chore(source): code cleanup 2025-04-16 13:50:04 +01:00
Valentin Flaux
6f65181681
add tests & fixes for dataLocalizationRegionalHostnamesChanges() 2025-04-12 10:59:47 +02:00
Valentin Flaux
c3f0cd668f
fix cloudflare regional hostnames
Implements create & delete of regional hostnames for A, AAAA & CNAME
records.
Implements "external-dns.alpha.kubernetes.io/cloudflare-region-key"
annotation.
2025-04-12 10:59:47 +02:00
Kubernetes Prow Robot
026feab62b
Merge pull request #5239 from conduitxyz/mrozentsvayg/cloudflare-multiple-custom-hostnames
feat(cloudflare): multiple custom hostnames support
2025-04-02 23:58:47 -07:00
Michel Loiseleur
3835c62bb6 chore(ci): update linter to v2.0.2 2025-04-02 08:53:54 +02:00
Mikhail Rozentsvayg
3ef8c7336f rename variables with ambiguous "endpoint" names 2025-03-31 12:02:41 -07:00
Mikhail Rozentsvayg
647d850729 remove redunaant custom hostnames sort 2025-03-31 09:30:05 -07:00
Mikhail Rozentsvayg
6da38ba746 feat(cloudflare): multiple custom hostnames support 2025-03-30 22:21:03 -07:00
mrozentsvayg
04f6a99c99
fix(cloudflare): custom hostnames edge-cases causing duplicates (#5183)
* fix(cloudflare): custom hostnames edge-cases causing duplicates

* syntax/style

* Use %q log fmt for cloudflare provider code

* move custom hostnames related submitChanges() implementation to a separate method submitCustomHostnameChanges(); extend truncated logging

* use maps for DNS records getRecordID() and custom hostnames getCustomHostname() for faster lookups

* types for records/custom hostnames maps

* tidy up using underlying maps for dns records and custom hostnames

* style/naming

* fix private names

* combine unnecessarily separated conditions
2025-03-24 02:06:33 -07:00
Mikhail Rozentsvayg
d8b31bc209 combine unnecessarily separated conditions 2025-03-21 08:17:33 -07:00
Mikhail Rozentsvayg
43b218880e fix private names 2025-03-19 12:08:50 -07:00
Mikhail Rozentsvayg
47236fd8bf style/naming 2025-03-19 12:01:43 -07:00
Mikhail Rozentsvayg
2e29a19ab7 tidy up using underlying maps for dns records and custom hostnames 2025-03-19 10:09:37 -07:00
Mikhail Rozentsvayg
e47d83b224 types for records/custom hostnames maps 2025-03-18 12:24:54 -07:00
Mikhail Rozentsvayg
037a10174f use maps for DNS records getRecordID() and custom hostnames getCustomHostname() for faster lookups 2025-03-18 12:12:57 -07:00
Mikhail Rozentsvayg
b1f20511c5 move custom hostnames related submitChanges() implementation to a separate method submitCustomHostnameChanges(); extend truncated logging 2025-03-18 10:07:13 -07:00
Mikhail Rozentsvayg
12cce6fa7f Use %q log fmt for cloudflare provider code 2025-03-17 19:10:35 -07:00
Mikhail Rozentsvayg
2a15aba564 syntax/style 2025-03-17 19:10:35 -07:00
Mikhail Rozentsvayg
8d37820a56 fix(cloudflare): custom hostnames edge-cases causing duplicates 2025-03-17 19:10:35 -07:00
mrozentsvayg
017f7687ca
fix(cloudflare): infinite loop with more than 50 custom hostnames (#5181)
* bugfix - do not reset the resultInfo var, causing infinite loop when number of custom hostnames more than 50

* support paging for custom hostnames tests; update doc
2025-03-14 10:49:48 -07:00
mrozentsvayg
44f1008ee1
cloudflare: bugfix - do not attempt to create unconfigured empty custom hostnames; improve tests; streamline logic (#5146)
improve test coverage

test the edge case when the custom hostname has changed during the record deletion

don't use custom hostnames if Cloudflare for SaaS fails to authenticate

Use new --cloudflare-custom-hostnames flag to enable cloudflare custom hostnames support

custom hostnames flags --cloudflare-custom-hostnames-min-tls-version and --cloudflare-custom-hostnames-certificate-authority support

markdown lint

Update cloudflare.md
2025-03-12 09:59:48 -07:00
Andrew Hay
1da72312a9
Merge branch 'master' into test/submitChanges 2025-02-19 11:00:20 -05:00
Mikhail Rozentsvayg
8dc667a2f6 review suggestions based improvements 2025-02-18 15:04:15 -08:00
Mikhail Rozentsvayg
799ec6d2c9 review suggestions 2025-02-18 14:54:13 -08:00
Mikhail Rozentsvayg
f659f40697 improve error message phrasing 2025-02-18 09:53:30 -08:00
Mikhail Rozentsvayg
c21afb88c2 fix (english) syntax error in cloudflare custom hostnames error message 2025-02-17 13:07:15 -08:00
Mikhail Rozentsvayg
880220a2b6 more cloudflare custom hostanmes requiremenets clarifications in docs and errors 2025-02-17 10:22:35 -08:00
Mikhail Rozentsvayg
b93f18d8d7 Add error reporting if CustomHostnames() fails (likely caused by missing Cloudflare for SaaS) 2025-02-17 09:28:54 -08:00
Mikhail Rozentsvayg
13af20bda3 use pagination helpers for CustomHostnames() api 2025-02-12 10:40:37 -08:00
Mikhail Rozentsvayg
28f5c95f24 rename customHostnamesWithPagination to listCustomHostnamesWithPagination help function to improve the naming consistency 2025-02-12 08:35:37 -08:00
Mikhail Rozentsvayg
b282c29ab7 do not attempt UpdateDataLocalizationRegionalHostname() if RegionKey is not set in the plan change; API requires admin role and fails on any change unnecessarily otherwise 2025-02-11 15:29:49 -08:00