* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(controller-gen): move tools under go tools
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* [endpoint] [source] Allow '.' in TXT Records
Signed-off-by: hfuss <hayden.fuss@kaleido.io>
* pr feedback; lint fix
Signed-off-by: hfuss <hayden.fuss@kaleido.io>
* using functional interfaces for future cleaners and validators of other record types
Signed-off-by: hfuss <hayden.fuss@kaleido.io>
* Revert "using functional interfaces for future cleaners and validators of other record types"
This reverts commit d9e1c2c3810a40b2cce22f53d8ac86ba64b488e6.
---------
Signed-off-by: hfuss <hayden.fuss@kaleido.io>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(source): add min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source): add min-ttl support
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/min-ttl): added min-ttl support
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* feat(source): add min-ttl support
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>
* fix: debug message of FilterEndpointsByOwnerID in case owner label is missing
* more consistent messages
* add unit test for changed debug message
---------
Co-authored-by: Pascal Bachor <bachorp@users.noreply.github.com>
* 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>
* feat(source/pod): add support ttl annotation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/pod): add support ttl annotation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* 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>
When AAAA multi-target / dual stack support was
added via #2461 it broke ownership of domains across
different clusters with different ingress records types.
For example if 2 clusters manage the same zone,
1 cluster uses A records and the other uses CNAME
records, when each record type is treated as a separate
planning record, it will cause ownership to bounce back
and forth and records to be constantly created and
deleted.
This change updates the planner to keep track of multiple
current records for a domain. This allows for A and AAAA
records to exist for a domain while allowing record type
changes.
The planner will ignore desired records for a domain that
represent conflicting record types allowed by RFC 1034 3.6.2.
For example if the desired records for a domain contains
a CNAME record plus any other record type no changes for
that domain will be planned.
The planner now contains an owned record filter provided
by the registry. This allows the planner to accurately plan
create updates when there are record type changes between
the current and desired endpoints. Without this filter the
planner could add create changes for domains not owned
by the controller.
Log whenever a target is not able to be parsed as an IP address. This is expected
to occur fairly often (for example, with CNAME targets), but allows more visibility
into how targets are being compared.
NOTE: depending on the number and type of targets, this could be quite noisy.