<p>When I run kubectl delete deployment.yaml, It is displayed on cli that the deployment is deleted. The pod also gets into terminating state. But a new pod is again created with the same deployment and replica-set.</p>
<p>On further digging in I found out that deployment and RS are not being removed. Any reason why deployment and RS wouldn't be removed? Why would the be terminated if deployment isn't removed?</p>
<p>Any leads are appreciated.</p>

Kowshhal
<p>As OP confirmed in the comments that they are running <code>argocd</code> then the recreation of the resources is <strong>expected</strong> behaviour <strong>if</strong> argocd is running in auto sync mode for the impacted namespace.</p>
<p>Here is a short snippet from the document</p>
<blockquote>
<p>Argo CD has the ability to automatically sync an application when it detects differences between the desired manifests in Git, and the live state in the cluster. A benefit of automatic sync is that CI/CD pipelines no longer need direct access to the Argo CD API server to perform the deployment. Instead, the pipeline makes a commit and push to the Git repository with the changes to the manifests in the tracking Git repo.</p>
</blockquote>
<p>Solution: you can disable autosync and monitor the delta and approve sync manually.  <em>This is something decided at project level.</em>  you can read about it <a href="https://argo-cd.readthedocs.io/en/stable/user-guide/auto_sync/#automatic-self-healing" rel="nofollow noreferrer">here</a>.</p>
