devtron icon indicating copy to clipboard operation
devtron copied to clipboard

Feature: Decouple Environments and Namespaces (set namespaces at application level)

Open yuvii opened this issue 1 year ago • 2 comments

🔖 Feature description

Currently, Environments are locked-in to a specific namespace. I would like to see the option to set namespaces on the application level, so different services are more organized.

🎤 Pitch / Usecases

An Environment is an organizational structuring tool provided by devtron. Namespaces are the same, but they are Kubernetes-native concepts. There's no logical reason these two would be bound to one another, it only limits our ability to organize our eco system. In our case for example, we want to have a "Staging" environment, where we would push different applications, but we still want each application to choose a separate namespace within kubernetes.

As it stands we have to create a new environment for each app because devtron doesn't allow us the flexibility we need. I think it'd make a lot of sense to decouple these concepts from one another. We can still give each environment a "default" namespace, that way you can still work with devtron the way its designed right now, but you'd have the ability to organize applications under a different internal logic.

🔄️ Alternative

No response

👀 Have you spent some time to check if this issue has been raised before?

  • [X] I checked and didn't find similar issue

🏢 Have you read the Code of Conduct?

yuvii avatar Oct 22 '24 08:10 yuvii

I'd like to push this up and add some contextual examples of how relevant this feature really is - it's not just a nice thing to have, a lot of systems that integrate with kubernetes use namespaces as their separating factor and identifier.

We currently use two systems like this - We use Ocean to manage our clusters, and when you look at a cluster, they give you information based on your namespaces, for example in the cost analysis view: image

Another relevant example - we use logz.io collector - they have a plug-in helm chart that collects data and organizes it based on namespace. It makes it really easy to monitor and examine logs and metrics data in an organized central hub. Again, they automatically separate things according to namespaces.

image

In order to do this in devtron however, we have to create a new "environment" for each application, and we need to do it for every cluster we use (so instead of having "dev", "staging" and "prod" we have "app1-stag", "app2-stag", "app1-prod" etc.). It's tedious and very disorganized. Would greatly appreciate if this gets addressed :pray:

yuvii avatar Dec 03 '24 18:12 yuvii

Thank you for providing additional context, @yuvii! This is a significant issue for us as well and could potentially prevent us from adopting Devtron. We are currently evaluating it and attempting to work around the limitations, but we would greatly appreciate seeing this feature implemented.

dfl-aeb avatar Jan 21 '25 13:01 dfl-aeb