Skip to content

Commit

Permalink
TEP-0092: Scheduling Timeout - Mark as Deferred
Browse files Browse the repository at this point in the history
TEP-0092 had proposed introducing scheduling timeout to handle
queueing of TaskRuns in resource-constrained environments.

However, the scheduling timeout would have worsened the complexity
of timeouts. We are already exploring adding concurrency controls;
TEP-0120 proposes cancelling concurrent PipelineRuns. We can build
on this work by adding queueing as a concurrency control. The problem
statement for TEP-0132 addressing queueing is in #968.

In this change, we change TEP-0092 from `implementable` to `deferred`.
Once we have a design for TEP-0132, we can revisit marking TEP-0092
as `withdrawn` or `replaced`.
  • Loading branch information
jerop authored and tekton-robot committed Mar 21, 2023
1 parent 1af0bf9 commit 2c0dc89
Show file tree
Hide file tree
Showing 2 changed files with 31 additions and 5 deletions.
34 changes: 30 additions & 4 deletions teps/0092-scheduling-timeout.md
Original file line number Diff line number Diff line change
@@ -1,11 +1,15 @@
---
status: implementable
status: deferred
title: Scheduling Timeout
creation-date: '2021-10-13'
last-updated: '2022-04-11'
last-updated: '2023-02-24'
authors:
- '@bobcatfish'
- '@badamowicz' # author of the original issue (https://github.com/tektoncd/pipeline/issues/4078)
- '@jerop'
see-also:
- TEP-0120
- TEP-0132
---

# TEP-0092: Scheduling Timeout
Expand Down Expand Up @@ -45,8 +49,23 @@ authors:

## Summary

Add runtime configuration options to allow setting a timeout for `TaskRuns` which applies before the `TaskRun's`
underlying pod is scheduled, and only start our existing timeout counters after this timeout has passed, if specified.
This TEP proposed adding runtime configuration options to allow setting a timeout for `TaskRuns` which would have
applied before the `TaskRun's` underlying `Pod` is scheduled, then we would start our existing timeout counters after
this new timeout had passed, if specified. This TEP was previously `implementable`.

However, we are exploring supporting queueing directly instead of adding a queueing/scheduling timeout because:
- the way that queueing timeout works in different scenarios is complicated and the way it interacts with other
timeouts from `PipelineTasks` and `PipelineRuns` (through `TaskRunSpecs` and `TaskRunTemplate`) is even more
complicated - see [attempt][948] to clarify the design
- the main motivation for this proposal was to address queueing TaskRuns in resource-constrained environments; this
problem will be best addressed through a queueing solution instead of relying on a timeout
- queueing and other concurrency controls is a common feature request - see example [feature request][5835] - so
when we add a queueing solution, we'd have had to account for the scheduling timeout which may have caused further
complexity

Adding concurrency controls is already under discussion in [TEP-0120][tep-0120] which proposes cancelling concurrent
`PipelineRuns`. We can build on this work by supporting queueing of concurrent `Runs` - see [problem statement][968]
for TEP-0132. Once we have a design for TEP-0132, we can revisit marking this TEP as `withdrawn` or `replaced`.

## Motivation

Expand Down Expand Up @@ -414,3 +433,10 @@ TBD
## References

* [When does a timeout counter actually start?](https://github.com/tektoncd/pipeline/issues/4078)


[948]: https://github.com/tektoncd/community/pull/948
[968]: https://github.com/tektoncd/community/pull/968
[5835]: https://github.com/tektoncd/pipeline/issues/5835
[tep-0120]: 0120-canceling-concurrent-pipelineruns.md
[tep-0120-fw]: 0120-canceling-concurrent-pipelineruns.md#future-work
2 changes: 1 addition & 1 deletion teps/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -84,7 +84,7 @@ This is the complete list of Tekton TEPs:
|[TEP-0089](0089-nonfalsifiable-provenance-support.md) | Non-falsifiable provenance support | implementable | 2022-01-18 |
|[TEP-0090](0090-matrix.md) | Matrix | implemented | 2022-06-30 |
|[TEP-0091](0091-trusted-resources.md) | Trusted Resources | implementable | 2023-02-23 |
|[TEP-0092](0092-scheduling-timeout.md) | Scheduling Timeout | implementable | 2022-04-11 |
|[TEP-0092](0092-scheduling-timeout.md) | Scheduling Timeout | deferred | 2023-02-24 |
|[TEP-0093](0093-add-sign-verify-subcommand-to-the-cli.md) | Add sign and verify subcommand to the CLI | proposed | 2022-10-05 |
|[TEP-0094](0094-configuring-resources-at-runtime.md) | Configuring Resources at Runtime | implemented | 2022-03-11 |
|[TEP-0095](0095-common-repository-configuration.md) | Common Repository Configuration | proposed | 2021-11-29 |
Expand Down

0 comments on commit 2c0dc89

Please sign in to comment.