42 Commits

Author SHA1 Message Date
Ivan Ka
ea4d2d1681
refactor(source/crd): migrate CRD source to controller-runtime cache (#6312)
* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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

* refactor(source/crd): migrate CRD source to controller-runtime cache

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-29 00:14:12 +05:30
Ivan Ka
2c8b57eea4
refactor(test): deduplicate endpoint assertion helpers across source (#6299)
* refactor(test): deduplicate endpoint assertion helpers across source and integration tests

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

* refactor(test): deduplicate endpoint assertion helpers across source

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2026-03-22 00:56: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
e1f848446d
feat(event): emit events for ingress,svc,pod,node,crd (#6099)
* 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>
2026-03-16 04:03:36 +05:30
Ivan Ka
e21f1389fb
linter(usetesting): enable usetesting (#6266)
* linter(usetesting): enable usetesting

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

* linter(usetesting): enable usetesting

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

* linter(usetesting): enable usetesting

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

* linter(usetesting): enable usetesting

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

* linter(usetesting): enable usetesting

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

* linter(usetesting): enable usetesting

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2026-03-14 22:07:35 +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
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
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
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
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
hayden
ef621078c2
fix(endpoint/source) Allow '.' in TXT Records (#5844)
* [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>
2025-09-21 02:18:20 -07:00
vflaux
fe142a8f1b
fix(source/crd): increase tests timeouts (#5785) 2025-09-01 06:11:15 -07:00
Ivan Ka
5d8d424bcb
chore(codebase): remove pointer to an interface (#5625)
* chore(codebase): remove pointer to an interface

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

* chore(codebase): simplify logic

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-09 00:43:35 -07:00
Alen Zubic
28f9e9c06e
feat(source)!: introduce optional force-default-targets (#5316)
* BREAKING CHANGE: Improve default targets management

* fix: Remove old test case

* fix: Test confirming legacy mode allows empty CRD targets

* fix: Remove comments

* fix: Move flag definition closer to detault-targets

* fix: Initial merge adaptation

* fix: Improved legacy needs a chance to work with empty CRD list

* fix: Code coverage and dead code

* fix: Simpler Endpoints logic

* fix: Flag description

* feat: Add tutorial

* fix: Improve linting

* fix: Improve linting

* fix: Import linting
2025-06-17 23:48:51 -07:00
Ivan Ka
00fde1e510
chore(source/crd): add labels without looping over (#5492) 2025-06-03 00:02:38 -07:00
Ivan Ka
fbaf15f20b
chore(source/crd): improve coverage, fix deprecations (#5489) 2025-06-01 07:38:11 -07:00
Michel Loiseleur
d0e6a9075e
chore(crd): move code to apis/v1alpha1 (#5446)
* chore(crd): move code to `api/v1alpha1`

* fix license check

* fix linter

* remove obsolete exclusion on linter
2025-05-23 08:16:37 -07:00
ivan katliarchuk
11fd3a87aa
chore(codebase): enable copyloopvar 2025-05-20 09:37:39 +01:00
Michel Loiseleur
9597d257a7 fix: linter on unused parameter 2024-05-16 08:44:06 +02:00
Joel Studler
0c43e808bb Change test names to match better with variable names and log messages of crd.go 2024-01-27 13:20:12 +01:00
Joel Studler
2fdc7354c0 Add unit tests for NAPTR and invalid endpoints 2024-01-27 13:16:53 +01:00
Dieter Bocklandt
6a3e97083c
fix(google): ensure trailing dot for SRV records 2023-11-14 17:12:56 +01:00
Kubernetes Prow Robot
e6ec8ea329
Merge pull request #2220 from ericrrath/crd-source-event-handler
CRD source: add event-handler support
2023-04-13 23:20:39 -07:00
Raffaele Di Fazio
31e6bb8578
CI linting fixes (#3205)
* ci linting fixes

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

* remove staticcheck

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

* disable naming rule

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

* disable stylecheck too

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

* linter errors fixes

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

* re-add staticcheck

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

* fixes various linting issues

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

* fix imports

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

* fix tlsconfig

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

* fix alibabacloud

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

* ioutil fixes

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

* remove all references to ioutil

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

* ignore linting for azure deprecated sdk

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

Signed-off-by: Raffaele Di Fazio <difazio.raffaele@gmail.com>
2022-12-02 10:57:53 -08:00
Andy Bursavich
74ffff6c26 gofumpt 2022-09-20 20:48:57 -07:00
Eric R. Rath
56a8d60fff Review feedback
njuettner suggested using a var instead of boolean literals for the
startInformer arg to NewCRDSource; good idea.
2022-02-04 15:36:29 -08:00
Eric R. Rath
585d752ca4 Don't run CRD informer during tests
This change disables the CRD source's informer during tests.  I made the mistake
of not running `make test` before the previous commit, and thus didn't realize
that leaving the informer enabled during the tests introduced a race condition:

	WARNING: DATA RACE
	Write at 0x00c0005aa130 by goroutine 59:
	  k8s.io/client-go/rest/fake.(*RESTClient).do()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:113 +0x69
	  k8s.io/client-go/rest/fake.(*RESTClient).do-fm()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:109 +0x64
	  k8s.io/client-go/rest/fake.roundTripperFunc.RoundTrip()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:43 +0x3d
	  net/http.send()
		  /usr/local/go/src/net/http/client.go:251 +0x6da
	  net/http.(*Client).send()
		  /usr/local/go/src/net/http/client.go:175 +0x1d5
	  net/http.(*Client).do()
		  /usr/local/go/src/net/http/client.go:717 +0x2cb
	  net/http.(*Client).Do()
		  /usr/local/go/src/net/http/client.go:585 +0x68b
	  k8s.io/client-go/rest.(*Request).request()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/request.go:855 +0x209
	  k8s.io/client-go/rest.(*Request).Do()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/request.go:928 +0xf0
	  sigs.k8s.io/external-dns/source.(*crdSource).List()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd.go:250 +0x28c
	  sigs.k8s.io/external-dns/source.NewCRDSource.func1()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd.go:125 +0x10a
	  k8s.io/client-go/tools/cache.(*ListWatch).List()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/listwatch.go:106 +0x94
	  k8s.io/client-go/tools/cache.(*Reflector).ListAndWatch.func1.1.2()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:233 +0xf4
	  k8s.io/client-go/tools/pager.SimplePageFunc.func1()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/pager/pager.go:40 +0x94
	  k8s.io/client-go/tools/pager.(*ListPager).List()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/pager/pager.go:91 +0x1f4
	  k8s.io/client-go/tools/cache.(*Reflector).ListAndWatch.func1.1()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:258 +0x2b7

	Previous write at 0x00c0005aa130 by goroutine 37:
	  k8s.io/client-go/rest/fake.(*RESTClient).do()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:113 +0x69
	  k8s.io/client-go/rest/fake.(*RESTClient).do-fm()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:109 +0x64
	  k8s.io/client-go/rest/fake.roundTripperFunc.RoundTrip()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/fake/fake.go:43 +0x3d
	  net/http.send()
		  /usr/local/go/src/net/http/client.go:251 +0x6da
	  net/http.(*Client).send()
		  /usr/local/go/src/net/http/client.go:175 +0x1d5
	  net/http.(*Client).do()
		  /usr/local/go/src/net/http/client.go:717 +0x2cb
	  net/http.(*Client).Do()
		  /usr/local/go/src/net/http/client.go:585 +0x68b
	  k8s.io/client-go/rest.(*Request).request()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/request.go:855 +0x209
	  k8s.io/client-go/rest.(*Request).Do()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/rest/request.go:928 +0xf0
	  sigs.k8s.io/external-dns/source.(*crdSource).List()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd.go:250 +0x28c
	  sigs.k8s.io/external-dns/source.(*crdSource).Endpoints()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd.go:171 +0x13c4
	  sigs.k8s.io/external-dns/source.testCRDSourceEndpoints.func1()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd_test.go:388 +0x4f6
	  testing.tRunner()
		  /usr/local/go/src/testing/testing.go:1193 +0x202

	Goroutine 59 (running) created at:
	  k8s.io/client-go/tools/cache.(*Reflector).ListAndWatch.func1()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:224 +0x36f
	  k8s.io/client-go/tools/cache.(*Reflector).ListAndWatch()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:316 +0x1ab
	  k8s.io/client-go/tools/cache.(*Reflector).Run.func1()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:177 +0x4a
	  k8s.io/apimachinery/pkg/util/wait.BackoffUntil.func1()
		  /Users/erath/go/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:155 +0x75
	  k8s.io/apimachinery/pkg/util/wait.BackoffUntil()
		  /Users/erath/go/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:156 +0xba
	  k8s.io/client-go/tools/cache.(*Reflector).Run()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:176 +0xee
	  k8s.io/client-go/tools/cache.(*Reflector).Run-fm()
		  /Users/erath/go/pkg/mod/k8s.io/client-go@v0.18.8/tools/cache/reflector.go:174 +0x54
	  k8s.io/apimachinery/pkg/util/wait.(*Group).StartWithChannel.func1()
		  /Users/erath/go/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:56 +0x45
	  k8s.io/apimachinery/pkg/util/wait.(*Group).Start.func1()
		  /Users/erath/go/pkg/mod/k8s.io/apimachinery@v0.18.8/pkg/util/wait/wait.go:73 +0x6d

	Goroutine 37 (running) created at:
	  testing.(*T).Run()
		  /usr/local/go/src/testing/testing.go:1238 +0x5d7
	  sigs.k8s.io/external-dns/source.testCRDSourceEndpoints()
		  /Users/erath/go/src/github.com/ericrrath/external-dns/source/crd_test.go:376 +0x1fcf
	  testing.tRunner()
		  /usr/local/go/src/testing/testing.go:1193 +0x202

It looks like client-go's fake.RESTClient (used by crd_test.go) is known to
cause race conditions when used with informers:
<https://github.com/kubernetes/kubernetes/issues/95372>.  None of the CRD tests
_depend_ on the informer yet, so disabling the informer at least allows the
existing tests to pass without race conditions.  I'll look into further changes
that 1) test the new event-handler behavior, and 2) allow all tests to pass
without race conditions.
2022-02-04 15:32:03 -08:00
Arjun Naik
d91b7e6b8f Label filtering for Ingress, Service, Openshift Route sources
Currently the `--label-filter` flag can only be used to filter CRDs
which match the label selector passed through that flag. This change
extends the functionality to the Ingress, Service and Openshift Route
type objects. When the flag is not specified the default value is
`labels.Everything()` which is an empty string, the same as before.
Annotation based filter is inefficient because the filtering has to be
done in the controller instead of the API server like with label
filtering.
2021-10-14 11:06:55 +02:00
Andy Bursavich
76108e1bde source: parallelize tests that wait for syncing 2021-07-26 12:40:15 -07:00
Yury Tsarev
904d8e4c87 NS record support 2020-10-12 20:23:17 +02:00
João Marçal
79ea64884b
Added labelFilter for source CRD (#1461)
* Added label filter for source CRD

* Fixed bug with labels and added tests for source CRD

* Fixed formating

* Update source/crd_test.go

Co-authored-by: Vinny Sabatini <vincent.sabatini@gmail.com>

Co-authored-by: Vinny Sabatini <vincent.sabatini@gmail.com>
2020-09-24 01:28:05 -07:00
Joseph Glanville
6efca134f5 dependencies: Upgrade all k8s client-go dependent sources to v1.18.X
This requires pinning grpc for now as istio client-go otherwise pulls in
breaking changes.
2020-07-03 11:29:37 +07:00
Tariq Ibrahim
b1b46e7bec
use istio client-go and clean up k8s deps 2020-05-17 09:21:01 -07:00
Yury Tsarev
d432625168 Implement annotation filter for CRD source
* Ability to use `--annotation-filter` for CRD source
* Use case is similar to https://github.com/kubernetes-sigs/external-dns/blob/master/docs/faq.md#running-an-internal-and-external-dns-service
  but for CRD source, effectively DNSEndpoints instead of Ingresses
2020-03-28 00:21:25 +01:00
Tariq Ibrahim
394f46cd64
uprade golangci-lint and add megacheck & interface linters 2020-01-23 14:49:23 -08:00
Tariq Ibrahim
41ba7f1ff5
rename project root package to sigs.k8s.io 2020-01-06 08:08:35 -08:00
Nick Jüttner
f763d2a413 Move into kubernetes-sigs organization (#1245)
* Move into kubernetes-sigs organization

* Disable labeler action for forks
2019-11-01 17:10:19 +01:00
Arturo Contreras
5df90d6900 Add crd check for empty targets. 2019-05-20 09:29:25 -06:00
xunpan
fc245c088d avoid unnecessary updating for CRD resource
with test updated
2018-12-13 02:35:18 -05:00
shashidharatd
79ad3a8b1a Add unit tests for crd source 2018-08-22 19:37:21 +05:30