<p>In Kubernetes object metadata, there are <a href="https://github.com/kubernetes/community/blob/master/contributors/devel/sig-architecture/api-conventions.md#metadata" rel="noreferrer">the concepts of <code>resourceVersion</code> and <code>generation</code></a>.  I understand the notion of <code>resourceVersion</code>: it is an optimistic concurrency control mechanism—it will change with every update.  What, then, is <code>generation</code> for?</p>

<p>resourceVersion changes on every write, and is used for optimistic concurrency control</p>

<p>in some objects, generation is incremented by the server as part of persisting writes affecting the <code>spec</code> of an object.</p>

<p>some objects' <code>status</code> fields have an <code>observedGeneration</code> subfield for controllers to persist the generation that was last acted on.</p>
