What is the best way to support environments as kubernetes namespaces

This is more of an exploratory question on best practices when setting up linkerd in a kubernetes cluster where each environment such as qa, staging and production are identified as namespaces.
The same apps are in all these environments with different configurations. What is the best way to make sure that request from app1 running in qa goes to app2 in qa.

My current approach is to have multiple routers, one per environment and configure identifiers to route calls appropriately. But this leads to lots of duplicated rules and I was wondering if there is a better way.

Hi @ankurcha,

The reason that this is tricky is that a daemonset Linkerd cannot look at a request and know which namespace it came from. So I think your solution of setting up a router for each environment is probably the best option. We have some ideas about how to make dtabs more sharable between routers with less repetition, but those are farther out on the roadmap right now.

As a more interim solution…

If you deployed a linkerd in each namespace, then use the namespaced kubernetes namer, you could have each linkerd configured in the same way, thus avoiding some rule duplication.

1 Like

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.