Добавить файл в существующую конфигурационную карту Openshift - PullRequest
0 голосов
/ 27 сентября 2018

Можно ли добавить файл в существующую конфигурационную карту Openshift?

Я собираюсь создать задание Jenkins, которое автоматически обновит определенный ключ в конфигурационной карте Openshift, как это было предложено мной, нотеперь я сталкиваюсь с проблемами на самом деле делать это.У нас всегда может быть несколько конфигураций, но ради чистоты мой вопрос все еще стоит.

oc create configmap my-config --from-file=path/to/file.properties --dry-run -o 
yaml | oc apply -f -

Я нашел только эту команду, чтобы сделать это, но вместо добавления ключа "file.properties" иего содержимое в качестве значения просто заменяет весь мой configMap ключом «file.properties», что я не хочу делать.

Сценарий использования здесь может заключаться в том, что какая-то команда развертывает определенный файл configMap., и я мог бы иметь возможность обновлять и поддерживать configMap с дополнительными значениями, если это возможно.

РЕДАКТИРОВАТЬ: я нашел этот поток с 2016 года, но oc update, кажется, былснято с openshift 3.10

Ответы [ 2 ]

0 голосов
/ 11 марта 2019

oc patch - ваш друг:

oc patch cm myconfig -p $(cat patch_file.yaml)

, где patch_file.yaml имеет:

data:
  file.properties: |
    content of the file here

, если file.properties отсутствует в см, он будет создан и объединен состальные данные, если они есть, будут заменены.

0 голосов
/ 29 сентября 2018

Мне удалось получить то, что, я думаю, вы хотите, используя json вместо yaml и используя jq с оператором умножения (*), который при использовании с объектами рекурсивно объединит их (разделенные линии для удобства чтения):

oc export configmap my-config -o json \
  | jq ". * $(oc create configmap my-config --from-file path/to/file.properties --dry-run -o json)" \
  | oc apply -f -

Хотя это работает нормально, если вы ищете однострочник, вы также можете вручную отредактировать файл конфигурации в текстовом редакторе с помощью oc edit configmap my-config или oc replace(с недавно подготовленным файлом json или yaml) или с помощью веб-консоли.Это может быть возможно и с oc patch, но я не смог заставить это работать быстро.

...