No downtime as a new node is started first, then the old node is drained and its services are rescheduled to the new node, for each worker in the pool.
Actual behavior
Old nodes are terminated before services (with health checks) are running/healthy on new nodes.
Information
Docker for AWS 18.03.0-ce
Steps to reproduce the behavior
Create a Docker for AWS stack with the default settings.
Deploy some services to it.
Update the stack and change worker instance type or worker storage.
Watch all your sites go down for several minutes after the nodes are terminated, while swarm is still trying to bring services back up.
Expected behavior
No downtime as a new node is started first, then the old node is drained and its services are rescheduled to the new node, for each worker in the pool.
Actual behavior
Old nodes are terminated before services (with health checks) are running/healthy on new nodes.
Information
Docker for AWS 18.03.0-ce
Steps to reproduce the behavior