Skip to content

[WIP] Share (some) Kubernetes watches between Typha Syncers.#9632

Draft
fasaxc wants to merge 2 commits intoprojectcalico:masterfrom
fasaxc:typha-share-watchers
Draft

[WIP] Share (some) Kubernetes watches between Typha Syncers.#9632
fasaxc wants to merge 2 commits intoprojectcalico:masterfrom
fasaxc:typha-share-watchers

Conversation

@fasaxc
Copy link
Member

@fasaxc fasaxc commented Dec 20, 2024

Description

Introduce a pool of watcher syncers, reuse existing one if if has exact same configuration.

This has a small win in OS (share Node watches between two of the syncers). I'm hoping it helps even more in enterprise where there's an extra watch on WEPs.

Related issues/PRs

Todos

  • FIXME: Resource types that use filter functions fail comparisons due to function pointers
  • Tests
  • Documentation
  • Release note

Release Note

Typha now shares identical kubernetes watches between different types of clients.  This reduces memory/CPU usage and API server load.

Reminder for the reviewer

Make sure that this PR has the correct labels and milestone set.

Every PR needs one docs-* label.

  • docs-pr-required: This change requires a change to the documentation that has not been completed yet.
  • docs-completed: This change has all necessary documentation completed.
  • docs-not-required: This change has no user-facing impact and requires no docs.

Every PR needs one release-note-* label.

  • release-note-required: This PR has user-facing changes. Most PRs should have this label.
  • release-note-not-required: This PR has no user-facing changes.

Other optional labels:

  • cherry-pick-candidate: This PR should be cherry-picked to an earlier release. For bug fixes only.
  • needs-operator-pr: This PR is related to install and requires a corresponding change to the operator.

@marvin-tigera marvin-tigera added this to the Calico v3.30.0 milestone Dec 20, 2024
@marvin-tigera marvin-tigera added release-note-required Change has user-facing impact (no matter how small) docs-pr-required Change is not yet documented labels Dec 20, 2024
Introduce a pool of watcher syncers, reuse existing one if
if has exact same configuration.
@fasaxc fasaxc force-pushed the typha-share-watchers branch from de6f5b7 to a3cfbc0 Compare January 2, 2025 15:36
@fasaxc fasaxc changed the title Share Kubernetes watches between Typha Syncers. Share (some) Kubernetes watches between Typha Syncers. Jan 2, 2025
@fasaxc fasaxc added docs-not-required Docs not required for this change and removed docs-pr-required Change is not yet documented labels Jan 2, 2025
@fasaxc fasaxc changed the title Share (some) Kubernetes watches between Typha Syncers. [WIP] Share (some) Kubernetes watches between Typha Syncers. Jan 9, 2025
@github-actions
Copy link

This PR is stale because it has been open for 60 days with no activity.

@github-actions github-actions bot added the stale Issues without recent activity label Nov 15, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

docs-not-required Docs not required for this change release-note-required Change has user-facing impact (no matter how small) stale Issues without recent activity

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments