-
Notifications
You must be signed in to change notification settings - Fork 1.8k
Description
Today, a spec is considered a Custom Task when APIVersion and Kind are non-empty.
If a user sets apiVersion to "tekton.dev/v1beta1" and kind to "Task", a CustomRun will be created instead of a TaskRun.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: hello-world
spec:
steps:
- name: echo
image: ubuntu
command:
- echo
args:
- "hello world"
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: pr-
spec:
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Task
name: hello-world
---
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: pr-jphlt
spec:
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Task
name: hello-world
status:
childReferences:
- apiVersion: tekton.dev/v1beta1
kind: CustomRun
name: pr-jphlt-greeting
pipelineTaskName: greeting
conditions:
- lastTransitionTime: "2023-03-29T15:35:22Z"
message: 'Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 1, Skipped: 0'
reason: Running
status: Unknown
type: Succeeded
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Task
name: hello-world
---
apiVersion: tekton.dev/v1beta1
kind: CustomRun
metadata:
name: pr-jphlt-greeting
ownerReferences:
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
name: pr-jphlt
spec:
customRef:
apiVersion: tekton.dev/v1beta1
kind: Task
name: hello-worldIf a user sets apiVersion to "tekton.dev/v1beta1" and kind to "Pipeline", a CustomRun will be created instead of a PipelineRun. This behavior has been been useful for Pipelines in Pipelines Custom Task.
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
name: hello-world
spec:
steps:
- name: echo
image: ubuntu
command:
- echo
args:
- "hello world"
---
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
generateName: pr-
spec:
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
name: hello-world
---
apiVersion: tekton.dev/v1
kind: PipelineRun
metadata:
name: pr-xfb2f
spec:
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
name: hello-world
status:
childReferences:
- apiVersion: tekton.dev/v1beta1
kind: CustomRun
name: pr-xfb2f-greeting
pipelineTaskName: greeting
conditions:
- lastTransitionTime: "2023-03-29T15:43:29Z"
message: 'Tasks Completed: 0 (Failed: 0, Cancelled 0), Incomplete: 1, Skipped: 0'
reason: Running
status: Unknown
type: Succeeded
pipelineSpec:
tasks:
- name: greeting
taskRef:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
name: hello-world
---
apiVersion: tekton.dev/v1beta1
kind: CustomRun
metadata:
name: pr-xfb2f-greeting
ownerReferences:
- apiVersion: tekton.dev/v1beta1
kind: PipelineRun
name: pr-xfb2f
spec:
customRef:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
name: hello-worldThis behavior was initially surprising to me when refactoring isCustomTask in #6447, but it made sense after looking into it more. Was wondering if it may be surprising to users, especially given that @lbernick also raised similar questions during review of #6447. Opened this issue to make this behavior known so that we can discuss whether we're okay with this or we want to make some changes.
cc @tektoncd/core-maintainers