Skip to content

design-proposal: vendor neutrality of the default LoadBalancer announcer - #61

Open
Aleksei Sviridkin (lexfrei) wants to merge 2 commits into
mainfrom
docs/lb-announcer-neutrality-adr
Open

design-proposal: vendor neutrality of the default LoadBalancer announcer#61
Aleksei Sviridkin (lexfrei) wants to merge 2 commits into
mainfrom
docs/lb-announcer-neutrality-adr

Conversation

@lexfrei

Copy link
Copy Markdown
Contributor

Records, after the fact, the decision the project already executed in July: MetalLB stays the shipped default, Service.spec.loadBalancerClass is the integration point for any other LoadBalancer implementation, and Cilium L2 Announcements is not adopted as the platform announcer at this time.

The mechanism landed in cozystack/cozystack#3218 and the migration epic was declined when cozystack/cozystack#2586 closed; the reasoning has only ever lived across a merged PR, a closed epic, and a comment thread. This proposal gathers it in one place so it is not re-litigated one pull request at a time, and names the concrete upstream conditions under which the announcer question reopens.

MetalLB stays the shipped default, Service.spec.loadBalancerClass is the
integration point for alternative implementations, and Cilium L2
Announcements is not adopted as the platform announcer. The decision was
executed in July 2026; this records the reasoning and the upstream
conditions under which the announcer question reopens.

Signed-off-by: Aleksei Sviridkin <3811295@gmail.com>
@coderabbitai

coderabbitai Bot commented Aug 19, 2026

Copy link
Copy Markdown

Important

  • 🔍 Trigger review

This repository does not receive automatic reviews because it has fewer than 10 stars.

⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro Plus

Run ID: 05cd787f-4e4e-4d53-b5b3-bdc2a8d58ee7


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

The lease-name collision is now reported upstream; replace the
should-be-filed note with the issue link.

Signed-off-by: Aleksei Sviridkin <3811295@gmail.com>

@IvanHunters IvanHunters left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM with non-blocking notes.

Every verifiable claim about current cozystack behaviour reproduces verbatim (MetalLB stays the default with no preconfigured announcer, Service.spec.loadBalancerClass is the integration point, Cilium L2 Announcements is not adopted as a default). No factual errors found. The direction does not conflict with the existing architecture, it is the existing architecture, and the consequences/alternatives/revisit-triggers are substantive.

  • [MINOR] This is a retrospective ADR: the decision was executed in #3218 (merged 2026-07-16) before the proposal was filed. It would help to state explicitly what happens if reviewers disagree with an already-merged decision.
  • [MINOR] No cross-reference to the sibling epic (#3858 Cloudflare Tunnel, website#655). The layers are orthogonal (Gateway-level tunnel vs L4 loadBalancerClass), so one line in "Out of scope" naming the tunnel as a separate mechanism would close the reader's question.
  • [NIT] The title reads like a fix for vendor lock-in, whereas the conclusion is "already neutral by construction, so the default stays".

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants