Объект ConfigMap data
feild требует, чтобы все значения были строками.Когда у нас есть значение типа 8080
, оно читается как int.
Что мы можем сделать для создания ConfigMap
объекта здесь:
1. Определить все значения как строкииспользуя quote
функцию:
values.yaml
:
environmentVariables:
SERVER_CONTEXT_PATH: /some/where/v2
SERVER_PORT: 8080
часть templates/configmap.yaml
:
data:
{{- range $key, $value := .Values.environmentVariables }}
{{ $key }}: {{ $value | quote }}
{{- end }}
2. Определить всезначения в виде строк с использованием двойных кавычек:
values.yaml
:
environmentVariables:
SERVER_CONTEXT_PATH: /some/where/v2
SERVER_PORT: 8080
часть templates/configmap.yaml
:
data:
{{- range $key, $value := .Values.environmentVariables }}
{{ $key }}: "{{ $value }}"
{{- end }}
3. Определитьвсе значения типа int в виде строковых значений в values.yaml
:
values.yaml
:
environmentVariables:
SERVER_CONTEXT_PATH: /some/where/v2
SERVER_PORT: '"8080"'
часть templates/configmap.yaml
:
data:
{{- range $key, $value := .Values.environmentVariables }}
{{ $key }}: {{ $value }}
{{- end }}
Вот несколько хитростей:когда берется значение, оно в основном принимается как "8080"
, которое может быть точно установлено как строковое значение.