* docs(aws): tutorial with kind and localstack
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* remove dependencies
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(aws): tutorial with kind and localstack
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(aws): tutorial with kind and localstack
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* docs(aws): tutorial with kind and localstack
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(aws): tutorial with kind and localstack
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(aws): tutorial with kind and localstack
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(aws): tutorial with kind and localstack
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>
* docs: add BIND9 on Kubernetes with Kind tutorial for rfc2136 provider
Add a step-by-step guide for deploying BIND9 and ExternalDNS inside
a local Kind cluster, covering forward (A) and reverse (PTR) DNS
zones with TSIG authentication.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
* docs: apply suggestions for bind9 tutorial
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
---------
Signed-off-by: Seena Fallah <seenafallah@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* refactor(wrappers): introduce BuildWrappedSource as single entry point for source pipeline
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(wrappers): introduce BuildWrappedSource as single entry point for source pipeline
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(wrappers): introduce BuildWrappedSource as single entry point for source pipeline
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(wrappers): introduce wrapper.Build as single entry point for source pipeline
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(source/istio): migrate gateway and virtualservice sources to networking.istio.io/v1
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support it in source documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support in documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support in documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support in documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(sources): surface provider-specific annotations support in documentation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(plan): cleanup and modernize plan package
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(plan): cleanup and modernize plan package
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(plan): cleanup and modernize plan package
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(plan): cleanup and modernize plan package
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
* refactor(plan): cleanup and modernize plan package
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(plan): cleanup and modernize plan package
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>
Without AddRateLimited the failed item was marked Done but never
put back into the queue, so transient API errors silently dropped
the event instead of retrying up to maxTriesPerEvent.
Assisted-By: Claude <noreply@anthropic.com>
Signed-off-by: Aleksei Sviridkin <f@lex.la>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
I'll enable https://github.com/ldez/usetesting
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* test(pdns): regex pitfalls in domain-filter zone partitioning
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(regexfilter): pitfalls in domain-filter zone partitioning
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
* docs(regexfilter): pitfalls in domain-filter zone partitioning
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>
* refactor(registry): introduce factory with uniform New constructors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(registry): introduce factory with uniform New constructors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(registry): introduce factory with uniform New constructors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(registry): introduce factory with uniform New constructors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactor(registry): introduce factory with uniform New constructors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* chore(source): standardize sources with config
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
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(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>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* refactore(source): move SuitableType to endpiont package
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* feat(event): add support for svc,ingress,pod,node,crd
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
* feat(event): add support for svc,ingress,pod,node,crd
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>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* docs(contributor): GetDomainFilter contract and ZoneCache blueprint for provider contributors
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* linter(goimports): Mixed import groups (internal before external)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* inter(goimports): Mixed import groups (internal before external)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
---------
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
* fix(readme): replace breaking change version v0.20.0 -> v0.19.0
- Replace mentioned version "v0.20.0" -> "v0.19.0" as both breaking
changes that are mentioned in version v0.20.0 actually first appeared
in v0.19.0
- Replace terms "expose external ipv6" -> "expose internal ipv6" based
on the terms used in the code
* Update README.md
Co-authored-by: Mangkoran <afnazrie@gmail.com>
---------
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
Add ValidatePTRRecord() that checks:
- DNSName ends with .in-addr.arpa or .ip6.arpa
- Targets are non-empty hostnames (not IP addresses)
Add PTR case to CheckEndpoint switch, following the existing
MX/SRV validation pattern. Invalid PTR endpoints are now rejected
by the dedup source wrapper with a warning log.
Signed-off-by: Seena Fallah <seenafallah@gmail.com>