-
Notifications
You must be signed in to change notification settings - Fork 1.3k
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
[Gateway API] Support for GRPCRoute v1 (stable channel) #13032
Comments
Hey @FredrikAugust, thanks for raising this! This is definitely a thing we want to do, though I don't have a timeline at this point. We'll keep this issue updated. 🙂 |
Thanks @kflynn. We're currently stuck in a little limbo right now as Traefik and Argo Rollouts (thanks to this plugin) both have moved to the stable channel, but we're unable to upgrade if linkerd2 doesn't support it so it would be great to see this in a release 🙌 If there's anything I can do to help, let me know |
@FredrikAugust I believe you should be able to upgrade Linkerd as long as you provide the Gateway CRDs yourself. When installing Linkerd, the CRDs chart supports a flag to omit managing the gateway resources:
Note that there may be some complexity in migrating these resources to no longer be Helm-managed; but if you are able to install the Linkerd CRDs without the Gateway resources, and you are able to provide the gateway resources externally, Linkerd should be able to read v1alpha2 (etc) resource versions when the cluster has newer v1 versions. I'd recommend trying all of this first in a non-production environment, as CRD changes can be risky. |
@olix0r Thanks, that's more or less what we've been doing. We're running a custom build of the argo rollouts plugin, but didn't want to upgrade to the latest version (using v1 GRPCRoute) before getting some confirmation that linkerd2 would support it. As mentioned, Traefik and the plugin both use the stable channel. |
linkerd seems to look for a specific version of the CRDs in linkerd-destination/policy container when I tried with gateway 1.1 :
On 24.8.2 at least |
This probably indicates that the 1.1 gateway release has stopped shipping the older versions of the CRD that Linkerd reads. Linkerd hasn't upgraded because Google Cloud continues to ship 0.7.0 in some versions. (And they still don't yet ship 1.1 anywhere.)
This version skewing of the Gateway API--specifically the breaking of backwards compatibility--is obviously unfortunate; but it looks like we'll have to drop support for these clusters sooner than later. |
Actually, on further inspection, it looks like the CRDs you link to include HTTPRoute v1beta1 and GRPCRoute v1alpha2, so I would expect Linkerd to be able to start properly. We'll do some more digging to identify the source of the incompatibility. |
This appears to be a bug in the Gateway API CRD:
While the v1alpha2 CRD is provided in the 1.1 spec, it is configured to not be served by the API server. As a workaround, it is probably suitable to change the value of |
Ah, so it appears that the v1alpha2 is only served on the experimental channel of the Gateway API. The release notes for 1.1 call this out:
We will not be able to upgrade to support the standard channel (i.e. to read v1) until we can expect a majority of GCP clusters to have the 1.1 CRDs. And given that they don't ship 1.1 at all yet, this is probably not going to be soon. We should probably update our documentation to call this out explicitly. |
Should this be filed as a bug in Gateway API? |
"Bug" was probably a little premature. I think the situation is the following:
This is an unfortunate situation, but I do believe that it is effectively working as intended. |
@FredrikAugust are you patching the "served" thing you mentioned above to work around this, or doing something else? |
Hey, we are currently not patching the served CRD, but rather using the CRDs from linkerd-crds and traefik. It's a little bit sub-optimal, but it works for us. |
So, just letting both install their gateway CRDs? Does ArgoCD complain about that? |
Well, it's a little finicky. Since there are different versions we have to do it semi-manually. We let So I find it a little hard to wrap my head around all the different channels and versions so if you have a better suggestion I'd be happy to hear it! |
@FredrikAugust ...how do you have |
@kflynn we first sync the chart in ArgoCD which installs the CRD from We did the same essentially for HTTPRoute, as both serve that CRD, but here we let |
A merge request was created on the helm repo to separate traefik and its CRDs into separate charts with the ability to disable the Gateway CRDs so that should help with the conflicts on ArgoCD. |
What problem are you trying to solve?
Hello! I saw that Traefik helm chart has updated their Helm charts to use v1 of the stable channel for GRPCRoutes, and was wondering if linkerd2 supports that, or plans to introduce it soon? We would love to upgrade:)
How should the problem be solved?
Add the v1 CRD of GRPCRoutes.
Any alternatives you've considered?
Not really.
How would users interact with this feature?
No response
Would you like to work on this feature?
None
The text was updated successfully, but these errors were encountered: