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 the Service API #279

Open
shaneutt opened this issue Sep 5, 2024 · 2 comments
Open

Implement the Service API #279

shaneutt opened this issue Sep 5, 2024 · 2 comments
Labels
area/controlplane area/dataplane blocked kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@shaneutt
Copy link
Member

shaneutt commented Sep 5, 2024

Blixt started with intentions to implement just Gateway API but it kinda toes the line of being a Service implementation. In fact, the prototype for Blixt abused Service (MetalLB, specifically) for faux IPAM as a hack to get things working.

The purpose of this issue is to discuss and consider whether we would implement the Service API using Blixt, but ideally we do this with as limited scope as possible. I am particularly interested to see if we can build off of KEP 4770 so that we can be an alternative, while deployed compatibly alongside existing default cluster implementations.

@shaneutt shaneutt added area/dataplane area/controlplane kind/feature Categorizes issue or PR as related to a new feature. triage/needs-information Indicates an issue needs more information in order to work on it. labels Sep 5, 2024
@kubernetes-sigs kubernetes-sigs deleted a comment Sep 5, 2024
@shaneutt
Copy link
Member Author

shaneutt commented Oct 4, 2024

I was talking with MetalLB maintainers and they mentioned we could (even if as an interim solution) use the MetalLB controller to assign the IPs to the Service but not have to do the "hijacking" that we do currently. This can be done by simply disabling the speaker component:

https://github.com/metallb/metallb/blob/main/charts/metallb/values.yaml#L259

And then when the controller assigns the IPs we can just take over from there without clobbering speaker configuration. Later, we can decide if we want to implement IPAM ourselves but this gives us a smaller chunk to bite off at first.

@shaneutt
Copy link
Member Author

shaneutt commented Oct 4, 2024

We discussed this one in our community sync today (join #blixt on Kubernetes Slack if you'd like to join those, we do them ad-hoc and vote on times). We've decided that we do want to take this one on:

/triage accepted
/priority important-longterm

For this first iteration, we only need bother with a basic level of support and we can start by using MetalLB as a dependency (as mentioned above). We could make Gateway+TCPRoute/UDPRoute controllers simply convert to our Service implementation under the hood as a part of this work to reduce redundancies in implementation.

Note: We consider this blocked by https://github.com/kubernetes-sigs/blixt/milestone/8 and not yet ready for work.

@k8s-ci-robot k8s-ci-robot added triage/accepted Indicates an issue or PR is ready to be actively worked on. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. labels Oct 4, 2024
@shaneutt shaneutt removed the triage/needs-information Indicates an issue needs more information in order to work on it. label Oct 4, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/controlplane area/dataplane blocked kind/feature Categorizes issue or PR as related to a new feature. priority/important-longterm Important over the long term, but may not be staffed and/or may need multiple releases to complete. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: Backlog
Development

No branches or pull requests

2 participants