Open scott-cotton opened 2 years ago
I'm currently evaluating Signadot and we use Linkerd so this feature would be great!
As it turns out, Linkerd has some recent changes w.r.t. the routing we would need, and it is not really ready yet.
Although the Linkerd docs state that it supports smi-spec TrafficSplit without additional configuration, Linkerd 2.12.1 (latest stable) does not install the smi-spec CRDs unless one also installs the smi extension. Without the CRDs, one cannot use TrafficSplit, and without traffic split I believe we cannot support Linkerd, as that appears to be their mechanism for redirecting traffic in-cluster under matching conditions. Unfortunately, the smi extension installs v1alpha1 of TrafficSplit (https://github.com/servicemeshinterface/smi-spec/tree/main/apis/traffic-split), which does not appear to support 'matches', which would be necessary for us to support Linkerd (at least with context prop, see below).
@scirner22 are you using the CNI plugin? Are you using the smi plugin? Would using l5d-dst-override on signadot endpoint urls for single fork sandboxes be worth investigating for your use?
That looks accurate to me. When I investigated this it appeared Linkerd will not support the header based routing features of TrafficSplit until 2.13.
At least for our use case, something like l5d-dst-override
would not help much because we're dependent on the request going through our api gateway so that authentication can happen which will add some needed headers. This being a test environment I have the luxury of turning off Linkerd at the namespace level so that I can inject the Signadot sidecar for the time being. This will allow me to stand up a full POC environment.
Thanks for looking into a solution here - I appreciate it!
For reference, this issue tracks Linkerd header based routing. https://github.com/linkerd/linkerd2/issues/3165
Header based routing was released in Linkerd 2.13 (2.14 is latest)
https://linkerd.io/2.14/tasks/configuring-dynamic-request-routing/
Header based routing was released in Linkerd 2.13 (2.14 is latest)
https://linkerd.io/2.14/tasks/configuring-dynamic-request-routing/
thanks for helping keep the issue up to date -- and yes, we are well aware of that.
This is likely something we may implement via https://github.com/signadot/community/issues/53
New feature or functionality What would you like Signadot to do?
Support Linkerd service mesh.
Additional considerations Anything in particular to think about regarding this new feature?
It may be interesting to consider doing this via smi-spec