<p>Is there a table that will tell me which set of API versions I should be using, given a k8s cluster version? Kubernetes docs always assume I always have a nice, up-to-date cluster (1.12 at time of writing) but platform providers don't always live on this bleeding edge so it can get frustrating quite quickly.</p>

<p>Better yet, is there a <code>kubectl</code> command I can run that will let me cluster tell me each resource type and its latest supported API version?</p>

s g
<p>For getting a list of all the resource types and their latest supported version, run the following:</p>

<pre><code>for kind in `kubectl api-resources | tail +2 | awk '{ print $1 }'`; do kubectl explain $kind; done | grep -e "KIND:" -e "VERSION:"
</code></pre>

<p>It should produce output like</p>

<pre><code>KIND:     Binding
VERSION:  v1
KIND:     ComponentStatus
VERSION:  v1
KIND:     ConfigMap
VERSION:  v1
KIND:     Endpoints
VERSION:  v1
KIND:     Event
VERSION:  v1
...
</code></pre>

<p>As @Rico mentioned, they key is in the <code>kubectl explain</code> command. This may be a little fragile since it depends on the format of the printed output, but it works for kubernetes 1.9.6</p>

<p>Also, the information can be gathered in a less efficient way from the kubernetes API docs (with links for each version) found here - <a href="https://kubernetes.io/docs/reference/#api-reference" rel="noreferrer">https://kubernetes.io/docs/reference/#api-reference</a> </p>
