kubevela / velaux

The KubeVela User Experience (UX) Platform
Apache License 2.0
138 stars 111 forks source link

[Issue] 使用VelaUX进行Project和Env管理时,存在一些让人困惑的逻辑设计 #874

Closed oyzl1230 closed 1 year ago

oyzl1230 commented 1 year ago

Hi VelaUX contributor

在使用VelaUX进行Project和Env管理时,存在一些让人困惑的逻辑设计,不知你们是否可以帮忙解决。

我理解的设计逻辑如下,还有不对之处,还请更证:

  1. 结构上包括有 Project, Environment, 和 Targets
  2. 每个Project可以包括多个Environment, 每个Environment只能属于一个Project
  3. 每个Enviroment可以包括多个Target, 且每个Target也只能属于一个Envronment
  4. 每个Target唯一定义单一Cluster中的一个Namespace 按如上的逻辑,Project和Environment都是聚合型的虚拟层,在K8S中不存在对应的Namespace,而每个Target应该是实实在在的有一个Namespace与之对应。 然而我们在通过UI创建Project和Environment时,都会在K8S中自动创建与之同名的Namspace(如果在UI中没有明确写明),而我们在部署应用时,应该是将应用部署到Target所对应的Namespace,这样的结果让人感到困惑的是,创建Project与Environment时自动创建的Namespace就有些多于,而且还不便于理解与维护。

举例说明: a. 我创建名为 myproject01 的project; b. 在该项目中我有两个Environment, 分别名为 Dev & Pro c, 假如我只有一个Cluster, 有两个应用 App01 & App02 , 于是我需创建4个Target, 分别为 app01-dev, app02-dev, app01-pro, app02-pro. 在K8S中我们会看到如下Namespace被创建: myproject01, Dev, Env, app01-dev, app02-dev, app01-pro, app02-pro. 其实我们只需要app01-dev, app02-dev, app01-pro, app02-pro 这4个Namespace就可。

是否可以修改UI中创建Namespace的设计,或者是我的理解有误,能否帮忙解答一下我的困惑。 Thanks

chivalryq commented 1 year ago

So you have problem why Env and Project should have corresponsing namespace.

oyzl1230 commented 1 year ago

Chivalryq, got it, thanks