concourse: Graceful Timeout Step Modifier
What challenge are you facing?
When using the timeout step modifier and the time limit is reached, the task is interrupted/exited without any graceful termination option.
This is problematic when using an infrastructure provisioning tool like Terraform which does not write the state back unless it gracefully exits. Therefore, we cannot do an on_abort/on_error/on_failure task to cleanup the half created resources.
What would make this better?
The ability to annotate the current timeout step modifier with a similar interface to:
http://man7.org/linux/man-pages/man1/timeout.1.html
My current workaround is to use the above and not use the timeout capability built into Concourse itself.
The proposal would be to enable the follow:
timeout: duration
OR
timeout: {
duration: duration,
signal: signal,
signal_timeout: duration
}
This is a first pass thought, alternatively, potentially allowing timeout to be overridden by a step could achieve a similar behavior?
Are you interested in implementing this yourself?
Yes, I would assist with implementation if there are no major concerns with:
- Potentially breaking backward compatibility (would try not to)
- Providing this functionality.
About this issue
- Original URL
- State: open
- Created 5 years ago
- Comments: 19 (9 by maintainers)
@king-jam any update here? still a big pain point for us in regards to terraform jobs.
That would fall under the same pieces of code. It would end up as a check in whether it is a deadline or cancellation error that triggered it.
We can probably capture it under this and change the name to include both?
On Thu, Feb 6, 2020, 08:07 tjhiggins notifications@github.com wrote: