You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
To speed up deployments, we'll remove the healthcheck step.
This adds some risk to deployments for non-web roles - if they don't
have a Docker healthcheck configured then the only check we do is if
the container is running.
If there is a bad image we might see the container running before it
exits and deploy it. Previously the healthcheck step would have avoided
this by ensuring a web container could boot and serve traffic first.
To mitigate this, we'll add a web barrier. Non web containers will wait
before shutting down the old containers until at least one web
container has passed its healthcheck.
It the web container fails its healthcheck, we'll close the barrier and
shut down the new containers on the non-web roles.
We also have a new integration test to check we correctly handle a
a broken image. This highlighted that SSHKit's default runner will
stop at the first error it encounters. We'll now have a custom runner
that waits for all threads to finish allowing them to clean up.
Finally, we only tag an image as the latest after we have successfully
started the container and passed the web barrier, if applicable.
That means that if we have a deployment that completes on some hosts
but not others we can run `kamal app version --quiet` to see which
version is running on each host.
0 commit comments