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

Rust ControlPlane: GatewayClass Controller #300

Open
3 tasks
shaneutt opened this issue Oct 29, 2024 · 6 comments
Open
3 tasks

Rust ControlPlane: GatewayClass Controller #300

shaneutt opened this issue Oct 29, 2024 · 6 comments
Assignees
Labels
area/controlplane priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.

Comments

@shaneutt
Copy link
Member

shaneutt commented Oct 29, 2024

The purpose of this task is to create a GatewayClass controller in Rust. This controller is very simple, pretty much only marking the GatewayClass as accepted or not based on ControllerName.

See the Go version of this for reference: https://github.com/kubernetes-sigs/blixt/blob/archive/golang-control-plane/controllers/gatewayclass_controller.go

TODO

  • Create a GatewayClass controller that marks managed GatewayClass resources as accepted
  • Update the Gateway controller to verify that any GatewayClass is accepted before programming routes
  • Add integration tests for GatewayClass and Gateway which mirror our previous Golang-based tests
@shaneutt shaneutt moved this to Next in Blixt Project Board Oct 29, 2024
@shaneutt shaneutt changed the title Rust GatewayClass Controller Rust ControlPlane: GatewayClass Controller Oct 29, 2024
@shaneutt shaneutt added priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on. labels Oct 29, 2024
@nayihz
Copy link
Contributor

nayihz commented Dec 6, 2024

I am a beginner in Rust. If possible, I'd like to give it a try.

@shaneutt
Copy link
Member Author

shaneutt commented Dec 6, 2024

Thank you @nayihz but at the moment this one already has an owner and is in progress. Please feel free to check out other issues which don't have assignees, and in general if you're just starting Rust but you'd like to do something practical, I can definitely recommend the Rust By Example Book!

@EandrewJones
Copy link
Contributor

EandrewJones commented Dec 6, 2024 via email

@EandrewJones
Copy link
Contributor

@shaneutt Happy new year 🥳

Is there any other validation we should perform prior to acceptance?

I ask because in the docs there's an example of a failed acceptance state, but the docs are unclear about the conditions that might lead to failure.

@shaneutt
Copy link
Member Author

shaneutt commented Jan 6, 2025

We should try to do the following to validate the work here:

  1. run any tests that are relevant in the Golang test suite and see if they're still passing.
  2. validate any behaviors covered in the Gateway API conformance test suite

That said, as always with this project it's reasonable to take an iterative approach. If we can get some chunk done in one PR that has some of the validation we want, and is written in a way that is poised for additive iterations towards something more complete, that's fine too.

@EandrewJones
Copy link
Contributor

Okay, I'll look at number 2 as the golden spec. Thanks.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area/controlplane priority/important-soon Must be staffed and worked on either currently, or very soon, ideally in time for the next release. triage/accepted Indicates an issue or PR is ready to be actively worked on.
Projects
Status: In Progress
Development

No branches or pull requests

3 participants