如何读取配置映射中的 env 属性 文件
How to read env property file in the config map
我在 chart/properties 文件夹中有一个 属性 文件。例如 chart/properties/dev 是文件
它的内容如下所示
var1=somevalue1
var2=somevalue2
var3=somepwd=
var4=http://someurl.company.com
属性 文件中的一些值字符串有一个 =。 属性 文件中也有一些空行。
和chart/configmap.yaml 如下所示
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: {{ .Release.Namespace }}
data:
{{ range .Files.Lines "properties"/.Values.env.required.environment }}
{{ . | replace "=" ": " }}
{{ end }}
生成的yaml文件:
---
# Source: app/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: default
data:
var1: somevalue1
var2: somevalue2
var3: somepwd:
var4: http://someurl.company.com
生成的输出 属性 条目在值中缺少双引号,因此当值字符串包含特殊字符时部署会抱怨它。
我期望 configmap.yaml 数据块是一个正确的 yaml(缩进 2),如具有上述更改的文件。通过上述更改,yaml 文件中每个 属性 条目后都有额外的行。当没有空行并且没有带 = 的值字符串时,我让这个部分工作。需要帮助才能正常工作。
预期的 yaml 文件:
---
# Source: app/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: default
data:
var1: "somevalue1"
var2: "somevalue2"
var3: "somepwd="
var4: "http://someurl.company.com"
由于我的名声,我无法对你的问题发表评论。如果您的情况可行,您可以将配置映射用作文件。我认为阅读代码中的 属性 文件更容易。
https://kubernetes.io/docs/concepts/configuration/configmap/#using-configmaps-as-files-from-a-pod
您可以按照 go 模板语法来执行此操作。我更新config.yaml喜欢以下作品
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: {{ .Release.Namespace }}
data:
{{ range .Files.Lines "properties"/.Values.env.required.environment }}
{{- if ne . "" -}}
{{- $parts := splitn "=" 2 . -}} # details about split function http://masterminds.github.io/sprig/string_slice.html
{{ $parts._0 }}: {{ $parts._1 | quote }}
{{end}}
{{ end }}
我在 chart/properties 文件夹中有一个 属性 文件。例如 chart/properties/dev 是文件 它的内容如下所示
var1=somevalue1
var2=somevalue2
var3=somepwd=
var4=http://someurl.company.com
属性 文件中的一些值字符串有一个 =。 属性 文件中也有一些空行。
和chart/configmap.yaml 如下所示
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: {{ .Release.Namespace }}
data:
{{ range .Files.Lines "properties"/.Values.env.required.environment }}
{{ . | replace "=" ": " }}
{{ end }}
生成的yaml文件:
---
# Source: app/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: default
data:
var1: somevalue1
var2: somevalue2
var3: somepwd:
var4: http://someurl.company.com
生成的输出 属性 条目在值中缺少双引号,因此当值字符串包含特殊字符时部署会抱怨它。
我期望 configmap.yaml 数据块是一个正确的 yaml(缩进 2),如具有上述更改的文件。通过上述更改,yaml 文件中每个 属性 条目后都有额外的行。当没有空行并且没有带 = 的值字符串时,我让这个部分工作。需要帮助才能正常工作。
预期的 yaml 文件:
---
# Source: app/templates/configmap.yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: default
data:
var1: "somevalue1"
var2: "somevalue2"
var3: "somepwd="
var4: "http://someurl.company.com"
由于我的名声,我无法对你的问题发表评论。如果您的情况可行,您可以将配置映射用作文件。我认为阅读代码中的 属性 文件更容易。
https://kubernetes.io/docs/concepts/configuration/configmap/#using-configmaps-as-files-from-a-pod
您可以按照 go 模板语法来执行此操作。我更新config.yaml喜欢以下作品
apiVersion: v1
kind: ConfigMap
metadata:
name: env-configmap
namespace: {{ .Release.Namespace }}
data:
{{ range .Files.Lines "properties"/.Values.env.required.environment }}
{{- if ne . "" -}}
{{- $parts := splitn "=" 2 . -}} # details about split function http://masterminds.github.io/sprig/string_slice.html
{{ $parts._0 }}: {{ $parts._1 | quote }}
{{end}}
{{ end }}