713 Commits

Author SHA1 Message Date
Xiuming Chen
5bfab70cd2
docs: correct pod internal-hostname behavior in hostNetwork mode (#6256)
* docs: correct pod internal-hostname behavior in hostNetwork mode

* test(pod): add internal-hostname regressions for host-network and non-host-network

* docs: add internal-hostname annotation use cases
2026-03-12 13:09:35 +05:30
Ivan Ka
aa2a488b53
refactore(source): move EndpointsForHostname to endpoints package (#6248)
* refactore(source): move EndpointsForHostname to endpoint package

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

* refactore(source): move EndpointsForHostname to endpoint package

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

* refactore(source): move EndpointsForHostname to endpoint package

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-12 12:57:36 +05:30
Ivan Ka
c35ed0b82a
feat(source): add unstructured source (#6172)
* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* Update docs/sources/unstructured.md

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

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

* feat(source): add unstructured source

* feat(source): add unstructured source

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-03-12 05:23:33 +05:30
Ivan Ka
666b994e70
fix(fake): Fake clientset hangs for 10s per informer with client-go 0.35+ (#6235)
* fix(fake): Fake clientset hangs for 10s per informer with client-go v0.35+

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

* fix(fake): Fake clientset hangs for 10s per informer with client-go v0.35+

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-11 06:41:09 +05:30
Kai Udo
9c91c6ff71
refactor(testutils): extract log test helpers into subpackage to fix (#6236)
circular import

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>
2026-03-01 14:56:11 +05:30
Kai Udo
a4e167973c
feat(endpoint): reject alias property on unsupported record types (#6188)
* feat(endpoint): reject alias property on unsupported record types

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* refactor(endpoint): rename supportAlias to supportsAlias and extract alias constant

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* test(endpoint): add alias warning log assertion cases

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* test(wrappers): add alias cases to dedup validation and warn tests

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* refactor(endpoint): use providerSpecificAlias constant in tests

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

* docs(annotations): note alias annotation is limited to A, AAAA, and CNAME

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>

---------

Signed-off-by: u-kai <76635578+u-kai@users.noreply.github.com>
2026-02-28 23:41:30 +05:30
Vyacheslav Klimov
f4c758665b
feat(pdns): add --[no-]prefer-alias flag and alias annotation support (#6129)
* feat: add support for expand alias in pdns provider

* feat: codereview

* feat: rewrite docs

* feat: gofmt

* feat: rewrite using postprocessor

* feat: gofmt

* feat: update docs

* fix: prefer-alias respects existing annotations

* feat: update formatting verbs

* fix: fix return values and call sites after convertRRSetToEndpoints signature change

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

* fix: remove unused error return from convertRRSetToEndpoints

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-02-26 17:38:27 +05:30
Ivan Ka
947c25daf6
fix(crd): allow trailing dot in CNAME targets (#6218)
* fix(crd): allow trailing dot in CNAME targets

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

* fix(crd): allow trailing dot in CNAME targets

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

* fix(crd): allow trailing dot in CNAME targets

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

* fix(crd): allow trailing dot in CNAME targets

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-26 12:44:23 +05:30
Volker Hartmann
b9aba54e8f
feat(crd): Support MX record with trailing dot (#6163)
* Support MX record with trailing dot

* refactor(crd): Replace nested if statements with switch case; add test for target without trailing dot
2026-02-23 01:16:58 +05:30
Ivan Ka
ef69679e38
chore(source): standardize sources with merge endpionts and deduplicate targets (#6174)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-23 00:10:58 +05:30
Ivan Ka
1751267905
chore(store): Added RESTConfig() to ClientGenerator (#6177)
* chore(store): Added RESTConfig() to ClientGenerator

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

* chore(store): Added RESTConfig() to ClientGenerator

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-21 14:55:45 +05:30
Ivan Ka
7f43ac6d11
chore(ingress): clarify that both IP and Hostname are collected from LoadBalancer status (#6138)
* chore(ingress): clarify behavior with unit tests

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

* chore(ingress): clarify behavior with unit tests

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-21 14:55:38 +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
cee172056e
feat(fqdn): Deduplicate and sort ExecTemplate output. Add functions (#6173)
* chore(fqdn): no duplicates, added extra functions

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

* chore(fqdn): no duplicates, added extra functions

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

* chore(fqdn): no duplicates, added extra functions

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

* chore(fqdn): no duplicates, added extra functions

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-20 13:19:39 +05:30
Ivan Ka
f0db4c2587
fix(annotations): initialize annotation keys at declaration time (#6159)
* fix(annotations): allow resetting annotation prefix to default value

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

* fix(annotations): allow resetting annotation prefix to default value

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

* fix(annotations): allow resetting annotation prefix to default value

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-02-01 04:38:25 +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
Zvi Cahana
d40b200e79
docs(fqdn): use correct arguments order in FQDN Templating custom functions (#6144)
* Fix args ordering in FQDN Templating guide

* Add test cases for FQDN templates executions

* Fix unit test to use the correct template function
2026-01-30 14:49:44 +05:30
Ivan Ka
8e89808f2c
refactor(kubeclient): consolidate duplicate code (#6076)
* 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>

* refactore(kubeclient): consolidate duplicate code to ensure consistent client creation

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.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>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-29 02:15:48 +05:30
Ivan Ka
89eec8151b
chore(source): standardize sources (#6089)
* chore(source): standardize sources

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

* chore(source): sources to standartise with IsControllerMismatch

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

* chore(source): sources to standartise with IsControllerMismatch

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

* chore(source): sources to standartise with IsControllerMismatch

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

* chore(source): sources to standartise with IsControllerMismatch

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

* chore(source): sources to standartise with IsControllerMismatch

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

* chore(source): sources to standartise

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

* chore(source): sources to standartise

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

* chore(source): sources to standartise

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

* chore(source): sources to standartise

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

* chore(source): sources to standartise

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

* chore(source): sources to standartise

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-21 16:49:26 +05:30
Ivan Ka
a174cc03d4
docs(source): autogenerate docs for events (#6119)
* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

* docs(source): autogenerate docs for events

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-21 16:37:28 +05:30
Ivan Ka
3356639fdc
refactor(informers): unify cache sync functions using generics (#6102)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-16 04:55:17 +05:30
Ivan Ka
30cba83259
fix(fqdn): support kind and api version (#6097)
* fix(fqdn): support kind and api version

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

* fix(fqdn): support kind and api version

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

* fix(fqdn): support kind and api version

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

* fix(fqdn): support kind and api version

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-16 04:55:11 +05:30
Ivan Ka
45ec4f3b94
test(fqdn): cover sources without any fqdn tests (#6094)
* chore(fqdn): added fqdn specific tests for sources

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

* chore(fqdn): added fqdn specific tests for sources

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-16 02:55:14 +05:30
bogdankrasko
fd70df92ab
feat(source): gateway api hostname source annotation (#5959)
* feat: Add gateway api source annotation

* fix: Fix unit tests

* Update docs/annotations/annotations.md

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

* fix: validate gateway-hostname-source and warn on invalid

* fix: Fix formating

---------

Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-11 23:36:03 +05:30
Ivan Ka
56fb17abc7
refactor(controller): controller no longer responsible for SingletonClientGenerator creation (#6077)
* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

* refactore(controller): abstract things that should not be in controller

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-11 01:29:56 +05:30
Ivan Ka
c0d9262ad5
refactor(source): standardize FQDN template accross sources (#6093)
* chore(fqdn): standardize FQDN template

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

* refactore(fqdn): standardize FQDN template

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-11 01:18:02 +05:30
Ivan Ka
2ea37275e2
refactor(api): deduplicate addKnownTypes (#6087)
* chore(api): deduplicate addKnownTypes

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

* chore(api): deduplicate addKnownTypes

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-11 00:39:57 +05:30
Ivan Ka
f6b14aabae
chore(aws): document and test behavior for ALB and NLB (#6063)
* chore(ingress): added tests to cover behaviour for AWS ALB and NLB

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

* fix(domain-exclusion): domain exclusion filter fix

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

* chore(ingress): added tests to cover behaviour for AWS ALB and NLB

* fix(domain-exclusion): domain exclusion filter fix

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

* fix(domain-exclusion): domain exclusion filter fix

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

* fix(domain-exclusion): domain exclusion filter fix

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

* fix(domain-exclusion): domain exclusion filter fix

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

* chore(ingress): added tests to cover behaviour for AWS ALB and NLB

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-08 13:31:40 +05:30
Ivan Ka
d2fb11a3fc
chore(source)!: remove cloudfoundry support (#6074)
* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

* chore(source): remove cloudfoundry support

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-01-07 13:19:41 +05:30
Ivan Ka
97af77f5af
docs(source): autogenerate docs for sources with go-doc like style (#6075)
* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

* docs(source): autogenerate docs from sources attached to annotations

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: vflaux <38909103+vflaux@users.noreply.github.com>
2026-01-07 02:59:38 +05:30
Ivan Ka
62f0ae5559
chore(node): remove warning msg (#6070)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-31 16:24:34 +05:30
Ivan Ka
a4035f12a3
refactor(annotation): rationalize filtering (#6065)
* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

* chore(annotation): eliminate annotation filtering duplication

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-30 20:16:41 +05:30
Ivan Ka
c0d97e06c1
fix(fqdn): remove invalid fgdn domains (#6046)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-30 20:16:35 +05:30
Ivan Ka
2bdb8df7e2
refactor(source): handle context in similar way (#6049)
* chore(source): sources to handle context in similar way

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

* chore(source): sources to handle context in similar way

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

* chore(source): sources to handle context in similar way

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-30 16:28:34 +05:30
Ivan Ka
97352c7869
chore(ingress): added tests to cover specific behaviour (#6060)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-29 14:50:35 +05:30
Ivan Ka
de93816a91
somehow single test was not fixed (#6059)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-29 01:36:34 +05:30
Ivan Ka
b453ea1665
chore(wrapper): centralized endpoint validation (#6041)
* chore(wrapper): centralized endpoint target validation

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

* chore(wrapper): centralized endpoint target validation

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

* chore(wrapper): centralized endpoint target validation

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-27 22:18:33 +05:30
Ivan Ka
07dd842432
test(coverage): improve code coverage for different files (#6045)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-27 22:04:40 +05:30
Ivan Ka
a23f2d5a9a
chore(lint): configure modernize linter (#6035)
* chore(lint): configure modernize linter

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

* chore(lint): configure modernize linter

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

* chore(lint): modernize linter

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

* chore(lint): configure modernize linter

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-27 22:04:33 +05:30
Ivan Ka
690259f3a9
feat(service): ignore unschedulable (#6002)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-12-14 06:29:43 -08:00
Michel Loiseleur
e6ebc1bcae
refactor(source): use less memory on deduplication (#6020) 2025-12-14 06:13:46 -08:00
dongjiang
fa1de21122
fix typo (#6011)
Signed-off-by: jiangdong <jiangdong@iflytek.com>
2025-12-10 09:03:34 -08:00
Till Hoffmann
222b95fdca
fix(docs): Fixing typos in docs and comments (#5995) 2025-12-05 11:16:57 -08:00
Christian Rohmann
fde978f2d8
fix: append dot to the target of SRV records as required by RFC 2782 (#5534)
According to RFC2782 [1], SRV records are to be fully-qualified,
ending with a final dot. Most providers are liberal, but e.g. OpenStack
Designate expects targets to end with a dot ([2])

[1] https://datatracker.ietf.org/doc/html/rfc2782
[2] a891d81974/designate/objects/fields.py (L235-L236)

Signed-off-by: Christian Rohmann <christian.rohmann@inovex.de>
2025-11-20 23:28:33 -08:00
Quan Hoang
62f4d7d5f8
feat: add support for ingress backed GlooEdge Gateway (#5909) 2025-11-16 10:33:38 -08:00
Ivan Ka
19bd7e6f4d
test(source): fqdn for source/service/nodeport/srv records (#5554)
* chore(source): service add fqdn tests for NodePort/SRV records

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

* chore(source): service add fqdn tests for NodePort/SRV records

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-11-11 08:08:56 -08:00
Ivan Ka
1ce3d4e705
fix(service): rollback nodeinformer for addevent handler (#5941)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-11-08 04:16:52 -08:00
Aleksei Sviridkin
5a55b09f48
feat(annotations): add custom annotation prefix support for split horizon DNS (#5889)
* feat(annotations): add custom annotation prefix support for split horizon DNS

Add --annotation-prefix flag to allow customizing the annotation prefix
used by external-dns. This enables split horizon DNS scenarios where
multiple instances process different sets of annotations from the same
Kubernetes resources.

Changes:
- Add AnnotationPrefix field to Config with validation
- Convert annotation constants to variables that can be reconfigured
- Add SetAnnotationPrefix() function to rebuild annotation keys
- Integrate annotation prefix setting in controller startup
- Update Helm chart with annotationPrefix value
- Add comprehensive split horizon DNS documentation
- Update FAQ with annotation prefix examples

This maintains full backward compatibility - the default prefix remains
"external-dns.alpha.kubernetes.io/".

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(advanced): fix markdown formatting in split-horizon guide

Add blank lines before code blocks to improve markdown rendering
and comply with markdownlint rules.

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(advanced): fix markdown formatting in split-horizon guide

Co-Authored-By: Claude <noreply@anthropic.com>

* docs(charts): regenerate Helm chart documentation

Co-Authored-By: Claude <noreply@anthropic.com>

* test: add AnnotationPrefix field to test configs

Add missing AnnotationPrefix field to minimalConfig and overriddenConfig
test configurations to match the new default value set in NewConfig().

Co-Authored-By: Claude <noreply@anthropic.com>

* test(charts): update error pattern in json-schema test

Update expected error message pattern to match current Helm validation
output format.

Co-Authored-By: Claude <noreply@anthropic.com>

* refactor(annotations): remove init() for explicit initialization

- Remove init() function from annotations package
- Add explicit SetAnnotationPrefix() call in controller/execute.go
- Remove annotation key aliases from source/source.go
- Replace all alias usages with annotations.* references (348 changes in 28 files)
- Add TestMain to existing test files (service_test.go, cloudflare_test.go)

This change makes annotation initialization explicit and predictable,
avoiding hidden global state initialization at import time.

Co-Authored-By: Claude <noreply@anthropic.com>

* docs: update changelog and mkdocs to include annotationPrefix and split horizon DNS

Signed-off-by: Aleksei Sviridkin <f@lex.la>

* docs(split-horizon): fix linting

Signed-off-by: Aleksei Sviridkin <f@lex.la>

* refactor(annotations): replace hardcoded annotation prefix with constant

Replace all hardcoded "external-dns.alpha.kubernetes.io/" strings
with annotations.DefaultAnnotationPrefix constant to establish
a single source of truth.

Changes:
- Add DefaultAnnotationPrefix constant in source/annotations/annotations.go
- Replace hardcoded string in controller/execute.go with constant reference
- Replace hardcoded strings in pkg/apis/externaldns/types.go (2 occurrences)
- Add helm unit tests for annotationPrefix value

This eliminates string duplication and makes future changes easier.

Co-Authored-By: Claude <noreply@anthropic.com>

---------

Signed-off-by: Aleksei Sviridkin <f@lex.la>
Co-authored-by: Claude <noreply@anthropic.com>
2025-11-08 03:56:52 -08:00
Ivan Ka
64c58aca56
refactor(source/wrappers): move wrappers logic away from execute file (#5888)
* refactor(source/wrappers): move wrappers away from

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

* refactor(source/wrappers): move wrappers away from

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

* refactor(source/wrappers): move wrappers away from

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

* refactor(source/wrappers): move wrappers away from

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-10-08 23:47:02 -07:00
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