检索helm subchart的数据库服务名称

问题描述 投票:0回答:2

我正在将 postgres 作为依赖项安装在我的 helm 图表中,并且需要检索连接详细信息。

kubernetes 中的 Postgres 连接 URI 的形式为:

postgres://username:[email protected]:port/dbname

username
password
namespace
port
dbname
都可以通过
.Values.postgresql....
.Release.Namespace
轻松访问,但服务名称是使用子图模板初始化的
common.names.fullname 
.

访问子图模板令人惊讶地不是一件事,并且由于上下文更改可能无论如何都无法工作。

配置应用程序访问数据库的简单方法是什么?

kubernetes-helm
2个回答
1
投票

我通常很乐意观察到子图遵循命名其对象的典型 Helm 约定

{{ .Release.Name }}-{{ .Chart.Name }}
。如果子图使用该约定,并且我从名为
postgresql
的子图获取数据库,那么我可以在模板代码中对该值进行硬编码:

- name: PGHOST
  value: '{{ .Release.Name }}-postgresql'

我的经验是,Bitnami 图表(以及较旧的

stable
图表)在使用语义版本控制方面非常出色,因此,如果此名称发生更改,那么图表的主要版本也会发生变化。


0
投票

值:

{{ .Release.Name }}-postgresql
可能并不总是准确的。例如,如果您的版本名称是 my-postgresql,那么结果值应该是
my-postgresql
,而不是
my-postgresql-postgresql

为了避免此类问题,建议使用其 templates/NOTES.txt:

中的模板

{{ include "postgresql.v1.primary.fullname" .Subcharts.postgresql }}

© www.soinside.com 2019 - 2024. All rights reserved.