使用Helm遍历dotenv文件的行,并在ConfigMap中呈现为键-值对 [英] Use Helm to Loop thru lines of dotenv file and render as key-value pair in ConfigMap

查看:14
本文介绍了使用Helm遍历dotenv文件的行,并在ConfigMap中呈现为键-值对的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有这个.env文件:

REACT_APP_API_ENDPOINT=http://api.app:8080
REACT_APP_GOOGLE_ANALY=xyz1234ezyz

我想用此.env文件构建一个figmap,如下所示:

apiVersion: v1
kind: ConfigMap
metadata:
  name: frontend-config

data:
 REACT_APP_API_ENDPOINT: 'http://api.app:8080'
 REACT_APP_GOOGLE_ANALY: 'xyz1234ezyz'
  

算法很简单:

 forEach Line of `.env` content
    > Split by "="
    > key <- first part , value <- second part
    > render key, value in 

我的舵图缺省值为:

# chart/values.yaml

# using --set-file
frontendEnv: |
 REACT_APP_API_ENDPOINT=http://api.app:8080
 REACT_APP_GOOGLE_ANALY=xyz1234ezyz

我的配置映射模板:

apiVersion: v1
kind: ConfigMap
metadata:
 #...

data:

# MY QUESTION is what to put Here 👓

我已尝试此循环:

# ...
# ..
data:
{{- range $line := splitList "
" .Values.frontendEnv -}}
{{/* Break the line into words */}}
{{- $kv := split "=" $line -}}
  $kv._0: {{ $kv._1 | quote }}
{{- end -}}

但它不起作用

推荐答案

已修复。

  • 使用{{- range ... }}Not{{- range... -}}为每个迭代保留新行。

  • 使用拆分列表而不是拆分

  • 检查行是否不为空

{{- range $line := splitList "
" .Values.frontendEnv }}
  {{/* Break the line into words */}}
  {{- $kv := splitList "=" $line -}}
  {{- $k := first $kv -}}
  {{- if $k }}
    {{ $k }}: {{ last $kv | quote }}
  {{- end }}

{{- end }}

这篇关于使用Helm遍历dotenv文件的行,并在ConfigMap中呈现为键-值对的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆