gruntwork-io / kubergrunt

Kubergrunt is a standalone go binary with a collection of commands to fill in the gaps between Terraform, Helm, and Kubectl. https://www.gruntwork.io
Apache License 2.0
509 stars 87 forks source link

[eks deploy] Configurable rolling deployment for controlled roll out #91

Open siarhei-karanets-epam opened 4 years ago

siarhei-karanets-epam commented 4 years ago

The current approach with "kubergrunt eks deploy" causes downtime due to the fact that all nodes in a group receive drain simultaneously and all replicas of affected apps (the same for ingress controller, stateful sets, etc) start migration in the same time. Need to improve the update procedure to avoid downtimes.

yorinasub17 commented 4 years ago

Thanks for the highlighting this request! The current idea is to leverage PodDisruptionBudgets to avoid downtime in your apps. This is in general a better approach as it better respects the fine grained requirements of each app while balancing the speed of roll out over large clusters.

That said, having a configuration parameter to control how many nodes to drain and shutdown at a time in a rolling fashion is good to have.