Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate kafka-operator to use listener-operator for exposing brokers #443

Open
wants to merge 31 commits into
base: main
Choose a base branch
from

Conversation

nightkr
Copy link
Member

@nightkr nightkr commented Aug 4, 2022

Description

Fixes #714.

Blockers:

Followup issues/regressions:

Review Checklist

  • Code contains useful comments
  • CRD change approved (or not applicable)
  • (Integration-)Test cases added (or not applicable)
  • Documentation added (or not applicable)
  • Changelog updated (or not applicable)
  • Cargo.toml only contains references to git tags (not specific commits or branches)
  • Helm chart can be installed and deployed operator works (or not applicable)

Once the review is done, comment bors r+ (or bors merge) to merge. Further information

This is far from final (for example, we'd need to expose a configurable
LoadBalancerClass, for example), but I wanted to see whether lb-op would be a
good fit for this operator first.
@nightkr
Copy link
Member Author

nightkr commented Aug 24, 2022

Blocked on stackabletech/listener-operator#1

@maltesander
Copy link
Member

Tested and works!

@lfrancke
Copy link
Member

I've moved this back into "Ready for Development" because the Listener operator is now merged. AFAIU this should now be ready to be worked on again?

@siegfriedweber
Copy link
Member

I've moved this back into "Ready for Development" because the Listener operator is now merged. AFAIU this should now be ready to be worked on again?

This pull request is updated as requested by stackabletech/listener-operator#5. When stackabletech/operator-rs#496 is merged and operator-rs and the listener-operator are released then this pull request can be made ready for review.

@nightkr
Copy link
Member Author

nightkr commented Sep 12, 2023

Tests currently fail due to stackabletech/listener-operator#110.

@nightkr nightkr marked this pull request as ready for review September 20, 2023 00:42
@nightkr
Copy link
Member Author

nightkr commented Sep 20, 2023

The tests now pass!

@sbernauer
Copy link
Member

sbernauer commented Sep 20, 2023

@nightkr do you plan to merge this or add the WIP functionality of secret-op beforehand, so that the kafka broker certificates will include the listener addresses?
It'd be awesome if we get it right in the first run :)

@nightkr
Copy link
Member Author

nightkr commented Sep 20, 2023

Preferably not, since we're still working out a few API kinks there (truststore passwords), and I'd rather keep this PR focused. ^^

@sbernauer
Copy link
Member

@nightkr given you opened stackabletech/operator-rs#858 (reviewed it), I would be very in favor of putting the listenerVolume scope on the secret-op mount, so that we have valid certificates.
This would be great for a customer of us ;)

@nightkr
Copy link
Member Author

nightkr commented Sep 6, 2024

Yes, that was why I opened that PR ^^

@nightkr
Copy link
Member Author

nightkr commented Sep 9, 2024

Current (known) issues:

  1. Need to cut an op-rs release
  2. Only online brokers are listed in discovery ConfigMap when using a nodeport listenerclass
    • Brokers that are down will be missed by clients that don't update their ConfigMap regularly
    • Clients that restart on configmap change (like our CM restarter service) will be restarted whenever a broker goes down or up
  3. Discovery ConfigMap when using a ClusterIP listenerclass only exposes K8s-managed LB endpoint.. means more resilience to cluster rescaling but clients are stuck using K8s' native load balancing rather than client side LB/failover.
  4. Bootstrap listener is currently global for the whole cluster, so can't apply rolegroup specific config.

2 and 3 come from currently using a single shared bootstrap listener.. simpler for kafka-op and arguably where we want the UX to go, but means we'll probably want to fix it.

Arguably 3 is desirable, since this only affects initial bootstrap anyway.

@nightkr nightkr linked an issue Sep 11, 2024 that may be closed by this pull request
@nightkr
Copy link
Member Author

nightkr commented Sep 11, 2024

stackabletech/operator-rs#861 is also a pretty blocking issue for this.

@nightkr nightkr changed the title Migrate kafka-operator to use lb-operator for exposing brokers Migrate kafka-operator to use listener-operator for exposing brokers Sep 11, 2024
@nightkr
Copy link
Member Author

nightkr commented Sep 11, 2024

This isn't ready to merge yet (there are still open blockers), but the gist should be reviewable now.

@nightkr nightkr requested a review from a team September 11, 2024 12:43
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.

Service exposition with ListenerClasses
5 participants