我有这个 ansible (working) playbook,它查看kubectl get pods -o jsonpod的输出,直到 pod 处于该Running状态。现在我想将其扩展到多个 Pod。核心问题是kubectl查询的json结果是一个列表,我知道如何访问第一项,但不是所有的项...
- name: wait for pods to come up
shell: kubectl get pods -o json
register: kubectl_get_pods
until: kubectl_get_pods.stdout|from_json|json_query('items[0].status.phase') == "Running"
retries: 20
Run Code Online (Sandbox Code Playgroud)
json 对象看起来像,
[ { ... "status": { "phase": "Running" } },
{ ... "status": { "phase": "Running" } },
...
]
Run Code Online (Sandbox Code Playgroud)
使用[0]访问处理列表中的一个对象合作的第一个项目,但我无法弄清楚如何将其扩展到多个项目。我试过[*]哪个不起作用。
是否有任何资源概述kubernetes作业可能具有的所有可能的状态条件?
我想知道是因为我想检查一下,当我运行一个作业时是否已经在运行,如果已经运行,请退出新作业。
我遇到了until kubectl get jobs myjob -o jsonpath='{.status.conditions[?(@.type=="Complete")].status}' | grep True ; do sleep 1 ; done很多次,但是我想知道它是否正在运行,而不是是否已经完成。不想等待(ha)for kubectl 1.11等待功能