<p>I'm using helm chart to deploy my application on kubernetes. But services that I'm using in my stack depends on other services how do I make sure helm will not deploy until the dependencies are up?</p>

<p>Typically you don't; you just let Helm (or <code>kubectl apply -f</code>) start everything in one shot and let it retry starting everything.</p>

<p>The most common pattern is for a container process to simply crash at startup if an external service isn't available; the Kubernetes Pod mechanism will restart the container when this happens.  If the dependency never comes up you'll be stuck in CrashLoopBackOff state forever, but if it appears in 5-10 seconds then everything will come up normally within a minute or two.</p>

<p>Also remember that pods of any sort are fairly disposable in Kubernetes.  IME if something isn't working in a service one of the first things to try is <code>kubectl delete pod</code> and letting a Deployment controller recreate it.  Kubernetes can do this on its own too, for example if it decides it needs to relocate a pod on to a different node.  That is: even if some dependency is up when your pod first start sup, there's no guarantee it will stay up forever.</p>
