Helm:从values.yaml中获取文件内容

时间:2019-10-09 08:26:40

标签: kubernetes-helm

我正在尝试将配置文件的内容放入public byte[] bytesFromPath(final String path) throws IOException { return Files.readAllBytes(Paths.get(path)); } 中并获取它。

例如:

这是values.yaml:

.content(bytesFromPath(new ClassPathResource("file-name").getPath()));

这是一个configMap,我应该将内容放在其中:

values.yaml

在“ HELM”标签中,我尝试了configuration: | [core] # Some comments my_folder = /usr/local/my_folder # The folder where my app should store its log files # This path must be absolute base_log_folder = /usr/local/app/logs # Logging options remote_logging = False remote_log_conn_id = remote_base_log_folder = encrypt_logs = False apiVersion: v1 kind: ConfigMap metadata: name: "{{ template "app.fullname" . }}-config" data: my.cfg: | {{ HELM }} 的几个选项,但都没有达到我的目标。

作为非最佳解决方案,我将tpl的内容放入文件中,然后使用

进行抓取
include

请问关于将所有内容都包含在configuration中的建议。预先谢谢你。

1 个答案:

答案 0 :(得分:0)

当您在YAML上使用|时,您正在定义Multiline YAML String,这意味着您的configuration键具有单个字符串值,并带有换行符({{1 }}。

您可以像这样简单地定义ConfigMap模板:

\n

渲染后,生成的ConfigMap将部署为:

apiVersion: v1
kind: ConfigMap
metadata:
  name: "{{ template "app.fullname" . }}-config"
data:
  my.cfg:
{{- toYaml $.Values.configuration | nindent 4 }}