2017-02-18 1 views
0

ich mit Openshift/minishift am Experimentieren, finde ich mich laufen zu:Openshift: wie scc nicht interaktiv bearbeiten?

oc edit scc privileged

und fügen:

- system:serviceaccount:default:router

So kann ich die Schoten aus. Gibt es eine Möglichkeit, dies in einem Skript zu tun?

Ich weiß, oc adm habe einen Befehl für die Politik Manipulation, aber ich kann nicht herausfinden, wie diese Zeile hinzufügen.

Antwort

2

Sie es mit erreichen können oc patch Befehl und mit Typ-json. Das folgende Snippet fügt dem Array vor dem 0. Element ein neues Element hinzu. Sie können es versuchen, mit einem gefälschten „bla“ Wert aus usw.

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

Die --type=json wird das bereitgestellte Patch als jsonpatch Betrieb interpretieren. Leider bietet oc patch --help kein Beispiel für den JSON-Patch-Typ. Zum Glück Beispiel für die Verwendung in Kubernetes docs finden: kubectl patch

+0

Super! Ich konnte nicht "oc patch" +1 finden, "oc ersetzen -f-" hat den Trick für mich getan. – Tiago

0

Ich habe ein Beispiel Rohrleitung zu sedHere gefunden und es an Rubin angepasst, damit ich die Datenstruktur leicht bearbeiten kann.

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 - 

ist hier quick and dirty script loszulegen mit minishift

0

Der einfachste Weg, Nutzer SVB über die Befehlszeile hinzufügen und entfernen wird mit den oc adm policy Befehle:

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

Weitere Informationen finden Sie this section.


Also für Ihren spezifischen Anwendungsfall wäre es:

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

Ich bin überrascht, wenn es gebraucht wird. Ich benutze "oc cluster up" normalerweise, aber mit dem letzten minishift zu testen, ist es bereits aus der Box hinzugefügt:

$ 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