Многострочные значения в исходном файле пользовательской среды

Я пытаюсь установить многострочные значения (содержимое файла сертификата 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 - действительно крутой проект!

Другие вопросы по тегам