<p>We have cluster with Istio and also Jenkins job to get &quot;stable&quot; pods, which uses this <code>kubectl</code> query:</p>
<pre class="lang-sh prettyprint-override"><code>kubectl get po -o=jsonpath=&quot;{range .items[?(@.status.containerStatuses[-1].ready==true)]}{.spec.containers[0].image}{'\\n'}{end}&quot;
</code></pre>
<pre><code>registry/my-proj/admin:2.0.0.000123
registry/my-proj/foo:2.0.0.000123
registry/my-proj/bar:2.0.0.000123
</code></pre>
<p>This query fetches pods where last container (application) is ready, because we also have Istio sidecar containers. But here is tricky thing, it looks like array is built using alphabet, so if Istio container will be last - it fetches it as ready pod, because last container is ready.</p>
<p>I've tried to use <code>go-template</code> also, but the best thing I've managed to do</p>
<pre class="lang-sh prettyprint-override"><code>kubectl get po -o go-template='{{range .items}}{{range .status.containerStatuses}}{{if eq .ready true }}{{end}}{{end}}{{.metadata.name}}{{println}}{{end}}
</code></pre>
<pre><code>registry/my-proj/admin:2.0.0.000123
registry/my-proj/admin:2.0.0.000123
registry/my-proj/foo:2.0.0.000123
registry/my-proj/foo:2.0.0.000123
registry/my-proj/bar:2.0.0.000123
</code></pre>
<p>It fetches <strong>2</strong> times pods where 2 containers are ready and only <strong>1</strong> if <strong>1</strong> container is ready.</p>
<p><strong>TL;DR;</strong></p>
<p>I am looking for ultimate query which can fetch pods where <strong>all containers are ready</strong>, thanks</p>

orlovw
<p>If you are ok with <code>grep</code>, you can use the following command:</p>
<pre><code>kubectl get pod |grep -Po '^([^ ]+)(?=\s+((\d+)\/\3))'
</code></pre>
<p>Example:</p>
<pre><code>kubectl get pod
NAME    READY   STATUS     RESTARTS        AGE
bar     2/2     Running    0               5m12s
foo     1/3     NotReady   6               6m9s
mypod   1/1     Running    2 (9m58s ago)   21h

kubectl get pod |grep -Po '^([^ ]+)(?=\s+((\d+)\/\3))'
bar
mypod
ps@controller:~$
</code></pre>
