kubernetes - 在 helm 版本 2.14.1 中的 helm 图表中包含系统用户名

标签 kubernetes kubernetes-helm

我使用的是 helm 版本 2.14.1。我已经为一个应用程序创建了 helm 图表,用户将部署该应用程序以在 kubernetes 集群上测试他们的代码。我想为用户名值添加标签,以便我可以检索用户的部署(按用户标签的部署)。有没有办法在 helm 图表中包含系统用户名,就像我们在 Java 中使用 System.getProperty("user.name") 所做的那样。我的 Helm 模板是这样的:

apiVersion: apps/v1
kind: Deployment
metadata:
  name: {{ include "common.fullname" . }}--{{ Release.name }}
  labels:
    application: {{ include "common.name" . }}
    branch: "{{ Release.name }}"
    username: "{{ System.user.name }}"   # need to fetch the logged in user from system here
spec:
...

是否有标准方法可以实现此目的,或者我是否可以允许用户在使用 helm installhelm template 命令时从命令行输入用户名?

编辑: 虽然 --set 可以为我设置图表的值,但我还需要在依赖项中设置相同的值。像这样的事情:

values.yaml

username: "" 

dependency1:
 username: {{ .Values.username }} 

dependency2:
 username: {{ .Values.username }}

...

当然上面的实现是行不通的。我还需要引用依赖项中的设置值

最佳答案

这是一个基于评论的社区 wiki 答案,为了更好的可见性而发布。请随意扩展它。

您可以使用带有 --set 选项的 helm template 命令:

--set stringArray              set values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)
--set-file stringArray         set values from respective files specified via the command line (can specify multiple or separate values with commas: key1=path1,key2=path2)
--set-string stringArray       set STRING values on the command line (can specify multiple or separate values with commas: key1=val1,key2=val2)

在将值传递到图表的其他方法中,--set 参数具有最高优先级。这意味着默认情况下,值来自 values.yaml,它可以被父图表的 values.yaml 覆盖,而父图表的 values.yaml 又可以被用户提供的值覆盖文件,该文件又可以被 --set 参数覆盖。

您可以在official docs中查看更多详细信息和示例。 .

关于kubernetes - 在 helm 版本 2.14.1 中的 helm 图表中包含系统用户名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63975324/

相关文章:

kubernetes - 'watch=true' 在kube-apiserver 上是如何实现的?

jenkins - 如何将kubernetes云插件与jenkins集成

azure - 如何在 azure kubernetes 上的 vnet 中配置 Azure redis 缓存?

kubernetes - 命名空间的Kubernetes max可用cpu/mem resourceQuota是多少?

kubernetes - kubernetes中的traefik入口自定义错误

kubernetes - Helm 不创造资源

python - 从 Python 在 kubernetes 集群上提交 Spark (2.3)

kubernetes - 新 Helm !是否可以进入从稳定 repo 中提取的图表?

kubernetes - 这个 cron 作业有什么问题,它没有运行。如何调试它

kubernetes - 通过代理服务器的Helm 3安装错误