2016-03-24 7 views
3

Wie die json analysieren ein Feld aus Ausgabe vonWie json-Format Ausgang analysieren: kubectl erhalten Schoten mit jsonpath

kubectl get pods -o json 

in der Befehlszeile ich von einem System erzeugten Containernamen zu erhalten, müssen abzurufen Google Cloud Cluster ... Hier sind die ausgeprägten Bits json Ausgang von oben Befehl: enter image description here

Here is entire json output

So die oberste json Schlüssel ist ein Array: Positionen [] gefolgt von metadata.labels.name wo th Der Suchkriterienwert dieses zusammengesetzten Schlüssels ist "Web" (siehe Bild oben grüne Markierungen). Auf einem Spiel, muss ich dann Feld

.items[].metadata.name 

, die so passiert haben Wert abzurufen:

web-controller-5e6ij // I need to retrieve this value 

Here are docs on jsonpath

Ich möchte Textanalyse Ausgabe von

kubectl get pods 
vermeiden

Das ist

NAME      READY  STATUS RESTARTS AGE 
mongo-controller-h714w 1/1  Running 0   12m 
web-controller-5e6ij  1/1  Running 0   9m 

Im Anschluss an wird diesen get pods Befehl korrekt analysiert noch fühle mich sich zu zerbrechlich

kubectl get pods | tail -1 | cut -d' ' -f1 

Antwort

5

Nach langen Kampf gegen diesen Einzeiler die Containernamen nicht abrufen:

kubectl get pods -o=jsonpath='{.items[?(@.metadata.labels.name=="web")].metadata.name}' 

wenn dies die bekannte Suche ist Kriterien:

items[].metadata.labels.name == "web" 

und dies i s das gewünschte abzufragende Feld

items[].metadata.name : "web-controller-5e6ij" 
Verwandte Themen