<p>First off, I'm completely new with Kubernetes so I may have missed something completely obvious but the documentation is exactly helping, so I'm turning to you guys for help.</p>

<p>I'm trying to figure out just how many types of "deployment files" there are for Kubernetes.  I call them "deployment files" because I really don't know what else to call them and they're usually associated with a deployment.</p>

<p>So far, every yml/yaml file I've seen start like this:</p>

<pre><code>apiVersion:
kind: &lt;&lt; this is what I'm asking about &gt;&gt;
metadata:
</code></pre>

<p>And so far I have seen this many "kind"(s)</p>

<pre><code>ClusterConfig
ClusterRole
ClusterRoleBinding
CronJob
Deployment
Job
PersistentVolumeClaim
Pod
ReplicationController
Role
RoleBinding
Secret
Service
ServiceAccount
</code></pre>

<p>I'm sure there are many more.  But I can't seem to find a location where they are listed and the contexts broken down.</p>

<p>So what I want to know is this, </p>

<ol>
<li>Where can I find an explanation for these yaml files?</li>
<li>Where can I learn about the different kinds?</li>
<li>Where can I get a broken down explanation of the minimum required fields/values are for any of these?</li>
<li>Are there templates for these files?</li>
</ol>

<p>Thanks</p>

<p>This question will need a blog to answer but still in short you can try these options and command to learn from your kubectl CLI.</p>

<p>Learn to use <strong>kubectl explain</strong> command which shows you a list of Kubernetes objects:</p>

<p><code>$ kubectl explain</code></p>

<p>You can get detailed information about any of listed resources using this syntax</p>

<p>`$ kubectl explain pod</p>

<p>$ kubectl explain pod.spec</p>

<p>$ kubectl explain pod.spec.containers`</p>

<p>Or you can get yam template of the object by adding --recursive flag to explain command.</p>

<p><code>$ kubectl explain pod --recursive</code></p>

<p>This will also give you official document link.</p>

<p><strong>So in short running kubectl explain with recursive option will list every thing</strong>.</p>
