Как получить значение yaml - PullRequest
0 голосов
/ 12 мая 2018

Я пытаюсь получить значение из файла YAML в оболочке:

apiVersion: v1
items:
- apiVersion: v1
  kind: Pod
  spec:
    containers:
    hostIP: 12.198.110.192
    phase: Running
    podIP: 10.244.1.9

При kubectl get pods -l run=hello-kube -o yaml | grep podIP: я получаю этот вывод:

    podIP: 10.244.1.9

Моя цель - сохранить этозначение в переменной среды, но я получаю только пару key/value:

export PODIP=$(kubectl get pods -l run=hello-kube -o yaml | grep podIP)

Ответы [ 3 ]

0 голосов
/ 13 мая 2018

Вы также можете использовать формат json для получения значения с помощью jsonpath, например,

kubectl get pods -l app=cron -o=jsonpath='{.items[0].status.podIP}'

Спасибо

0 голосов
/ 13 мая 2018

Вы также можете использовать yq (https://github.com/mikefarah/yq),, который похож на инструмент jq.

. Затем выполните:

% yq read file.yaml items.0.spec.podIP
10.244.1.9
0 голосов
/ 12 мая 2018

с awk:

kubectl get pods -l run=hello-kube -o yaml | awk '/podIP:/ {print $2}'

Выход:

10.244.1.9
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...