Tekton TaskRun: Difference between revisions
(Created page with "=External= =Internal= =Overview=") |
|||
Line 2: | Line 2: | ||
=Internal= | =Internal= | ||
=Overview= | =Overview= | ||
A '''task run''' (or '''taskRun''') instantiates a specific [[#Task|task]] to execute on a particular set of [[#Input|inputs]] and produce a particular set of [[#Output|outputs]], within specific conditions (for example, build flags). A task run connects [[#Resource|resources]] with [[#Task|tasks]]. A task run can be created individually via CLI, by a [[#PipelineRun|pipeline run]], as part of a pipeline, or by a Tekton components such as [[#Tekton_Trigger|Tekton Triggers]]. The task run is implemented as a Kubernetes custom resource. | |||
The task run can be used to parameterize the task. Specific values for [[#Task_Parameters|task parameters]] can be declared in the task run. | |||
===TaskRun Example=== | |||
A simple taskrun example: | |||
<syntaxhighlight lang='yaml'> | |||
apiVersion: tekton.dev/v1beta1 | |||
kind: TaskRun | |||
metadata: | |||
name: hello-task-run | |||
spec: | |||
taskRef: | |||
name: hello | |||
</syntaxhighlight> | |||
===TaskRun Manifest=== | |||
<font size=-1> | |||
apiVersion: tekton.dev/v1beta1 <font color=teal># required field</font> | |||
kind: TaskRun <font color=teal> # required field</font> | |||
metadata: <font color=teal> # required field</font> | |||
name: <font color=indigo><''taskrun-name''></font> <font color=teal> # required field</font> | |||
spec: <font color=teal> # required field</font> | |||
[[#TaskRun_Parameters|params]]: | |||
- name: <font color=indigo><''parameter-name''></font> | |||
value: <font color=indigo><''some-value''></font> | |||
[[#TaskRun_Service_Account|serviceAccountName]]: <font color=indigo><''service-account-name''></font> | |||
<span id='taskRef'></span>taskRef: <font color=teal> # one of 'taskRef' and 'taskSpec' is required</font> | |||
name: <font color=indigo><''target-task-name''></font> | |||
taskSpec: <font color=teal> # one of 'taskRef' and 'taskSpec' is required</font> | |||
[[#TaskRun_Pod_Template|podTemplate]]: | |||
schedulerName: <font color=indigo><''scheduler-name''></font> | |||
securityContext: | |||
runAsNonRoot: true | |||
runAsUser: 1001 | |||
volumes: | |||
- name: <font color=indigo><''volume-name''></font> | |||
persistentVolumeClaim: | |||
claimName: <font color=indigo><''claim-name''></font> | |||
[[#TaskRun_Workspace|workspaces]]: | |||
- name: <font color=indigo><''workspace-name''></font> <font color=teal># must match workspace name in the Task</font> | |||
persistentVolumeClaim: | |||
claimName: <font color=indigo><''claim-name''> <font color=teal># the PVC must already exist</font> | |||
subPath: my-subdir | |||
[[#TaskRun_Sidecar|sidecars]]: | |||
- ... | |||
</font> | |||
===Specifying the Target Task=== | |||
The target task can be specified either by reference, as shown [[#taskRef|above]], or embedding the task specification under <code>taskSpec</code>. | |||
===Tekton Bundle=== | |||
A '''Tekton bundle''' is an OCI artifact that contains resources like [[#Task|tasks]]. The tasks published within a bundle can be referenced within a <code>taskRef</code>: | |||
<font size=-1> | |||
kind: TaskRun | |||
spec: | |||
taskRef: | |||
name: some-task | |||
bundle: docker.io/myrepo/mybundle[:''tag''] | |||
</font> | |||
<font color=darkkhaki>TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#tekton-bundles</font> | |||
===Remote Task=== | |||
<font color=darkkhaki>TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#remote-tasks</font> | |||
===TaskRun Parameters=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-parameters}} | |||
This section specifies value for the [[#Task_Parameters|execution parameters of the corresponding task]]. | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
====Implicit Parameters==== | |||
<font color=darkkhaki>TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#implicit-parameters</font> | |||
====Extra Parameters==== | |||
<font color=darkkhaki>TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#extra-parameters</font> | |||
===TaskRun Resources=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-resources}} | |||
[[#PipelineResource|PipelineResources]] are deprecated. This field is valid for alpha only. | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
===TaskRun Pod Template=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-a-pod-template}} | |||
The pod template, if specifies, serves are the configuration starting point for the pod in which the container images specified by the task will execute. This permits customization of the pod configuration, to make it specific to this task run. | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
===TaskRun Workspace=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-workspaces}} | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
===TaskRun Sidecar=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-sidecars}} | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
===TaskRun Timeout=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#configuring-the-failure-timeout}} | |||
<font color=darkkhaki>TO PROCESS.</font> | |||
===TaskRun Service Account=== | |||
{{External|https://tekton.dev/docs/pipelines/taskruns/#specifying-serviceaccount-credentials}} | |||
<font color=darkkhaki>TO PROCESS: | |||
* https://tekton.dev/docs/pipelines/taskruns/#specifying-serviceaccount-credentials | |||
* https://tekton.dev/docs/pipelines/taskruns/#example-of-using-custom-serviceaccount-credentials | |||
</font> | |||
===TaskRun Life Cycle=== | |||
<font color=darkkhaki>TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#monitoring-execution-status</font> | |||
===TaskRun Operations=== | |||
* [[Tekton_Operations#List_TaskRuns|List taskruns]] | |||
* [[Tekton_Operations#Display_Execution_Log_of_a_TaskRun|Display execution log of a taskrun]] | |||
* [[Tekton_Operations#Cancel_TaskRuns|Cancel a taskrun]] |
Revision as of 00:13, 29 April 2022
External
Internal
Overview
A task run (or taskRun) instantiates a specific task to execute on a particular set of inputs and produce a particular set of outputs, within specific conditions (for example, build flags). A task run connects resources with tasks. A task run can be created individually via CLI, by a pipeline run, as part of a pipeline, or by a Tekton components such as Tekton Triggers. The task run is implemented as a Kubernetes custom resource.
The task run can be used to parameterize the task. Specific values for task parameters can be declared in the task run.
TaskRun Example
A simple taskrun example:
apiVersion: tekton.dev/v1beta1
kind: TaskRun
metadata:
name: hello-task-run
spec:
taskRef:
name: hello
TaskRun Manifest
apiVersion: tekton.dev/v1beta1 # required field kind: TaskRun # required field metadata: # required field name: <taskrun-name> # required field spec: # required field params: - name: <parameter-name> value: <some-value> serviceAccountName: <service-account-name> taskRef: # one of 'taskRef' and 'taskSpec' is required name: <target-task-name> taskSpec: # one of 'taskRef' and 'taskSpec' is required podTemplate: schedulerName: <scheduler-name> securityContext: runAsNonRoot: true runAsUser: 1001 volumes: - name: <volume-name> persistentVolumeClaim: claimName: <claim-name> workspaces: - name: <workspace-name> # must match workspace name in the Task persistentVolumeClaim: claimName: <claim-name> # the PVC must already exist subPath: my-subdir sidecars: - ...
Specifying the Target Task
The target task can be specified either by reference, as shown above, or embedding the task specification under taskSpec
.
Tekton Bundle
A Tekton bundle is an OCI artifact that contains resources like tasks. The tasks published within a bundle can be referenced within a taskRef
:
kind: TaskRun spec: taskRef: name: some-task bundle: docker.io/myrepo/mybundle[:tag]
TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#tekton-bundles
Remote Task
TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#remote-tasks
TaskRun Parameters
This section specifies value for the execution parameters of the corresponding task.
TO PROCESS.
Implicit Parameters
TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#implicit-parameters
Extra Parameters
TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#extra-parameters
TaskRun Resources
PipelineResources are deprecated. This field is valid for alpha only. TO PROCESS.
TaskRun Pod Template
The pod template, if specifies, serves are the configuration starting point for the pod in which the container images specified by the task will execute. This permits customization of the pod configuration, to make it specific to this task run. TO PROCESS.
TaskRun Workspace
TO PROCESS.
TaskRun Sidecar
TO PROCESS.
TaskRun Timeout
TO PROCESS.
TaskRun Service Account
TO PROCESS:
- https://tekton.dev/docs/pipelines/taskruns/#specifying-serviceaccount-credentials
- https://tekton.dev/docs/pipelines/taskruns/#example-of-using-custom-serviceaccount-credentials
TaskRun Life Cycle
TO PROCESS: https://tekton.dev/docs/pipelines/taskruns/#monitoring-execution-status