47 Commits

Author SHA1 Message Date
Ivan Ka
56e00e6667
perf(source/istio): replace API calls with indexed informer cache for gateway and virtualservice sources (#6303)
* perf(source/istio): replace API calls with indexed informer cache for gateway and virtualservice sources

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

* perf(source/istio): replace API calls with indexed informer cache for gateway and virtualservice sources

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-28 14:04:13 +05:30
Ivan Ka
d217706973
refactor(fqdn): encapsulate FQDN template logic into TemplateEngine (#6292)
* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(source): extract FQDN template logic into fqdn.TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* efactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

* refactor(fqdn): encapsulate FQDN template logic into TemplateEngine

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-23 19:40:19 +05:30
Ivan Ka
177a4db07b
feat(source/istio)!: migrate gateway and virtualservice sources to networking.istio.io/v1 (#6302)
* 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>
2026-03-22 00:44:14 +05:30
Ivan Ka
475cb2dd8b
feat(informers): reduce informer cache memory footprint via object transformers (#6240)
* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transfomers

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

* feat(informers): reduce informer cache memory footprint via object transfomers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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

* feat(informers): reduce informer cache memory footprint via object transformers

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>
2026-03-21 20:26:13 +05:30
Ivan Ka
083b6e9a12
docs(sources): surface provider-specific annotations support in documentation (#6231)
* 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>
2026-03-19 19:04:31 +05:30
Ivan Ka
7c909a015c
chore(source): standardize source fields with sources.Config (#6073)
* 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>
2026-03-16 14:41:40 +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
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
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
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
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
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
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
22c709bace
chore(source/istio): replace kube API calls with caching and ingress informers (#5743)
* chore(source/istio): ingress to use informers instead of kube API calls

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

* chore(source/istio): ingress to use informers instead of kube API calls

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

* chore(source/istio): ingress to use informers instead of kube API calls

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

* chore(source/istio): ingress to use informers instead of kube API calls

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

* chore(source/istio): ingress to use informers instead of kube API calls

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

* chore(source/istio): ingress to use informers instead of kube API calls

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-08-19 09:33:38 -07:00
Ivan Ka
d2d2b40a96
refactor(source/istio): add transformers (#5728)
* chore(source/istio): added transfomrers

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

* chore(source/istio): added transfomrers

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

* chore(source/istio): added transfomrers

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

* chore(source/istio): added transfomrers

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-08-16 00:59:07 -07:00
Ivan Ka
252a5e016c
feat(source/istio): support version 1.25+ (#5611)
* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.22

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

* feat(source/istio): support version 1.25+

Co-authored-by: mthemis-provenir <168411899+mthemis-provenir@users.noreply.github.com>

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: mthemis-provenir <168411899+mthemis-provenir@users.noreply.github.com>
2025-07-07 10:19:28 -07:00
Ivan Ka
1b77c19d3c
chore(codebase): reuse functions (#5607)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-06 01:17:25 -07:00
Ivan Ka
6e2fc4aa31
chore(codebase): enable linter nonamedreturns (#5594)
* chore(codebase): enable linter nonamedreturns

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

* chore(codebase): enable linter nonamedreturns

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-01 22:13:25 -07:00
Ivan Ka
36e3e53190
perf(source): benchmarks on EndpointTargetsFromServices (#5536)
* chore(benchmarking): added benchmarks to EndpointTargetsFromServices

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

* chore(benchmarking): added benchmarks to EndpointTargetsFromServices

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

* chore(benchmarking): added benchmarks to EndpointTargetsFromServices

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

* chore(benchmarking): added benchmarks to EndpointTargetsFromServices

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-06-19 15:31:00 -07:00
ivan katliarchuk
2b7d236734
chore(source): move cache informer to dedicated folder
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-25 13:47:16 +01:00
Ivan Ka
b20025e311
feat(fqdn): improve ExecTemplate and add more functions (#5406)
* chore(fqdn): fqdn move ExecTemplate to fqdn. add proper tests

* chore(fqdn): fqdn move ExecTemplate to fqdn. add proper tests

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

* chore(fqdn): fqdn move ExecTemplate to fqdn. add proper tests

Co-authored-by: Lino Layani <39967417+linoleparquet@users.noreply.github.com>

* chore(fqdn): fqdn move ExecTemplate to fqdn. add proper tests

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

* chore(fqdn): fqdn move ExecTemplate to fqdn. add proper tests

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Lino Layani <39967417+linoleparquet@users.noreply.github.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-05-19 12:35:22 -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
Kubernetes Prow Robot
2f165e878c
Merge pull request #5374 from gofogo/code-cleanup-vv0
chore(code-quality): refactoring and linter fixes
2025-05-10 10:57:14 -07:00
Ivan Ka
51d063ad28
chore(fqdn-template): fqdn templating move to specific folder and update documentation (#5354)
* chore(fqdn): fqdn move to specific folder and update documentation

* chore(fqdn): fqdn move to specific folder and update documentation

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

* chore(fqdn): fqdn move to specific folder and update documentation

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

* chore(fqdn): fqdn move to specific folder and update documentation

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

* chore(fqdn): fqdn move to specific folder and update documentation

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>
2025-05-10 05:53:22 -07:00
ivan katliarchuk
9f8f30882b
chore(source): code cleanup
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-05-09 08:21:31 +01:00
ivan katliarchuk
9f427e5622
chore(source): code cleanup 2025-04-16 13:50:04 +01:00
Lukas Wöhrl
25eac69705 fix: use informer for istio gateways
Signed-off-by: Lukas Wöhrl <lukas.woehrl@plentymarkets.com>
2024-06-03 11:44:38 +02:00
Karsten Siemer
87a53778a8
fix(istio): support for ExternalIPs in Istio resources
 Add support for ExternalIPs in Istio Gateway and VirtualService
ℹ️ This commit extends Istio Gateway and VirtualService resources
to support ExternalIPs. The changes include:
- Checking if service has ExternalIPs defined
- If yes, adding them to the list of targets
- If not, continuing with the existing process

👌 Now you can have your Istio resources use `externalIPs` too! 🎉

Not to be `ip`-percritical, but don't we all love an `ip`grade! 🎈

Signed-off-by: Karsten Siemer <karsten.siemer@sda.se>
2023-12-06 08:52:35 +01:00
John Gardiner Myers
17e9637f11
Refactor getTTLFromAnnotations() to not return error (#3939)
* Refactor getTTLFromAnnotations() to not return error

* Improve log messages
2023-10-02 03:56:45 -07:00
John Gardiner Myers
39955e556e Refactor setting the "resource" label into endpointsForHostname 2023-08-29 11:36:27 -07:00
David Pait
1a5249af5e fix go conventions and ehance error messages 2023-08-09 08:41:50 -04:00
David Pait
f9600b7b35 move ingress annotation and parseIngress to gateway source 2023-08-08 11:51:42 -04:00
David Pait
08b592d2fd update istio gateway ingress source annotation constant 2023-08-08 11:51:42 -04:00
David Pait
362b233833 update istio gateway annotation name and docs 2023-08-08 08:04:51 -04:00
David Pait
1253afa11e add supoort for ingress backed istio gateways 2023-08-06 16:57:42 -04:00
Michel Loiseleur
17ca22c309 fix test on istio 2023-06-19 11:22:41 +02:00
rumstead
4dd3de68e7 fix: extdns crashes when virtual service points to nonexistent gateway
Signed-off-by: rumstead <37445536+rumstead@users.noreply.github.com>

updating test

Update source/istio_virtualservice_test.go

Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>

Update source/istio_virtualservice_test.go

Co-authored-by: John Gardiner Myers <jgmyers@proofpoint.com>
2023-06-17 10:36:38 -04:00
ricoberger
d56ad7f683 Fix deletion of DNS Records for VirtualServices on error 2022-11-10 18:12:42 +01:00
Kubernetes Prow Robot
379fe6f554
Merge pull request #2215 from abursavich/istio-informer
Istio: Use existing VirtualService informer
2022-05-12 05:33:14 -07:00
Andrey Lebedev
4f41229820 Pass stop channel to informer factory instances 2022-01-22 21:31:29 +01:00
Andy Bursavich
85f8d9e2cf istio: use existing VirtualService informer 2021-08-11 07:40:14 -07:00
Andy Bursavich
60c649bf5c source: dedupe wait for cache sync
wait
2021-07-28 13:37:17 -07:00
Andy Bursavich
55637abbef source: dedupe event handlers 2021-07-28 13:36:35 -07:00
Andy Bursavich
b032f2864f source: dedupe template execution 2021-07-28 13:35:51 -07:00
Andy Bursavich
638194fccd source: dedupe template parsing 2021-07-28 07:46:35 -07:00
Andy Bursavich
5069c3f0fb source: name files consistently with their source name 2021-07-28 07:46:35 -07:00