HelmCharts - ConfigMap模板导入未格式化的yaml文件



我有一个关于Helm Chart的技术问题。我想我的ConfigMap模板导入yaml文件在我的文件目录,这些yaml文件是Java SpringBoot配置文件从我的应用程序,我可以导入文件,但他们是未格式化的。

Java SpringBoot配置文件示例

spring:
jpa:
hibernate:
ddl-auto: none
naming:
implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImpl
database-platform: org.hibernate.dialect.MySQL5InnoDBDialect
#database-platform: org.hibernate.dialect.PostgreSQL95Dialect
datasource:
#### MYSQL ####
url: jdbc:mysql://mysql:3306/database
username: user
password: useabetteruserpassword
driver-class-name: com.mysql.cj.jdbc.Driver

ConfigMap模板

{{- if .Values.configMap.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-local
data:
{{ (.Files.Glob "files/*").AsConfig | indent 2 }}
{{- end }}

舵机-干转输出

apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-local
data:
test.yaml: "spring:rn  jpa:rn    hibernate:rn      ddl-auto: nonern
     naming:rn        implicit-strategy: org.hibernate.boot.model.naming.ImplicitNamingStrategyComponentPathImplrn
   database-platform: org.hibernate.dialect.MySQL5InnoDBDialectrn    #database-platform:
org.hibernate.dialect.PostgreSQL95Dialectrn  datasource:rn      #### MYSQL ####rn
     url: jdbc:mysql://mysql:3306/databasern      username: userrn      password:
useabetteruserpasswordrn      driver-class-name: com.mysql.cj.jdbc.Driverrnrn
     #### POSTGRES ####rn      #url: jdbc:postgresql://postgres:5432/ver_infocenterrn
     #username: ver_userrn      #password: useabetteruserpasswordrn      #driver-class-name:
org.postgresql.Driverrn"

谢谢@zer0。谢谢你的回答。我正在使用另一种解决方案,它满足了我的需求。

{{- if .Values.configMap.enabled -}}
apiVersion: v1
kind: ConfigMap
metadata:
name: configmap-local
data:
info-center-docker.yaml: |-
{{- .Files.Get "files/info-center-docker.yaml" | nindent 4 -}}
info-center-writer-docker.yaml: |-
{{- .Files.Get "files/info-center-writer-docker.yaml" | nindent 4 -}}
topic-configuration-3p.yaml: |-
{{- .Files.Get "files/topic-configuration-3p.yaml" | nindent 4 -}}
{{- end }}

这根本不是问题。这就是Kubernetes处理给定二进制数据流的方式。您将注意到,所有nt字符都保留在配置映射中附加到键test.yaml的数据blob中。

我说这不是问题,因为当这个ConfigMap将提供给pod时,pod将能够从文件中读取这个值,并且这些文字字符将被翻译成空白,并且pod永远不会知道它们是这样存储的。

只是为了检查,您可以创建一个pod,并将这个ConfigMap挂载到其中。然后进入pod并cat这个文件,就会看到输出被格式化了。因此,您可以放心,应用程序的配置文件将以正确的形式收到。

最新更新