Многострочные значения в исходном файле пользовательской среды
Я пытаюсь установить многострочные значения (содержимое файла сертификата CA) для настройки файла среды для конкретного ключа, как показано в коде ниже. Есть ли способ добиться этого?
Примечание. Добавление кавычек к значению в some_params.env не работает.
kustomize.yaml
apiVersion: kustomize.config.k8s.io/v1beta1
kind: Kustomization
commonLabels:
role: authentication
bases:
- ./somebase
configMapGenerator:
- name: some-parameters
env: some_params.env
vars:
- name: ca_contents
objref:
kind: ConfigMap
name: some-parameters
apiVersion: v1
fieldref:
fieldpath: data.ca_contents
configurations:
- some_params.yaml
some_params.yaml
varReference:
- path: data/ca.pem
kind: ConfigMap
some_params.env
ca_contents= |
-----BEGIN CERTIFICATE-----
YOUR CA CERTIFICATE CONTENTS
-----END CERTIFICATE-----
Выполнение следующей команды:kustomize build base
Возвращает:Error: NewResMapFromConfigMapArgs: NewResMapFromConfigMapArgs: env source file: some_params.env: "-----BEGIN CERTIFICATE-----" is not a valid key name: a valid environment variable name must consist of alphabetic characters, digits, '_', '-', or '.', and must not start with a digit (e.g. 'my.env-name', or 'MY_ENV.NAME', or 'MyEnvName1', regex used for validation is '[-._a-zA-Z][-._a-zA-Z0-9]*')
0 ответов
Похоже, вы создаете ConfigMaps с помощью генераторов в Kustomize. И при этом вы пытаетесь передать ему содержимое желаемой ConfigMap прямо в файле kustomization.yml.
Лучше было бы вместо этого сохранить содержимое этих файлов конфигурации на диск и хранить их в том же месте, что и ваши манифесты. Затем импортируйте их из файла в свои генераторы в Kustomize. Например:
configMapGenerator:
- name: ca_contents
files:
- ca.crt
Это создаст ConfigMap с именем ca.crt
с содержимым файла.
Однако при желании вы можете сделать то же самое с literals
и используйте многострочную конфигурацию прямо в вашем kustomization.yml. Например:
configMapGenerator:
- name: ca_contents
literals:
- ca.crt=|
CERT_CONTENTS
EACH_NEWLINE_IS_INDENTED_ANOTHER_TIME
You_Can_Add_Additional_literals
- ca.key=>
AND_EVEN
CONCATENATE_THEM
_ONTO_ONE_LINE_WITH_OTHER_OPERATORS_LIKE_>
- cert.crt="You can even mix literals with files in generators."
files:
- cert.key
Дайте мне знать, если в этом есть смысл. Я советую хранить конфигурацию в файлах и импортировать их в генераторы, но любое решение должно работать. Не стесняйтесь обращаться, если вам понадобится другая помощь. Kustomize - действительно крутой проект!