<p>I'm new to Kubernetes (K8s).  It's my understanding that in order to &quot;do things&quot; in a kubernetes cluster, we interact with a kuberentes REST API endpoint and create/update/delete objects.  When these objects are created/updated/deleted K8s will see those changes and take steps to bring the system in-line with the state of your objects.</p>
<p>In other words, you tell K8s you want a &quot;deployment object&quot; with container image <code>foo/bar</code> and 10 replicas and K8s will create 10 running pods with the <code>foo/bar</code> image.  If you update the deployment to say you want 20 replicas, K8s will start more pods.</p>
<p>My Question: Is there a canonical description of all the possible configuration fields for these objects?  That is -- tutorials liks <a href="https://kubernetes.io/docs/concepts/workloads/controllers/deployment/#creating-a-deployment" rel="nofollow noreferrer">this one</a> do a good job of describing the simplest possible configuration to get an object like a deployment working, but now I'm curious what else it's possible to do with deployments that go beyond these hello world examples.</p>

<blockquote>
<p>Is there a canonical description of all the possible configuration fields for these objects?</p>
</blockquote>
<p>Yes, there is the <a href="https://kubernetes.io/docs/reference/kubernetes-api/" rel="nofollow noreferrer">Kubernetes API reference</a> e.g. for <a href="https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/" rel="nofollow noreferrer">Deployment</a>.</p>
<p>But when developing, the easiest way is to use <code>kubectl explain &lt;resource&gt;</code> and navigate deeper, e.g:</p>
<pre><code>kubectl explain Deployment.spec
</code></pre>
<p>and then deeper, e.g:</p>
<pre><code>kubectl explain Deployment.spec.template
</code></pre>
