<p>What are the required YAML properties in Kubernetes for a DeploymentSpec Object?</p>
<p>Is it metadata, apiVersion, kind, spec, selector, and template?</p>

Happy Classics
<p>According to <a href="https://kubernetes.io/docs/concepts/overview/working-with-objects/kubernetes-objects/#required-fields" rel="nofollow noreferrer">Kubernetes official docs</a>, every kubernetes object needs:</p>
<ol>
<li><p>apiVersion - Which version of the Kubernetes API you're using to create this object</p>
</li>
<li><p>kind - What kind of object you want to create</p>
</li>
<li><p>metadata - Data that helps uniquely identify the object, including a name string, UID, and optional namespace</p>
</li>
<li><p>spec - What state you desire for the object</p>
</li>
</ol>
<p>and format of &quot;spec&quot; is different for every Kubernetes object, so the required values would be different too.</p>
<p>And according to <a href="https://kubernetes.io/docs/reference/kubernetes-api/workload-resources/deployment-v1/#DeploymentSpec" rel="nofollow noreferrer">DeploymentSpec</a>, required values for Deployment Spec are:</p>
<ol>
<li>selector</li>
<li>template</li>
</ol>
<p>but if you use specific conditions like &quot;conditions&quot;, you will need to fill some required fields for them (like conditions.status)</p>
