<p>If a Helm deployment's status is <code>failed</code>, what can I do to determine what made it fail?</p>

<p><strong>Helm chart deployment can fail because of the below 3 reasons.</strong></p>
<ol>
<li>Chart is incorrect</li>
<li>Deployment configurations are incorrect.</li>
<li>Problem in Scheduling the containers and service due to some issue(image pull issue, resource quota)</li>
</ol>
<p>The following steps can be performed for debugging.</p>
<p><strong>Chart correctness check</strong></p>
<p>Check the correctness of the chart using helm lint in local</p>
<p><code>helm lint PATH [flags]  Ref: https://helm.sh/docs/helm/helm_lint/</code></p>
<p><strong>Deployment configuration correctness check</strong></p>
<p>Check the correctness of the proposed deployment configuration using the flag --dry-run --debug</p>
<p><code>helm install &lt;ChartName&gt; --dry-run --debug</code></p>
<p><strong>Kubernetes cluster Deployment issue check</strong></p>
<p>To check the issues such as whether container creation is failing due to image pull failure or the pods are not getting scheduled due to resource crunch perform the following diagnostic.</p>
<p>Please add the namespace flag in each of the commands if your deployment is getting deployed in a particular namespace ( append -n &lt;yournamespace_name&gt;).
Look out for the items which are relevant to your helm chart.</p>
<p><code>kubectl get deployment</code></p>
<p><code>kubectl describe deployment  &lt;deployment_id_found_in_previos_step&gt;</code></p>
<p><code>kubectl get rs</code></p>
<p><code>kubectl describe rs &lt;resource_set_id_found_in_previos_step&gt;</code></p>
<p><code>kubectl get pods</code></p>
<p><code>kubectl describe pods &lt;pod_id_found_in_previos_step&gt;</code></p>
<p>See the output of each of the above-mentioned commands.</p>
