<p>Let's say I have an image <code>foo</code> with tag <code>v1</code>.
So I deployed it on Kubernetes by <code>foo:v1</code>.</p>

<p>However, for some reason(e.g. monoversion in monorepo), I pushed the exact same image to container registry with tag <code>v2</code>.
And I changed k8s manifest to <code>foo:v2</code>.</p>

<p>In this situation, I want to update the pod only when the <code>image digest</code> of <code>v1</code> and <code>v2</code> are different. So in the case of foo, the digest are same, so container of <code>foo:v1</code> should keep running.</p>

<p>Is this possible? If so, how?</p>

<p>Thanks</p>

<p>There is no way to update <code>tag</code> image without restarting pod. 
The only way to make it work is too use <code>digest</code> explicitly instead of tags. </p>

<p>So now image spec would look like this: </p>

<pre><code>spec:
  image: foo@sha256:50cf965a6e08ec5784009d0fccb380fc479826b6e0e65684d9879170a9df8566
</code></pre>

<p>This way your image does not depended on tags. Digests can be found either on <code>dockerhub</code> or by running command <code>docker images --digests &lt;image-name&gt;</code></p>
