# imagePullPolicy:always behavior change?

**URL:** <https://discuss.kubernetes.io/t/imagepullpolicy-always-behavior-change/19625>\
**Category:** General Discussions\
**Created:** [April 11, 2022, 11:18pm UTC](https://discuss.kubernetes.io/t/imagepullpolicy-always-behavior-change/19625 "2022-04-11T23:18:26Z")\
**Posts on this page:** 1\
**Page:** 1

<div class="post-metadata">

**Author:** ![larryc](https://sea2.discourse-cdn.com/flex016/user_avatar/discuss.kubernetes.io/larryc/32/9861_2.png) [@larryc](https://discuss.kubernetes.io/u/larryc)\
**Post date:** [April 11, 2022, 11:18pm UTC](https://discuss.kubernetes.io/t/imagepullpolicy-always-behavior-change/19625/1 "2022-04-11T23:18:26Z")

</div>

I’ve been reading about the Kubernetes imagePullPolicy attribute when set to ‘always’, and it seems like something has changed:

Up through [version 1.21 of the documentation](https://v1-21.docs.kubernetes.io/docs/concepts/containers/images/), the documentation said the following:

_If you would like to always force a pull, you can do one of the following:_

- _set the imagePullPolicy of the container to Always._
- _omit the imagePullPolicy and use :latest as the tag for the image to use; Kubernetes will set the policy to Always._
- _omit the imagePullPolicy and the tag for the image to use._
- _enable the AlwaysPullImages admission controller._

But starting with [version 1.22 of the K8S documentation](https://v1-22.docs.kubernetes.io/docs/concepts/containers/images/#image-pull-policy), it says imagePullPolicy works as follows when set to always:

_Every time the kubelet launches a container, the kubelet queries the container image registry to resolve the name to an image digest. If the kubelet has a container image with that exact digest cached locally, the kubelet uses its cached image; otherwise, the kubelet pulls the image with the resolved digest, and uses that image to launch the container._

These are very different explanations: \<= 1.21, it says that ‘always’ forces the image to always be pulled from the registry. But \>=1.22, it says ‘always’ simply forces a digest check against the registry, but the kubelet will use a cached copy if nothing changed.

I’m trying to understand if the **behavior** actually changed starting in 1.22, or was this simply a change to the explanation and documentation? I can’t find any notice of this in a changelog, yet it seems like change to me.
