Currently, Linkerd proxy provides LINKERD2_PROXY_DNS_CANONICALIZE_TIMEOUT environment variable that allows the default 100ms timeout to be overridden. https://github.com/linkerd/linkerd2-proxy/pull/175
However there is no proxy configuration or annotation to override this environment value during helm or customized installation or even using release pipeline
we should probably provide linkerd config annotation that can override environment variables like LINKERD2_PROXY_DNS_CANONICALIZE_TIMEOUT
config.linkerd.io/proxy-dns-canonicalize-timeout : "200"
Alternatively we should consider providing CLI flag too --proxy-dns-canonicalize-timeout
For example, we can add annotation to our proxy config,
annotations:
config.linkerd.io/proxy-dns-canonicalize-timeout : "200"
or can also be done manually using linkerd CLI
kubectl get deployment ... | linkerd inject --proxy-dns-canonicalize-timeout : "200" | kubectl apply -
@Abrishges Thanks for the issue. I'm just wondering if you will be interested in working on this; I can point you in the right direction. It will require some knowledge with Go.
I would like to work on this issue!
@grampelberg WDYT of just adding this as a config annotation as a starter, without the CLI option?
SGTM
Not saying this is a good idea, but should we just make it possible to override arbitrary proxy variables?
Hey @ArthurSens, This could be similar to https://github.com/linkerd/linkerd2/pull/4608 and looking at it might help.
Feel free to reach out here, if you have any questions :)
@grampelberg That will be great if we want all proxy variables to be overridable. At the moment, not all of them are. And I can see why we don't want variables like LINKERD2_PROXY_DESTINATION_SVC_ADDR, LINKERD2_PROXY_IDENTITY_DIR to be (directly) configurable. fwiw, I'd also feel better about making things more configurable, if we also provide tooling to detect abnormal config.
Hello everyone, I've made some changes that you can see here. A new attribute was added to the ProxyInit struct, but I couldn't find where exactly linkerd uses that struct to configure the proxy-init container. What am I missing?
And just to be sure... am I following the right direction with the changes so far?
@ArthurSens Yup, that's the right file where we serialize the Go structs that hold the Helm variables. I'm gonna move the rest of the code-level details to the #contributor channel.
@ArthurSens I ran this in my local environment and it's looking good, so far.
I also read through your conversation with @ihcsim on slack, so I think I'm all caught up. Is there anything I can help with on this? I'd love to see it merged!
Hey @cpretzer @ihcsim, wanted to say that it has been some time since the last time I worked on this and I'm afraid that I won't be able to put as much effort as I'd like to it.
I think it would be better for linkerd if someone else was assigned to this
Thanks for the update @ArthurSens, we really appreciate all the effort that you have put in. 馃檹 馃槃
When you have time again, we'd love to work with you on this or other PRs.
Closing for now. If anyone is interested in picking up the work, please comment here
We need this as well. 100ms seems a bit low under load for most clusters.
Most helpful comment
I would like to work on this issue!