interactive mode for PipelineRun #4134
Replies: 2 comments 6 replies
-
Thank you for the proposal ! May be you can take a look at this proposal, tektoncd/community#484 . It lets you partially execute a pipeline and also resume/retry a previously run pipeline. |
Beta Was this translation helpful? Give feedback.
-
Hello @QingJuBaiTang - thank you for sharing your idea and use case. The need for human approval - or interaction with an external system in general - has come up before, see the following links: Another way you can interact with external systems is through events. Tekton supports sending Using events you can create distributed workflow, which may involve other systems. The downside of this approach is that your workflow does not fit a single Tekton pipeline anymore. This PoC by the "Events Special Interest Group" might also be of interest for you: https://github.com/cdfoundation/sig-events/tree/main/poc - there we used events to connect Tekton and Keptn. Keptn provides there a manual approval step, which is used to trigger a new Tekton pipeline. Finally, even if the use case is different, the work started at https://github.com/tektoncd/community/blob/main/teps/0042-taskrun-breakpoint-on-failure.md may provide some initial background for interactive execution, since it introduces the ability to interactively execute steps in a Task. Doing the same for a pipeline might be more complex, since pipelines do not necessarily have a linear execution, but it's something worth discussing. |
Beta Was this translation helpful? Give feedback.
-
The execution of tekton pipeline now is totally automated. That what tasks a pipeline includes, the order of the execution of tasks, and whether a taskrun should be retried after failed, and retry times, and so on is pre-defined in the yaml file.
In most cases, especially in CI cases, this pattern can satisfy demand very well, but in some cases, such as CD cases , the process needs human intervention, which can not be well supported now.
For example, we now have an deploy pipeline, prepare to deliver a new version to a host. Before that, we have passed some tasks (merge branch, code quality check, build and test), but finally failed in deploy task, Perhaps the reason of that is a lack of java environment in host, so the pipeline abort and failed. Thus user would have to check and fix the problem, and rerun the whole process, which is not friendly to user. A more reasonable way is to trigger to continue after user check and fix the problem.
so, I propose to introduce "interactive mode", which can be declared in PipelineRun. With this mode on, it means PipelineRun would not be finished automatically until user confirm to close or cancel.
In addition, these features below are supported in this mode:
Beta Was this translation helpful? Give feedback.
All reactions