<p>I use a kubernetes manifest file to deploy my code. My manifest typically has a number of things like Deployment, Service, Ingress, etc.. How can I perform a type of &quot;rollout&quot; or &quot;restart&quot; of everything that was applied with my manifest?</p>
<p>I know I can update my deployment say by running</p>
<pre><code>kubectl rollout restart deployment &lt;deployment name&gt; 
</code></pre>
<p>but what if I need to update all resources like ingress/service? Can it all be done together?</p>

alex
<p><em>This is a Community Wiki answer so feel free to edit it and add any additional details you consider important.</em></p>
<p>As <a href="https://stackoverflow.com/users/11923999/burak-serdar">Burak Serdar</a> has already suggested in his comment, you can simply use:</p>
<pre><code>kubectl apply -f your-manifest.yaml
</code></pre>
<p>and it will apply all the changes you made in your manifest file to the resources, which are already deployed.</p>
<p>However note that running:</p>
<pre><code>kubectl rollout restart -f your-manifest.yaml
</code></pre>
<p>makes not much sense as this file contains definitions of resources such as <code>Services</code> to which <code>kubectl rollout restart</code> cannot be applied. In consequence you'll see the following error:</p>
<pre><code>$ kubectl rollout restart -f deployment-and-service.yaml
deployment.apps/my-nginx restarted
error: services &quot;my-nginx&quot; restarting is not supported
</code></pre>
<p>So as you can see it is perfectly possible to run <code>kubectl rollout restart</code> against a file that contains definitions of both resources that support this operation and those which do not support it.</p>
<p>Running <code>kubectl apply</code> instead will result in update of all the resources which definition has changed in your manifest:</p>
<pre><code>$ kubectl apply -f deployment-and-service.yaml
deployment.apps/my-nginx configured
service/my-nginx configured
</code></pre>
