![]() |
1
136
你可以
在此之前,您必须修改图表,以便可以
如果您已经知道如何设置模板字段,请跳过此部分。 因为您不想公开数据,所以最好在kubernetes中将其保存为机密。
首先,在
现在,添加
现在调整部署yaml模板,并在
如果已为正确修改模板
现在在运行helm install时使用此变量,
如果你运行这个
您可以看到,机密用户名的数据已更改为
我已添加 this example 进入github回购。 中也有一些讨论 kubernetes/helm 回购协议。你可以看到 this issue 了解使用环境变量的所有其他方法。 |
![]() |
2
28
通过如下设置部署yaml,可以从值yaml中传递env键值:
在值中。yaml:
安装图表时,可以传递用户名密码值
|
![]() |
3
21
对于那些希望为其env变量文件使用数据结构而不是列表的人来说,这对我很有用:
价值观yaml:
这样,我可以通过名称访问helm图表其他部分中的特定值,并通过helm命令行传递敏感值。 |
![]() |
4
13
要避免手动设置每个机密,您可以使用:
其中${MY\u SECRET}在您的值中引用。yaml文件,如:
|
![]() |
5
8
我想问题是如何在图表中查找env变量,方法是查看它自身的env变量,而不是将其与--set一起传递。 例如:我已经设置了一个键“my\u db\u password”,并且不支持通过查看env变量中的值来更改值。 我不太确定on-GO模板,但我猜这是禁用的,正如他们在helm文档中解释的那样。“出于安全原因,我们删除了两个:env和expandenv(这将使图表作者能够访问Tiller的环境)。” https://helm.sh/docs/developing_charts/#know-your-template-functions |
![]() |
6
5
作为传递局部环境变量的替代方法,我喜欢将这些敏感值存储在VCS忽略的文件夹中,并使用Helm
在我看来,它的优势在于,它不需要操作掌舵图的主机设置任何特定于操作系统的环境变量,并且使图表自包含,同时不公开这些值。
然后在图表模板中:
因此,可以从定义其他所有内容的目录中访问图表所需的所有内容。它不需要设置系统范围的env变量,只需要一个文件。
此文件可以自动生成,也可以使用伪值从提交的模板复制。如果未定义错误,Helm也会在安装/更新早期触发错误,而不是使用
|
![]() |
7
5
Helm 3.1支持后期渲染( https://helm.sh/docs/topics/advanced/#post-rendering )它在将清单实际发送到Kubernetes API之前将其传递给脚本。后期呈现允许以多种方式操纵清单(例如使用 kustomize公司 在舵的顶部)。 替换预定义环境值的最简单形式的APAST渲染器如下所示:
注意:这将替换
每一个
发生
在shell中定义环境变量:
在tempaltes(例如。
请注意,在Helm已经处理完所有YAML文件之后,您不能在清单中注入字符串时,在字符串上应用b64enc之类的字符串转换。相反,如果需要,可以在后期渲染器中对其进行编码。
在
参数
通过使用
后期渲染器
变量/占位符自动替换为
|
![]() |
8
5
我认为一个简单的方法就是 直接设置值 。例如,在您的值中。yml,您要传递服务名称:
您的服务。yml只需像往常一样使用此值:
然后使用
然后,例如,如果要使用环境变量,请在此之前进行导出:
如果执行以下调试操作:
您可以在设置“hello”的yml开头看到此信息。
|
![]() |
ufk · 使用谷歌云平台登录kubernetes仪表板时使用哪个令牌 7 年前 |
![]() |
djt · 如何导入在另一台服务器上创建的状态? 7 年前 |
![]() |
mon · Kubectl代理显示由未知权限签名的证书 7 年前 |
![]() |
gcstr · 库伯内特斯的吊舱日志文件在哪里? 7 年前 |
![]() |
Bluz · 与kubectl一起查找新pod的名称 7 年前 |