Rust ControlPlane: TCPRoute and UDPRoute Support #303
Labels
area/controlplane
area/dataplane
priority/important-soon
Must be staffed and worked on either currently, or very soon, ideally in time for the next release.
Milestone
We had a TCPRoute and UDPRoute controller in our previous Golang-based control-plane. The purpose of this task is to add controllers for these types into our new Rust control-plane.
However, as we are preparing to implement the Service API we probably do not want to build discrete controllers for this as
TCPRoute
,UDPRoute
andService
will have common data. Instead we should build more generic tooling for converting these types which can help support the eventualService
implementation.TODO
UDPRoute
controller utilizing the above libraryTCPRoute
controller utilizing the above libraryUDPRoute
andTCPRoute
Additional Thoughts
For the library component I suggest that we create direct conversions of
TCPRoute
andUDPRoute
to the types available in backend.rs. We may in fact need some higher level type that wraps those types. With that higher level type, we could implement From conversions forTCPRoute
andUDPRoute
. In this model, the controller workflow might be something like:Gateway
andGatewayClass
to validate this is a managed routeTCPRoute
orUDPRoute
to the new library described above, allowing the conversion to take place and then operating generically to update the data-plane thereafter.One additional side benefit of the above is that when we implement the Service API later we may be able to implement a
From
forService
as well and reduce how much new code needs to exist to implement that API (though,Service
does some additional stuff so... it will likely have a lot of it's own isms).The text was updated successfully, but these errors were encountered: