2017-02-18 12 views
0

Я экспериментировал с OpenShift/minishift, я считаю себя приходится работать:Openshift: как редактировать scc не интерактивно?

oc edit scc privileged

и добавить:

- system:serviceaccount:default:router

Так что я могу выставить стручки. Есть ли способ сделать это в сценарии?

Я знаю, что oc adm есть команда для манипулирования политикой, но я не могу понять, как добавить эту строку.

ответ

2

Вы можете достичь его с помощью команды oc patch и с типом JSON. Ниже приведенный ниже фрагмент добавит новый элемент в массив до 0-го элемента. Вы можете попробовать его с поддельными «бла» ценности и т.д.

oc patch scc privileged --type=json -p '[{"op": "add", "path": "https://stackoverflow.com/users/0", "value":"system:serviceaccount:default:router"}]' 

--type=json интерпретирует поставляемый патч, как jsonpatch операции. К сожалению, oc patch --help не содержит примеров для типа json patch. К счастью, пример использования можно найти в kubernetes документы: kubectl patch

+0

Awesome! Я не могу найти 'oc patch' +1,' oc replace -f -' сделал трюк для меня. – Tiago

0

Я нашел пример трубопровода до sedHere и адаптировал его к рубину, чтобы я мог легко редактировать структуру данных.

oc get scc privileged -o json |\ 
ruby -rjson -e 'i = JSON.load(STDIN.read); i["users"].push "system:serviceaccount:default:router"; puts i.to_json ' |\ 
oc replace scc -f - 

Вот quick and dirty script начать с minishift

0

Самый простой способ для добавления и удаления пользователей SCCs из командной строки с помощью команды oc adm policy:

oc adm policy add-scc-to-user <scc_name> <user_name> 

Для получения дополнительной информации см this section.


Так что для вашего конкретного сценария использования, было бы:

oc adm policy add-scc-to-user privileged system:serviceaccount:default:router 

Я удивлен его нужно хотя. Обычно я использую «oc cluster up», но тестирование с недавним minishift, его уже добавлено из коробки:

$ minishift start 
$ eval $(minishift oc-env) 
$ oc login -u system:admin 
$ oc get scc privileged -o yaml | grep system:serviceaccount:default:router 
- system:serviceaccount:default:router 

$ minishift version 
minishift v1.14.0+1ec5877 
$ oc version 
openshift v3.7.1+a8deba5-34