So I created this post because with Helm v3 , if you use --wait option and the timeout is reached and the deployment isn't successful, Helm marks the deployment as failed . The problem is that subsequent deployment (upgrade) that may contain the fix won't work as expected and it will end up in error like this: [some-name] has no deployed release The only way to fix this is manual intervene and deleting the previous failed release. This is not only scary but also against the automation process. If we remove --wait option, Helm will mark the deployment as successful regardless. My solution to this that works nicely is as per below: Remove --wait option from helm deploy Use this command to retrieve the list of deployment for that namespace that you are deploying against: kubectl get deployments -n ${namespace} -o jsonpath='{range .items[*].metadata}{.name}{","}{end}' You can use split to turn the comma separated list above into an array Then you can run mul
Many developers try to learn and implement design patterns and object-oriented principles but most of the time they fail. Many only know those principals but they don't know how to use them or they don't know what they are for. However, there is one principle that can help you from drowning. That is called Simplicity! Simplicity doesn't mean you do the first approach that comes to your mind. That's probably the simplest approach though! Simplicity means that you design a component and write the code in such a way that: Looking at the code, anyone can tell what it's doing Maintaining the code is easy and can be changed easily if needed Debugging is easy and you don't need a million of break-points in order to find the bug. Writing unit test is easy and simple too. The call-hierarchy of the methods in your code is not infinite! If a part is broken and you have to fix it, you don't need to fix everything else. To make your code/component simpl