Commit Graph

43 Commits

Author SHA1 Message Date
Andy Bursavich
f6392be41e
gofumpt 2022-09-22 10:44:50 +01:00
Luke Plausin
b86d8f9217
Update warning message 2022-09-22 10:38:56 +01:00
Luke Plausin
2fce778bd9
Revert order 2022-09-22 10:38:56 +01:00
Luke Plausin
08382c93bf
Remove duplicate line 2022-09-22 10:38:56 +01:00
Luke Plausin
fd2484410b
Add a warning for new unsupported regions. 2022-09-22 10:38:56 +01:00
Luke Plausin
1f924416a6
#2757 add missing regions Jakarta (ap-southest-3) and Milan (eu-south-1) 2022-09-22 10:38:56 +01:00
pg2000
91aaf6803d
Apply suggestions from code review 2022-08-19 17:25:47 +02:00
pg2000
ce38a40e2b
Apply suggestions from code review
Co-authored-by: Nick Jüttner <nick@juni.io>
2022-08-19 17:08:38 +02:00
pg2000
ff46c4067c
replace Id with ID
Co-authored-by: Steven E. Harris <seh@panix.com>
2022-06-27 20:56:55 +02:00
pg2000
ca99ed08eb
replace Id with ID
Co-authored-by: Steven E. Harris <seh@panix.com>
2022-06-27 20:56:46 +02:00
pg2000
4ace07f0a2
support ExternalID in AWS Provider when assuming a role 2022-06-15 18:49:31 +02:00
Nick Jüttner
e786f5bf60 fix 2022-02-13 13:19:36 +01:00
Jan Sandbrink
78fe201d1c Remove an obsolete TODO comment
This comment belonged to a switch-statement that
has since been removed, but it was forgotten to
remove the corresponding comment.
2022-02-09 09:21:41 +01:00
George Buckerfield
93b3cf95b6
Add the canonical hosted zone for Cloudfront 2021-11-12 15:19:07 +00:00
Tariq Ibrahim
1aef05c8e5
remove unused parameters in aws change submit method 2021-09-23 13:32:05 -07:00
Thibault Jamet
17fb8813d0
Reduce AWS Route53 API calls
Currently, planning instructs to create all records even
those which does not match any zone.
Later, those records will be checked towards the existing
records and filtered whether they match or not a hosted zone.

This causes a problem, at least in the specific case of the Route53
implementation as it always calls the ApplyChanges method, which in its
turn always retrieves all records in all zones.

This causes high pressure on Route53 APIs, for non-necessary actions.

By being able to filter all unmanaged records from the plan, we can
prevent from calling ApplyChanges when nothing has to be done and hence
prevent an unnecessary listing of records.

By doing so, the rate of API calls to AWS Route53 is expected to be
reduced by 2
2021-04-25 18:10:36 +02:00
Kubernetes Prow Robot
e2eefbec7b
Merge pull request #1860 from LogMeIn/aws-fix-alias-records
AWS Route 53 provider: fix various problems with handling of alias records
2021-04-07 00:51:53 -07:00
Alfred Krohmer
0d4cf9915c Address review comments 2021-04-05 21:37:13 +02:00
Thibault Jamet
d0120542ca
Use a constant 300 AWS page size 2021-03-24 11:15:02 +01:00
Steffen Pøhner Henriksen
4345ce6a31 AWS: fix handling of alias records 2021-03-22 14:38:15 +01:00
Thibault Jamet
6b8035e0ad
Increase AWS pagination size
From measurements, AWS by default has pagination of 100 items per
page when listing hosted zone resources.

This increases the number of requests required to list all our zones,
and pushes a hard constraint on the rate limits.

From the experiments, it seems that on the server-side, there is a hard
limit of 300 elements per page, as per AWS documentation:
https://docs.aws.amazon.com/Route53/latest/APIReference/API_ListResourceRecordSets.html

> ListResourceRecordSets returns up to 300 resource record sets at a time in ASCII order,
> beginning at a position specified by the name and type elements

Hence raising the page size from 100 to 300 items would decrease by 3
the number of requests posted to Route53

We even set a higher limit so we can benefit from a lower number of
requests if ever AWS increases the hard limit of 300.
2021-03-12 12:01:50 +01:00
Joshua Stern
eba31ec0d8 Add support for aws eu-south-1 region 2021-02-18 12:54:33 -05:00
Raffaele Di Fazio
f5aa1c4c37
Add new method to provider interface to implement provider specific changes (#1868)
* adds tests for shouldUpdateProviderSpecific

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* move AWS health to where it belongs

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* add test that breaks things

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>

* adds adjustendpoints method

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* fix controller

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* actually pass the provider where needed

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* OMG goland do your go fmt thing

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* use registry as proxy

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* make linter happy

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* change AdjustEndpoints signature

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* fix typo

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* actually use adjusted endpoints

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* revert cloudflare change

Signed-off-by: Raffaele Di Fazio <raffo@github.com>

* Update provider/cloudflare/cloudflare.go

Co-authored-by: Nick Jüttner <nick@juni.io>

Co-authored-by: Nick Jüttner <nick@juni.io>
2020-12-09 23:40:54 -08:00
James Ravn
053d39f422
Allow AWS provider to change record types
Currently the AWS provider cannot handle record type changes. It always
attempts to UPSERT such updates, which will fail the entire zone batch
of changes. As a result, a single resource change can break all the
updates for the entire zone.

This change modifies the AWS behavior to correctly identify when the
record type changes and perform a batched DELETE and CREATE to update
the record successfully.

Special logic is required to handle ALIAS records which are not directly
encoded by the generic external-dns code, and relies on
convention (using a CNAME record type internally). I'm not sure this is
ideal as it's fairly error prone, and would prefer to see direct support
for such ALIAS types, but I've left it alone in this change.
2020-11-19 14:45:40 +00:00
Mic
83d95bf425 aws-r53 adding Africa (Cape Town) ELB endpoints and hosted zone id's 2020-10-20 16:33:14 +02:00
Rajat Jindal
625eaf4867 get healthcheckid whether set-identifier is set or not 2020-09-29 15:11:12 +05:30
Rajat Jindal
72544c38c3 allow setting healthCheckId when identifier not provided 2020-09-29 15:11:12 +05:30
Rajat Jindal
32b7452fbe allow to associate dns records with health checks 2020-09-29 15:11:12 +05:30
Benjamin Pineau
837d1ea248 aws: cache zones list
When it syncs AWS DNS with k8s cluster content (at `--interval`), external-dns submits two distinct Route53 API calls:
* to fetch available zones (eg. for tag based zones discovery, or when zones are created after exernal-dns started),
* to fetch relevant zones' resource records.

Each call taxes the Route53 APIs calls budget (5 API calls per second per AWS account/region hard limit), increasing the probability of being throttled.
Changing synchronization interval would mitigate those calls' impact, but at the cost of keeping stale records for a longer time.

For most practical uses cases, zones list aren't expected to change frequently.
Even less so when external-dns is provided an explicit, static zones set (`--zone-id-filter` rather than `--aws-zone-tags`).

Using a zones list cache halves the number of Route53 read API calls.
2020-09-03 13:03:07 +02:00
Vinny Sabatini
47f9fb1b27 utilize the errors package for AWS error handling 2020-08-24 21:57:01 -05:00
Kubernetes Prow Robot
84e6002297
Merge pull request #1549 from Reuuke/master
External DNS should uses ALIAS for AWS Global Accelerator
2020-08-20 00:37:23 -07:00
Benjamin Pineau
b64e3ac832 aws: errors with context
When faced with errors from cloud providers (like "Throttling: Rate exceeded"), it's not always easy to find what operation caused the failure, and what action was aborted, if any,

Let's make it easier to identify an error source (and affected object when possible) by providing more context (and by using easy to find error messages).
2020-08-14 12:54:28 +02:00
Kubernetes Prow Robot
102228c181
Merge pull request #1555 from OmerKahani/Change_Order_Delete_Before_Create
AWS: change the order of the actions, DELETE before CREATE fixes #1411
2020-06-10 08:20:51 -07:00
Nick Jüttner
d867582bf8 improve linter quality for external-dns 2020-06-06 22:35:05 +02:00
Nick Jüttner
3388e3ddf1 improve linter quality for external-dns 2020-06-06 22:29:24 +02:00
Kubernetes Prow Robot
25d71ea45a
Merge pull request #1536 from sheerun/property-comparator
Allow for custom property comparators
2020-06-01 03:07:55 -07:00
greenu
5be33906ff Fix incorrect ELB hostzones for AWS China 2020-05-25 15:42:50 +03:00
Calvin Huang
514c6e277a
update reference link with elb endpoints 2020-05-21 00:45:42 -07:00
Calvin Huang
6f07ea5ea6
Update Govcloud provider hosted zones
Fixes https://github.com/kubernetes-sigs/external-dns/issues/1550;
https://docs.aws.amazon.com/general/latest/gr/rande.html#elb_region now has documentation for the Govcloud regions as well
2020-05-20 17:03:19 -07:00
Adam Stankiewicz
f008e894df Allow for custom property comparators
Fixes issue #1463

Co-authored-by: Alastair Houghton <alastair@alastairs-place.net>
2020-05-12 16:27:46 +02:00
Omer Kahani
231fbeafcb change the order 2020-05-12 11:52:19 +03:00
Ilya Nemakov
b59298e780 External DNS should use ALIAS for AWS Global Accelerator 2020-05-12 11:34:53 +03:00
Raffaele Di Fazio
db4224c705 restructures the providers (build only)
Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2020-05-08 13:05:17 +02:00