douban / charts

Helm charts from douban
Apache License 2.0
38 stars 30 forks source link

Ingress如不是标准端口,会导致Dify访问不了 #74

Closed jeessy2 closed 6 months ago

jeessy2 commented 6 months ago

因为生成的不含端口,如果Ingress访问端口不是443的话,会访问不了。自定义环境变量也不行,会有两个相同的变量名。 https://github.com/douban/charts/blob/e33e9f0ecb2c89ed3d2217198c3f29f714448532/charts/dify/templates/_helpers.tpl#L76

LeoQuote commented 6 months ago

我这边没这种环境, 你有什么建议的方案?

LeoQuote commented 6 months ago

https://github.com/douban/charts/blob/e33e9f0ecb2c89ed3d2217198c3f29f714448532/charts/dify/templates/_helpers.tpl#L64-L66 这里加一些比如 external port 的 value 如何? 你如果想的话可以直接 pr

jeessy2 commented 6 months ago

这样? 如果你在 values.yaml 文件中定义了多个相同名称的环境变量,你可以使用 Helm 的 dict 函数将它们合并为一个单独的 env 列表。

# templates/deployment.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ .Release.Name }}
spec:
  template:
    spec:
      containers:
      - name: {{ .Release.Name }}
        env:
        {{- $envs := dict }}
        {{- range $index, $env := .Values.env }}
        {{- $_ := set $envs $env.name $env }}
        {{- end }}
        {{- range $key, $value := $envs }}
        - name: {{ $key }}
          value: {{ $value.value }}
        {{- end }}
LeoQuote commented 6 months ago

我觉得有点复杂, 我上面提的方案如何呢? 就是加一个 global.port 的value, 如果有就在里面渲染就行

jeessy2 commented 6 months ago

也可以

LeoQuote commented 6 months ago

提个 pr 吧, 谢谢~ 你顺便也可以验证下