alibaba / higress

🤖 AI Gateway | AI Native API Gateway
https://higress.io
Apache License 2.0
3.23k stars 511 forks source link

支持可以修改Helm部署模板中的controller.name/.Values.gateway.name #1101

Open ishells opened 4 months ago

ishells commented 4 months ago

Ⅰ. Issue Description

Helm模板values参数设计不合理,

Ⅵ. Environment:

CH3CHO commented 4 months ago

请 @johnlanni 看一下这个问题,我们是否有必要支持修改 controller 和 gateway name 的功能。

johnlanni commented 4 months ago

修改 name 的目的是什么呢

ishells commented 4 months ago

修改 name 的目的是什么呢

为了区分多个项目的higress实例,比如我们在之前的nginx ingress的使用习惯中,会为不同的项目部署不同的nginx ingress实例(同时修改不同nginx ingress实例的name和ingressClass)方便在查看时一目了然,而不是只通过ingressClasss进行区分

CH3CHO commented 4 months ago

修改 name 的目的是什么呢

为了区分多个项目的higress实例,比如我们在之前的nginx ingress的使用习惯中,会为不同的项目部署不同的nginx ingress实例(同时修改不同nginx ingress实例的name和ingressClass)方便在查看时一目了然,而不是只通过ingressClasss进行区分

那可以部署到不同的命名空间下诶

ishells commented 3 months ago

修改 name 的目的是什么呢

为了区分多个项目的higress实例,比如我们在之前的nginx ingress的使用习惯中,会为不同的项目部署不同的nginx ingress实例(同时修改不同nginx ingress实例的name和ingressClass)方便在查看时一目了然,而不是只通过ingressClasss进行区分

那可以部署到不同的命名空间下诶

是我们这边有一个validating webhook,会检测 业务名称空间下的服务是否以 project_mark 开头命名,诸如 xxxx-prod 名称空间下的 xxxx-controller,所以我们这边的使用习惯就是不同项目的nginx ingress controller name都会命名为 project_mark-nginx-ingress-...,所以会考虑换名称这个事情

CH3CHO commented 3 months ago

roject_mark-nginx-ingress-...,所以会考虑换名称这个事情

不过higress并不要求必须和业务pod部署在一个ns下。你们可以单独在其他的ns里部署higress,只要让他监听对应ns下面的ingress就行了。这样也可以很好的进行配置和资源隔离。

ishells commented 3 months ago

我们生产环境中为了隔离性与稳定性,一个项目一个单独的nginx ingress controller,基本都是单独部署在xxx-nginx-ingress命名的项目ns下;同时又存在validating webhook检验命名规范,所以如果不更改higress名称的话,做不到部署多个分别监听不同的项目。

就是部署的时候比较疑惑,提供了name相关的参数,改了又会出错。没关系,这个需求可能也算小众。

CH3CHO commented 2 months ago

在对接 console 这方面,可以考虑将 controller 和 gateway 的 service name 写入到 higress-config 之类的 configmap 里,由 console 进行读取。