在 Helm 中连接服务

在 Helm 中连接服务

helm charts 中的标准做法是使用{{ template "<chartname>.fullname" . }}来作为服务名称,其中<chartname>.fullname模板有效扩展为.Release.Name-.Chart.name。后者可以被 覆盖.Values.nameOverride,但前者或完整值不能。前者是管理员指定的或随机的。

那么我该如何告诉正在创建图表的服务要连接到其依赖项的位置?前缀.Release.Name会影响 DNS 和环境变量,因此我无法按原样使用它们。

例如,如果我将依赖项设置为 stable/mariadb,它将创建类似的服务nutty-narwhal-mariadb并提供环境变量NUTTY_NARWHAL_MARIADB_SERVICE_HOST=10.108.77.204NUTTY_NARWHAL_MARIADB_SERVICE_PORT=3306。但这没有帮助,因为我正在创建的服务不知道前缀是什么。

请注意,当前生成的模板helm create确实包含.Values.fullnameOverride,但主存储库中的现有图表如下稳定/mariadb没有,所以我无法简单地mariadb.fullnameOverride在我的 中设置values.yaml

答案1

通常,您的依赖项将聚合在同一个“伞形”图表下,从而.Release.Name为所有依赖项生成一个单一图表,这意味着您将能够使用类似的东西在图表中指向它们.Release.Name-<subchart>。如果出于某种原因您不想这样做,并且在部署主图表之前部署依赖项,那么您应该能够通过它们的预配名称将它们指向依赖项的位置,因为您应该在安装它们时获得它。

相关内容