Рейтинг:2

Как загрузить configmap из файла свойств с помощью kustomize?

флаг cn

Я попытался использовать kustomize для загрузки файла свойств в виде карты конфигурации.

Для этого я создал набор примеров, как в github соединять.

С базовыми файлами:

#настроить базу сборки
апиВерсия: v1
данные:
  конфигурация: |-
    порт базы данных = 1234
    имя_dc=sfsdf
    дбссл=ложь
    время блокировки = 300
    пользователь домена =
вид: карта конфигурации
метаданные:
  этикетки:
    владелец: Сара
  имя: база данных-configmap
---
apiVersion: приложения/v1
вид: развертывание
метаданные:
  этикетки:
    приложение: nginx
    владелец: Сара
  имя: нгинкс
спецификация:
  реплики: 1
  селектор:
    метки соответствия:
      приложение: nginx
      владелец: Сара
  шаблон:
    метаданные:
      этикетки:
        приложение: nginx
        владелец: Сара
    спецификация:
      контейнеры:
      - изображение: nginx
        имя: нгинкс

С внешним файлом:

#настроить файл сборки
апиВерсия: v1
данные:
  конфигурация: "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
вид: карта конфигурации
метаданные:
  этикетки:
    окружение: разработчик
    владелец: Сара
  имя: dev-база данных-configmap
---
apiVersion: приложения/v1
вид: развертывание
метаданные:
  этикетки:
    приложение: nginx
    окружение: разработчик
    владелец: Сара
  имя: dev-nginx
спецификация:
  реплики: 1
  селектор:
    метки соответствия:
      приложение: nginx
      окружение: разработчик
      владелец: Сара
  шаблон:
    метаданные:
      этикетки:
        приложение: nginx
        окружение: разработчик
        владелец: Сара
    спецификация:
      контейнеры:
      - изображение: nginx
        имя: нгинкс

Если вы наблюдаете configmap | удаляется, а также заменяется \r\n как единая строка. Как исправить этот расклад?

флаг in
Что ж, за исключением символов `\r`, эти две формы идентичны; скалярное цитирование `: |` предназначено только для потребления человеком - к тому времени, когда оно попадает в кластер, оно имеет форму `config: "независимо\nнезависимо-иначе\n"`, как `yaml2json` будет отображаться для обеих форм , или, конечно же, как это на самом деле материализуется в Pod
Рейтинг:0
флаг in

Размещая это как вики сообщества, не стесняйтесь редактировать и расширять.


Как упоминал @mdaniel в комментарий:

Ну, кроме символов \r, эти две формы идентичны; : | скалярное цитирование предназначено только для человеческого потребления - к тому времени, когда оно попадает в кластер он имеет вид конфига: "независимо\nнезависимо\n", как yaml2json покажет для обеих форм, или, конечно, как это на самом деле материализуется в Pod

Вы можете проверить это, получив данные configmap из кластера kubernetes в json и смотрите, чтобы они сохранялись точно так же (за исключением доп. о котором говорилось выше):

$ kubectl получить cm базу данных-configmap -o json
{
    "апиВерсия": "v1",
    "данные": {
        "config": "dbport=1234\ndcname=sfsdf\ndbssl=false\nlocktime=300\ndomainuser="
    },
    "вид": "Карта конфигурации",
    ...

и

$ kubectl получить cm dev-database-configmap -o json
{
    "апиВерсия": "v1",
    "данные": {
        "config": "dbport=156767\r\ndcname=dfsd\r\ndbssl=false\r\nlocktime=300\r\ndomainuser=somedts"
    },
    "вид": "Карта конфигурации",
    ...

На StackOverflow есть ответ, который кратко показывает разница между \n , \r и \r\n.

Wytrzymały Wiktor avatar
флаг it
Привет @SaraJune. Это [ответит на ваш вопрос] (https://stackoverflow.com/help/someone-answers)?

Ответить или комментировать

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