Как читать файл свойств env на карте конфигурации - PullRequest
0 голосов
/ 21 июня 2020

У меня есть файл свойств в папке диаграммы / свойств. Например, 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

В сгенерированных записях выходных свойств отсутствуют двойные кавычки в значении, в результате развертывание жалуется на это, когда строки значений содержат специальные символы.

Я ожидаю карту конфигурации Блок данных .yaml должен быть правильным файлом типа yaml (Indent 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"

Ответы [ 2 ]

1 голос
/ 21 июня 2020

Для этого вы можете следовать синтаксису шаблона 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 }}
0 голосов
/ 21 июня 2020

Я не смог прокомментировать ваш вопрос из-за моей репутации. Если это возможно в вашем случае, вы можете использовать карту конфигурации как файл. Я думаю, что читать файл свойств в вашем коде проще.

https://kubernetes.io/docs/concepts/configuration/configmap/#using -configmaps-as-files-from-a-pod

...