143 Commits

Author SHA1 Message Date
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
Ivan Ka
1f9edcb7fc
test(source/service): add serviceTypeFilter edge case (#5872)
* chore(source/service): serviceTypeFilter edge case tests

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

* chore(source/service): serviceTypeFilter edge case tests

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-09-30 01:26:19 -07:00
Andrew Hay
6cf328f037
refactor(service): reduce cyclomatic complexity of extractHeadlessEndpoints (#5822)
* feat: reduce cyclomatic complexity of service_test

* style: indention added

* style: tab

* refactor: address PR feedback, improve tests, and reduce complexity

* fix(service): address PR feedback and fix linting

* Revert "fix(service): address PR feedback and fix linting"

This reverts commit 4cba488dc741ee1d946b105da952c09893c289c4.

* refactor: address all PR feedback - improve method naming, add test coverage, fix parameter ordering

* refactor: address latest PR feedback - convert to method, use testutils, add test coverage

* test: add coverage for pod hostname scenario

Addresses 4th to last PR comment about missing test coverage for
the case where pod.Spec.Hostname is set, which creates additional
headless domains (pod-specific hostname + base hostname)

* style: remove extra line

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

* style: remove extra line

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

---------

Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-09-23 00:04:16 -07:00
Ivan Ka
4de8bd6fde
fix(endpoint): deduplicate targets (#5805)
* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

* fix(deduplicate): deduplicate targets

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-09-08 05:01:31 -07:00
Valerian Roche
111df9f1fb
feat(source): use transformers in pod informers to reduce memory footprint (#5596)
* feat: use transformers in pod informers to reduce memory footprint

Add a transformer to the pods informer of the pod and service sources.

Refs: #5595

Signed-off-by: Valerian Roche <valerian.roche@datadoghq.com>

* Do not use transformer when fqdnTemplate is set

* Update source/pod_test.go

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

---------

Signed-off-by: Valerian Roche <valerian.roche@datadoghq.com>
Co-authored-by: Michel Loiseleur <97035654+mloiseleur@users.noreply.github.com>
2025-08-09 01:51:44 -07:00
Ivan Ka
1b9d7cddc0
fix(source/service): disable pod and endpointSlices informers when they are not needed (#5646)
* fix(source/service): disable pod and endpointSlicesInformer when not required

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

* fix(source/service): disable pod and endpointSlicesInformer when not required

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

* fix(source/service): disable pod and endpointSlices informers when they are not needed

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

* fix(source/service): disable pod and endpointSlices informers when they are not needed

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

---------

Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-30 01:54:28 -07:00
Jonas Badstübner
30cbbc0e75
refactor: handle internal IPv6 addresses on nodeport services consistently with --expose-internal-ipv6 flag (#5652) 2025-07-18 10:16:32 -07:00
Ivan Ka
1bfb970ace
fix(source/service): disable node informer when not required (#5613)
* fix(source/service): disable node informer when service type filter is activated

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

fix(source/service): disable node informer when service type filter is activated

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

fix(source/service): disable node informer when service type filter is activated

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

fix(source/service): disable node informer when service type filter is activated

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

* fix(source/service): disable node informer when service type filter is activated

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

* fix(source/service): disable node informer when service type filter is activated

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-07-11 10:15:28 -07:00
Ivan Ka
9045e45bc3
fix(source/service): make sure only unique targets pushed to registry (#5614)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-07-07 23:05:27 -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
vflaux
ef6e0e5e1e
feat(source): use EndpointSlices instead of Endpoints for Service (#5493)
* feat(source): use EndpointSlice for Service source

* feat(source): use indexer for EndpointSlice listing
2025-06-19 03:06:52 -07:00
Ivan Ka
8ce0b3d609
chore(source/service): add tests for fqdn templating (#5529) 2025-06-15 14:29:05 -07:00
Ivan Ka
7aca4dc6a3
chore(source/service): add resource label without looping over (#5528)
Signed-off-by: ivan katliarchuk <ivan.katliarchuk@gmail.com>
2025-06-15 14:28:58 -07:00
Ivan Ka
0d1108f5d7
chore(source/service): restructure code to make service type filters testable (#5485)
* chore(source/service): restructure code with filters are testable

* chore(source/service): restructure code with filters are testable

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

* chore(source/service): restructure code with filters are testable

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-06-01 12:00:13 -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
Lino Layani
c01fbf0682 wip 2025-05-21 10:23:28 -04: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
Kevin Valk
e379fe172e
refactor: handle internal IPv6 addresses consistently with --expose-internal-ipv6 flag throughout all sources 2025-05-14 17:15:47 +02: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
Michel Loiseleur
3835c62bb6 chore(ci): update linter to v2.0.2 2025-04-02 08:53:54 +02:00
Dan Markhasin
b0bbe5142d update service.md, service.go 2025-02-11 15:30:50 +02:00
Dan Markhasin
87464189b3 Enable reconcile on endpoint events 2025-02-02 23:42:50 +02:00
Diana Tuck
fe420f43e5 Move block outside of parent if/else 2025-01-13 12:37:25 -08:00
Diana Tuck
c3225c7cf1 Add debug logging for CNAME with multiple targets 2025-01-13 12:14:38 -08:00
Diana Tuck
7e10c80323
Do not merge CNAME targets into one endpoint per RFC-1034 2024-11-07 11:23:50 -08:00
Eric Bailey
3fac88bd64 fix(service): omit nil endpoints and prefer endpointsForHostname()
Also add a test with an invalid hostname.
2024-03-04 17:38:29 +01:00
Nandor Galambosi
d7b0dfd781 service source uses externalIPs in ExternalName type if available 2023-10-29 10:58:46 +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
7044fdf040 Use ServiceIP for ClusterIP Services with internal-hostname annotation 2023-09-16 17:33:30 -07:00
Kubernetes Prow Robot
fa332e9ed3
Merge pull request #3913 from johngmyers/doc-service
Document the Service source
2023-09-15 14:10:14 -07:00
John Gardiner Myers
da3fe0463c Document the Service source 2023-09-04 11:44:08 -07:00
Timofey Titovets
f696c514db fix: nodePort #2704 - publish ready endpoints
fix: lowercase local functions
chore: reuse nodes, cut logs
2023-08-29 19:16:51 +02:00
John Gardiner Myers
039f1a91fb refactor: simplify assignment to Service target list 2023-06-25 14:00:36 -07:00
John Gardiner Myers
4ee8bae85c refactor: don't iterate over load balancer if not using result 2023-06-25 12:28:23 -07:00
John Gardiner Myers
4417ad4894 Move EndpointKey to endpoints package 2023-06-18 16:47:37 -07:00
Kubernetes Prow Robot
fd501ddd7c
Merge pull request #3600 from johngmyers/ipv6-headless
Support AAAA records from headless services
2023-05-19 06:44:30 -07:00
Gabriel Martinez
9bbebf6c07
Merge remote-tracking branch 'remote/master' into target_annotation_for_service 2023-05-11 11:53:20 +01:00
John Gardiner Myers
41c705e471 Support AAAA records from headless services 2023-05-10 13:23:51 -07:00
John Gardiner Myers
683663e9c2 IPv6 internal node IPs are usable externally 2023-05-07 12:00:28 -07:00
Gabriel Martinez
3288cc2f98
feat(service): allow using target annotation 2023-05-06 14:48:54 +01:00
Charles Xu
1d232c4b86 feat: resolve LB-type Service hostname to create A/AAAA instead of CNAME 2023-04-18 21:10:56 -07:00
John Gardiner Myers
781ee3d71f Address review comments 2023-04-12 22:46:39 -07:00
Skyler Mäntysaari
6f42a8a2da Initial IPv6 support 2023-03-30 17:49:28 -07:00
Alfred Krohmer
ea45b03972 Headless service: allow to specify target as NodeExternalIP or by annotation
If external-dns.alpha.kubernetes.io/target annotation is present on a
pod, it's value will be used as the target for the headless service.

If annotation external-dns.alpha.kubernetes.io/access=public is present,
NodeExternalIP of the node running the pod is used as the target for the
headless service.
2022-05-05 19:44:32 +02:00
Andrey Lebedev
4f41229820 Pass stop channel to informer factory instances 2022-01-22 21:31:29 +01:00