Add a way to set a timeout for abra deploy
#437
Reference in New Issue
Block a user
No description provided.
Delete Branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Per default
abra deploywaits until every container returns a healthy state.But after a fixed timeout of 50s it will abort.
Many applications need much more time to come up, therefore it would be good to specify a timeout for each app.
I think the compose file could be a good place to specify the timeout, so it will be bound to the application and it won't clutter the .env even more.
Excellent idea @moritz!
I've tried to experiment with those timeout values quite a bit and they vary heavily according to app but also according to the machine you're deploying to. It's hard to get a correct balance but I agree that the naive 50 seconds could really be improved.
Keycloak, for example, often needs much more time no matter the machine.
Are you thinking about a global traefik flag on the recipes or another type of label like https://docs.docker.com/compose/compose-file/compose-file-v3/#labels-1? I don't think there is an existing
timeoutkey we can use in the Compose spec? I only see one inhealthcheck.I thought about a label like
coop-cloud.${STACK_NAME}.timeout=120this could easily be read by abra to set a custom timeout.@moritz oh nice, should we maybe do
coop-cloud.${STACK_NAME}.timeout=${TIMEOUT}and haveTIMEOUT=...option in the.envfile? If this isn't detected, then we default to 50 seconds? Then it's configurable which I think could be important for a long-term solution because the timeout depends on the capacity of the hardware to get the app up and that will always be different. So, e.g. a raspberry pi deploying a keycloak (could be like 2 mins) vs. a powerful desktop machine (could be 1 min).