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

Implement KafkaSource controller #312

Closed
slinkydeveloper opened this issue Oct 19, 2020 · 9 comments · Fixed by #1339 or #1415
Closed

Implement KafkaSource controller #312

slinkydeveloper opened this issue Oct 19, 2020 · 9 comments · Fixed by #1339 or #1415
Assignees
Labels
kind/feature-request lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.

Comments

@slinkydeveloper
Copy link
Contributor

slinkydeveloper commented Oct 19, 2020

Problem
We need to implement the KafkaSource controller for the data plane in this repo

Persona:
Which persona is this feature for? Users

Exit Criteria
A working kafka source implementation using the data-plane in this project. All e2e tests of kafka source passing.

Time Estimate (optional):
10

@matzew
Copy link
Contributor

matzew commented Oct 20, 2020

Interesting, could be aligned w/ the eventing-kafka repo? or is that competing ?

@slinkydeveloper
Copy link
Contributor Author

The idea is to reuse the data plane we have here and build the control plane for it. I guess it's mostly competing, because by the nature of this data plane, this implementaiton will be a "multi-tenant" kafka source

@lionelvillard
Copy link
Contributor

did you say multi-tenant, as of 1 data-plane component for all source instances? @slinkydeveloper ?

@slinkydeveloper
Copy link
Contributor Author

slinkydeveloper commented Oct 26, 2020

@lionelvillard yep that's the idea. Of course this component can scale too

@lionelvillard
Copy link
Contributor

Of course :-) Do you have a design document describing how the scaling works? I'm assuming it's using Keda, but I'm most curious to know how source instances scale independently to each other. @slinkydeveloper

@pierDipi
Copy link
Member

pierDipi commented Oct 26, 2020

Roughly the idea is to:

  • add the number of consumers to run for each KafkaSource or Trigger (Egress in our terminology)
    • how?
      • KafkaSource: scale subresource (your PR) or an annotation
      • Trigger: an internal CRD with the scale subresource or an annotation
  • use the RangeAssignor to partition consumer instances (your design document) + defining a total order for Egress configs so that each pod has the same view of the system.

@lionelvillard
Copy link
Contributor

ah cool thanks!

@github-actions
Copy link
Contributor

This issue is stale because it has been open for 90 days with no
activity. It will automatically close after 30 more days of
inactivity. Reopen the issue with /reopen. Mark the issue as
fresh by adding the comment /remove-lifecycle stale.

@github-actions github-actions bot added the lifecycle/stale Denotes an issue or PR has remained open with no activity and has become stale. label Jan 25, 2021
@pierDipi
Copy link
Member

/remove-lifecycle stale

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/feature-request lifecycle/frozen Indicates that an issue or PR should not be auto-closed due to staleness.
Projects
None yet
5 participants