diff --git a/examples/v1/pipelineruns/alpha/pipelinerun-inputs-params.yaml b/examples/v1/pipelineruns/alpha/pipelinerun-inputs-params.yaml new file mode 100644 index 00000000000..e10104bb6c6 --- /dev/null +++ b/examples/v1/pipelineruns/alpha/pipelinerun-inputs-params.yaml @@ -0,0 +1,24 @@ +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + generateName: inputs-params- +spec: + inputs: + params: + param1: "1" + param2: "2" + pipelineSpec: + inputs: + params: + param1: + type: string + param2: + type: string + tasks: + - name: generate-suffix + taskSpec: + steps: + - name: echo + image: alpine + script: | + echo $(params.param1)$(params.param2) diff --git a/examples/v1/pipelineruns/alpha/pipelinerun-outputs-results.yaml b/examples/v1/pipelineruns/alpha/pipelinerun-outputs-results.yaml new file mode 100644 index 00000000000..d5a074b6dc9 --- /dev/null +++ b/examples/v1/pipelineruns/alpha/pipelinerun-outputs-results.yaml @@ -0,0 +1,29 @@ +apiVersion: tekton.dev/v1 +kind: PipelineRun +metadata: + generateName: outputs-results- +spec: + pipelineSpec: + outputs: + results: + commit: + value: $(tasks.task1.results.commit) + type: string + sha: + value: $(tasks.task1.results.sha) + type: string + tasks: + - name: task1 + taskSpec: + outputs: + results: + commit: + type: string + sha: + type: string + steps: + - name: echo + image: bash:latest + script: | + echo "abc" | tee $(results.commit.path) + echo "123" | tee $(results.sha.path) diff --git a/pkg/apis/pipeline/v1/openapi_generated.go b/pkg/apis/pipeline/v1/openapi_generated.go index c3011075abc..e1b4ee485bb 100644 --- a/pkg/apis/pipeline/v1/openapi_generated.go +++ b/pkg/apis/pipeline/v1/openapi_generated.go @@ -35,7 +35,11 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ChildStatusReference": schema_pkg_apis_pipeline_v1_ChildStatusReference(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.EmbeddedTask": schema_pkg_apis_pipeline_v1_EmbeddedTask(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.IncludeParams": schema_pkg_apis_pipeline_v1_IncludeParams(ref), + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs": schema_pkg_apis_pipeline_v1_InputSpecs(ref), + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Inputs": schema_pkg_apis_pipeline_v1_Inputs(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Matrix": schema_pkg_apis_pipeline_v1_Matrix(ref), + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs": schema_pkg_apis_pipeline_v1_OutputSpecs(ref), + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs": schema_pkg_apis_pipeline_v1_Outputs(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Param": schema_pkg_apis_pipeline_v1_Param(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec": schema_pkg_apis_pipeline_v1_ParamSpec(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue": schema_pkg_apis_pipeline_v1_ParamValue(ref), @@ -64,6 +68,7 @@ func GetOpenAPIDefinitions(ref common.ReferenceCallback) map[string]common.OpenA "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.RefSource": schema_pkg_apis_pipeline_v1_RefSource(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ResolverRef": schema_pkg_apis_pipeline_v1_ResolverRef(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ResultRef": schema_pkg_apis_pipeline_v1_ResultRef(ref), + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ResultSpec": schema_pkg_apis_pipeline_v1_ResultSpec(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Sidecar": schema_pkg_apis_pipeline_v1_Sidecar(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SidecarState": schema_pkg_apis_pipeline_v1_SidecarState(ref), "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SkippedTask": schema_pkg_apis_pipeline_v1_SkippedTask(ref), @@ -491,6 +496,18 @@ func schema_pkg_apis_pipeline_v1_EmbeddedTask(ref common.ReferenceCallback) comm }, }, }, + "inputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs"), + }, + }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs"), + }, + }, "displayName": { SchemaProps: spec.SchemaProps{ Description: "DisplayName is a user-facing name of the task that may be used to populate a UI.", @@ -610,7 +627,7 @@ func schema_pkg_apis_pipeline_v1_EmbeddedTask(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskMetadata", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Sidecar", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Step", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceDeclaration", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskMetadata", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Sidecar", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Step", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceDeclaration", "k8s.io/api/core/v1.Volume", "k8s.io/apimachinery/pkg/runtime.RawExtension"}, } } @@ -655,6 +672,62 @@ func schema_pkg_apis_pipeline_v1_IncludeParams(ref common.ReferenceCallback) com } } +func schema_pkg_apis_pipeline_v1_InputSpecs(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "params": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec"}, + } +} + +func schema_pkg_apis_pipeline_v1_Inputs(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "params": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue"}, + } +} + func schema_pkg_apis_pipeline_v1_Matrix(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -708,6 +781,62 @@ func schema_pkg_apis_pipeline_v1_Matrix(ref common.ReferenceCallback) common.Ope } } +func schema_pkg_apis_pipeline_v1_OutputSpecs(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "results": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ResultSpec"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ResultSpec"}, + } +} + +func schema_pkg_apis_pipeline_v1_Outputs(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "results": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue"), + }, + }, + }, + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue"}, + } +} + func schema_pkg_apis_pipeline_v1_Param(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -1232,6 +1361,12 @@ func schema_pkg_apis_pipeline_v1_PipelineRunSpec(ref common.ReferenceCallback) c }, }, }, + "inputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Inputs"), + }, + }, "status": { SchemaProps: spec.SchemaProps{ Description: "Used for cancelling a pipelinerun (and maybe more later on)", @@ -1294,7 +1429,7 @@ func schema_pkg_apis_pipeline_v1_PipelineRunSpec(ref common.ReferenceCallback) c }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Param", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRef", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskRunSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskRunTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TimeoutFields", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceBinding"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Inputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Param", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRef", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskRunSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTaskRunTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TimeoutFields", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceBinding"}, } } @@ -1379,6 +1514,12 @@ func schema_pkg_apis_pipeline_v1_PipelineRunStatus(ref common.ReferenceCallback) }, }, }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs"), + }, + }, "pipelineSpec": { SchemaProps: spec.SchemaProps{ Description: "PipelineRunSpec contains the exact spec used to instantiate the run", @@ -1455,7 +1596,7 @@ func schema_pkg_apis_pipeline_v1_PipelineRunStatus(ref common.ReferenceCallback) }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ChildStatusReference", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SkippedTask", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "knative.dev/pkg/apis.Condition"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ChildStatusReference", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SkippedTask", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "knative.dev/pkg/apis.Condition"}, } } @@ -1497,6 +1638,12 @@ func schema_pkg_apis_pipeline_v1_PipelineRunStatusFields(ref common.ReferenceCal }, }, }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs"), + }, + }, "pipelineSpec": { SchemaProps: spec.SchemaProps{ Description: "PipelineRunSpec contains the exact spec used to instantiate the run", @@ -1573,7 +1720,7 @@ func schema_pkg_apis_pipeline_v1_PipelineRunStatusFields(ref common.ReferenceCal }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ChildStatusReference", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SkippedTask", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ChildStatusReference", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SkippedTask", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } @@ -1683,6 +1830,18 @@ func schema_pkg_apis_pipeline_v1_PipelineSpec(ref common.ReferenceCallback) comm }, }, }, + "inputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs"), + }, + }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs"), + }, + }, "workspaces": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -1744,7 +1903,7 @@ func schema_pkg_apis_pipeline_v1_PipelineSpec(ref common.ReferenceCallback) comm }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTask", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineWorkspaceDeclaration"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineTask", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PipelineWorkspaceDeclaration"}, } } @@ -2302,6 +2461,52 @@ func schema_pkg_apis_pipeline_v1_ResultRef(ref common.ReferenceCallback) common. } } +func schema_pkg_apis_pipeline_v1_ResultSpec(ref common.ReferenceCallback) common.OpenAPIDefinition { + return common.OpenAPIDefinition{ + Schema: spec.Schema{ + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + Properties: map[string]spec.Schema{ + "type": { + SchemaProps: spec.SchemaProps{ + Description: "Name string `json:\"name\"`", + Type: []string{"string"}, + Format: "", + }, + }, + "description": { + SchemaProps: spec.SchemaProps{ + Type: []string{"string"}, + Format: "", + }, + }, + "properties": { + SchemaProps: spec.SchemaProps{ + Type: []string{"object"}, + AdditionalProperties: &spec.SchemaOrBool{ + Allows: true, + Schema: &spec.Schema{ + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PropertySpec"), + }, + }, + }, + }, + }, + "value": { + SchemaProps: spec.SchemaProps{ + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue"), + }, + }, + }, + }, + }, + Dependencies: []string{ + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamValue", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.PropertySpec"}, + } +} + func schema_pkg_apis_pipeline_v1_Sidecar(ref common.ReferenceCallback) common.OpenAPIDefinition { return common.OpenAPIDefinition{ Schema: spec.Schema{ @@ -3605,6 +3810,12 @@ func schema_pkg_apis_pipeline_v1_TaskRunSpec(ref common.ReferenceCallback) commo }, }, }, + "inputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Inputs"), + }, + }, "serviceAccountName": { SchemaProps: spec.SchemaProps{ Default: "", @@ -3723,7 +3934,7 @@ func schema_pkg_apis_pipeline_v1_TaskRunSpec(ref common.ReferenceCallback) commo }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/pod.Template", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Param", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRef", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunDebug", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunSidecarSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStepSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceBinding", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/pod.Template", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Inputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Param", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRef", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunDebug", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunSidecarSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStepSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceBinding", "k8s.io/api/core/v1.ResourceRequirements", "k8s.io/apimachinery/pkg/apis/meta/v1.Duration"}, } } @@ -3854,6 +4065,12 @@ func schema_pkg_apis_pipeline_v1_TaskRunStatus(ref common.ReferenceCallback) com }, }, }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs"), + }, + }, "sidecars": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -3906,7 +4123,7 @@ func schema_pkg_apis_pipeline_v1_TaskRunStatus(ref common.ReferenceCallback) com }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SidecarState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStatus", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "knative.dev/pkg/apis.Condition"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SidecarState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStatus", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.Time", "knative.dev/pkg/apis.Condition"}, } } @@ -3994,6 +4211,12 @@ func schema_pkg_apis_pipeline_v1_TaskRunStatusFields(ref common.ReferenceCallbac }, }, }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs"), + }, + }, "sidecars": { VendorExtensible: spec.VendorExtensible{ Extensions: spec.Extensions{ @@ -4046,7 +4269,7 @@ func schema_pkg_apis_pipeline_v1_TaskRunStatusFields(ref common.ReferenceCallbac }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SidecarState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStatus", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Outputs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Provenance", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.SidecarState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepState", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskRunStatus", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskSpec", "k8s.io/apimachinery/pkg/apis/meta/v1.Time"}, } } @@ -4107,6 +4330,18 @@ func schema_pkg_apis_pipeline_v1_TaskSpec(ref common.ReferenceCallback) common.O }, }, }, + "inputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs"), + }, + }, + "outputs": { + SchemaProps: spec.SchemaProps{ + Default: map[string]interface{}{}, + Ref: ref("github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs"), + }, + }, "displayName": { SchemaProps: spec.SchemaProps{ Description: "DisplayName is a user-facing name of the task that may be used to populate a UI.", @@ -4226,7 +4461,7 @@ func schema_pkg_apis_pipeline_v1_TaskSpec(ref common.ReferenceCallback) common.O }, }, Dependencies: []string{ - "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Sidecar", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Step", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceDeclaration", "k8s.io/api/core/v1.Volume"}, + "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.InputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.OutputSpecs", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.ParamSpec", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Sidecar", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.Step", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.StepTemplate", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.TaskResult", "github.com/tektoncd/pipeline/pkg/apis/pipeline/v1.WorkspaceDeclaration", "k8s.io/api/core/v1.Volume"}, } } diff --git a/pkg/apis/pipeline/v1/param_types.go b/pkg/apis/pipeline/v1/param_types.go index 86fe6ce3e72..4f959aee462 100644 --- a/pkg/apis/pipeline/v1/param_types.go +++ b/pkg/apis/pipeline/v1/param_types.go @@ -58,6 +58,18 @@ type ParamSpec struct { // ParamSpecs is a list of ParamSpec type ParamSpecs []ParamSpec +type ParamSpecsMap map[string]ParamSpec + +type ParamsMap map[string]ParamValue + +type InputSpecs struct{ + ParamSpecs ParamSpecsMap `json:"params,omitempty"` +} + +type Inputs struct{ + Params ParamsMap `json:"params,omitempty"` +} + // PropertySpec defines the struct for object keys type PropertySpec struct { Type ParamType `json:"type,omitempty"` diff --git a/pkg/apis/pipeline/v1/pipeline_defaults.go b/pkg/apis/pipeline/v1/pipeline_defaults.go index a6c7190e8e1..770be10f939 100644 --- a/pkg/apis/pipeline/v1/pipeline_defaults.go +++ b/pkg/apis/pipeline/v1/pipeline_defaults.go @@ -32,6 +32,19 @@ func (p *Pipeline) SetDefaults(ctx context.Context) { // SetDefaults sets default values for the PipelineSpec's Params, Tasks, and Finally func (ps *PipelineSpec) SetDefaults(ctx context.Context) { + if len(ps.Inputs.ParamSpecs)!=0 && len(ps.Params)==0{ + for name,value := range ps.Inputs.ParamSpecs{ + value.Name=name + psc:=value.DeepCopy() + ps.Params = append(ps.Params, *psc) + } + } + if len(ps.Outputs.ResultSpecs)!=0 && len(ps.Results)==0{ + for name,value := range ps.Outputs.ResultSpecs{ + rs:=PipelineResult{Name: name, Type: value.Type, Value: *value.Value, Description: value.Description} + ps.Results = append(ps.Results, rs) + } + } for i := range ps.Params { ps.Params[i].SetDefaults(ctx) } diff --git a/pkg/apis/pipeline/v1/pipeline_types.go b/pkg/apis/pipeline/v1/pipeline_types.go index 25613f1a41a..55fc7d9fffc 100644 --- a/pkg/apis/pipeline/v1/pipeline_types.go +++ b/pkg/apis/pipeline/v1/pipeline_types.go @@ -109,6 +109,10 @@ type PipelineSpec struct { // this Pipeline is run. // +listType=atomic Params ParamSpecs `json:"params,omitempty"` + + Inputs InputSpecs `json:"inputs,omitempty"` + + Outputs OutputSpecs `json:"outputs,omitempty"` // Workspaces declares a set of named workspaces that are expected to be // provided by a PipelineRun. // +optional diff --git a/pkg/apis/pipeline/v1/pipelinerun_defaults.go b/pkg/apis/pipeline/v1/pipelinerun_defaults.go index 19f00f700b8..deb4571bfcb 100644 --- a/pkg/apis/pipeline/v1/pipelinerun_defaults.go +++ b/pkg/apis/pipeline/v1/pipelinerun_defaults.go @@ -48,6 +48,11 @@ func (pr *PipelineRun) SetDefaults(ctx context.Context) { // SetDefaults implements apis.Defaultable func (prs *PipelineRunSpec) SetDefaults(ctx context.Context) { + if len(prs.Inputs.Params)!=0{ + for name,value := range prs.Inputs.Params{ + prs.Params = append(prs.Params, Param{Name: name, Value: value}) + } + } cfg := config.FromContextOrDefaults(ctx) if prs.PipelineRef != nil && prs.PipelineRef.Name == "" && prs.PipelineRef.Resolver == "" { prs.PipelineRef.Resolver = ResolverName(cfg.Defaults.DefaultResolverType) diff --git a/pkg/apis/pipeline/v1/pipelinerun_types.go b/pkg/apis/pipeline/v1/pipelinerun_types.go index fda0168c09b..7d95da66468 100644 --- a/pkg/apis/pipeline/v1/pipelinerun_types.go +++ b/pkg/apis/pipeline/v1/pipelinerun_types.go @@ -255,6 +255,7 @@ type PipelineRunSpec struct { // +listType=atomic Params Params `json:"params,omitempty"` + Inputs Inputs `json:"inputs,omitempty"` // Used for cancelling a pipelinerun (and maybe more later on) // +optional Status PipelineRunSpecStatus `json:"status,omitempty"` @@ -494,6 +495,8 @@ type PipelineRunStatusFields struct { // +listType=atomic Results []PipelineRunResult `json:"results,omitempty"` + Outputs Outputs `json:"outputs,omitempty"` + // PipelineRunSpec contains the exact spec used to instantiate the run PipelineSpec *PipelineSpec `json:"pipelineSpec,omitempty"` diff --git a/pkg/apis/pipeline/v1/result_types.go b/pkg/apis/pipeline/v1/result_types.go index 3a5b97d9190..db23aac113d 100644 --- a/pkg/apis/pipeline/v1/result_types.go +++ b/pkg/apis/pipeline/v1/result_types.go @@ -72,3 +72,23 @@ var AllResultsTypes = []ResultsType{ResultsTypeString, ResultsTypeArray, Results func ResultsArrayReference(a string) string { return strings.TrimSuffix(strings.TrimSuffix(strings.TrimPrefix(a, "$("), ")"), "[*]") } + +type ResultsSpecsMap map[string]ResultSpec + +type ResultsMap map[string]ResultValue + +type ResultSpec struct{ + Name string `json:"name"` + Type ResultsType `json:"type,omitempty"` + Description string `json:"description,omitempty"` + Properties map[string]PropertySpec `json:"properties,omitempty"` + Value *ResultValue `json:"value,omitempty"` +} + +type OutputSpecs struct{ + ResultSpecs map[string]ResultSpec `json:"results,omitempty"` +} + +type Outputs struct{ + ResultsMap map[string]ResultValue `json:"results,omitempty"` +} diff --git a/pkg/apis/pipeline/v1/task_defaults.go b/pkg/apis/pipeline/v1/task_defaults.go index 77a38425f23..8b3c0e6e166 100644 --- a/pkg/apis/pipeline/v1/task_defaults.go +++ b/pkg/apis/pipeline/v1/task_defaults.go @@ -31,6 +31,19 @@ func (t *Task) SetDefaults(ctx context.Context) { // SetDefaults set any defaults for the task spec func (ts *TaskSpec) SetDefaults(ctx context.Context) { + if len(ts.Inputs.ParamSpecs)!=0 && len(ts.Params)==0{ + for name,value := range ts.Inputs.ParamSpecs{ + psc:=value + psc.Name=name + ts.Params = append(ts.Params, psc) + } + } + if len(ts.Outputs.ResultSpecs)!=0 && len(ts.Results)==0{ + for name,value := range ts.Outputs.ResultSpecs{ + rs:=TaskResult{Name: name, Type: value.Type, Properties: value.Properties, Description: value.Description} + ts.Results = append(ts.Results, rs) + } + } for i := range ts.Params { ts.Params[i].SetDefaults(ctx) } diff --git a/pkg/apis/pipeline/v1/task_types.go b/pkg/apis/pipeline/v1/task_types.go index 894590508ff..bfa6ee48f45 100644 --- a/pkg/apis/pipeline/v1/task_types.go +++ b/pkg/apis/pipeline/v1/task_types.go @@ -83,6 +83,9 @@ type TaskSpec struct { // +listType=atomic Params ParamSpecs `json:"params,omitempty"` + Inputs InputSpecs `json:"inputs,omitempty"` + + Outputs OutputSpecs `json:"outputs,omitempty"` // DisplayName is a user-facing name of the task that may be // used to populate a UI. // +optional diff --git a/pkg/apis/pipeline/v1/taskrun_defaults.go b/pkg/apis/pipeline/v1/taskrun_defaults.go index 79fa50f3cdc..d303ce1277c 100644 --- a/pkg/apis/pipeline/v1/taskrun_defaults.go +++ b/pkg/apis/pipeline/v1/taskrun_defaults.go @@ -57,6 +57,11 @@ func (tr *TaskRun) SetDefaults(ctx context.Context) { // SetDefaults implements apis.Defaultable func (trs *TaskRunSpec) SetDefaults(ctx context.Context) { + if len(trs.Inputs.Params)!=0{ + for name,value := range trs.Inputs.Params{ + trs.Params = append(trs.Params, Param{Name: name, Value: value}) + } + } cfg := config.FromContextOrDefaults(ctx) if trs.TaskRef != nil { if trs.TaskRef.Kind == "" { diff --git a/pkg/apis/pipeline/v1/taskrun_types.go b/pkg/apis/pipeline/v1/taskrun_types.go index 30095d53525..679eedad515 100644 --- a/pkg/apis/pipeline/v1/taskrun_types.go +++ b/pkg/apis/pipeline/v1/taskrun_types.go @@ -38,6 +38,8 @@ type TaskRunSpec struct { // +optional // +listType=atomic Params Params `json:"params,omitempty"` + + Inputs Inputs `json:"inputs,omitempty"` // +optional ServiceAccountName string `json:"serviceAccountName"` // no more than one of the TaskRef and TaskSpec may be specified. @@ -227,6 +229,8 @@ type TaskRunStatusFields struct { // +listType=atomic Results []TaskRunResult `json:"results,omitempty"` + Outputs Outputs `json:"outputs,omitempty"` + // The list has one entry per sidecar in the manifest. Each entry is // represents the imageid of the corresponding sidecar. // +listType=atomic diff --git a/pkg/apis/pipeline/v1/zz_generated.deepcopy.go b/pkg/apis/pipeline/v1/zz_generated.deepcopy.go index 484d08a4341..78a956a6f0c 100644 --- a/pkg/apis/pipeline/v1/zz_generated.deepcopy.go +++ b/pkg/apis/pipeline/v1/zz_generated.deepcopy.go @@ -169,6 +169,52 @@ func (in IncludeParamsList) DeepCopy() IncludeParamsList { return *out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *InputSpecs) DeepCopyInto(out *InputSpecs) { + *out = *in + if in.ParamSpecs != nil { + in, out := &in.ParamSpecs, &out.ParamSpecs + *out = make(ParamSpecsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new InputSpecs. +func (in *InputSpecs) DeepCopy() *InputSpecs { + if in == nil { + return nil + } + out := new(InputSpecs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Inputs) DeepCopyInto(out *Inputs) { + *out = *in + if in.Params != nil { + in, out := &in.Params, &out.Params + *out = make(ParamsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Inputs. +func (in *Inputs) DeepCopy() *Inputs { + if in == nil { + return nil + } + out := new(Inputs) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Matrix) DeepCopyInto(out *Matrix) { *out = *in @@ -199,6 +245,52 @@ func (in *Matrix) DeepCopy() *Matrix { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *OutputSpecs) DeepCopyInto(out *OutputSpecs) { + *out = *in + if in.ResultSpecs != nil { + in, out := &in.ResultSpecs, &out.ResultSpecs + *out = make(map[string]ResultSpec, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new OutputSpecs. +func (in *OutputSpecs) DeepCopy() *OutputSpecs { + if in == nil { + return nil + } + out := new(OutputSpecs) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *Outputs) DeepCopyInto(out *Outputs) { + *out = *in + if in.ResultsMap != nil { + in, out := &in.ResultsMap, &out.ResultsMap + *out = make(map[string]ParamValue, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new Outputs. +func (in *Outputs) DeepCopy() *Outputs { + if in == nil { + return nil + } + out := new(Outputs) + in.DeepCopyInto(out) + return out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Param) DeepCopyInto(out *Param) { *out = *in @@ -266,6 +358,28 @@ func (in ParamSpecs) DeepCopy() ParamSpecs { return *out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ParamSpecsMap) DeepCopyInto(out *ParamSpecsMap) { + { + in := &in + *out = make(ParamSpecsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamSpecsMap. +func (in ParamSpecsMap) DeepCopy() ParamSpecsMap { + if in == nil { + return nil + } + out := new(ParamSpecsMap) + in.DeepCopyInto(out) + return *out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *ParamValue) DeepCopyInto(out *ParamValue) { *out = *in @@ -316,6 +430,28 @@ func (in Params) DeepCopy() Params { return *out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ParamsMap) DeepCopyInto(out *ParamsMap) { + { + in := &in + *out = make(ParamsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ParamsMap. +func (in ParamsMap) DeepCopy() ParamsMap { + if in == nil { + return nil + } + out := new(ParamsMap) + in.DeepCopyInto(out) + return *out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Pipeline) DeepCopyInto(out *Pipeline) { *out = *in @@ -536,6 +672,7 @@ func (in *PipelineRunSpec) DeepCopyInto(out *PipelineRunSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Inputs.DeepCopyInto(&out.Inputs) if in.Timeouts != nil { in, out := &in.Timeouts, &out.Timeouts *out = new(TimeoutFields) @@ -605,6 +742,7 @@ func (in *PipelineRunStatusFields) DeepCopyInto(out *PipelineRunStatusFields) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Outputs.DeepCopyInto(&out.Outputs) if in.PipelineSpec != nil { in, out := &in.PipelineSpec, &out.PipelineSpec *out = new(PipelineSpec) @@ -698,6 +836,8 @@ func (in *PipelineSpec) DeepCopyInto(out *PipelineSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Inputs.DeepCopyInto(&out.Inputs) + in.Outputs.DeepCopyInto(&out.Outputs) if in.Workspaces != nil { in, out := &in.Workspaces, &out.Workspaces *out = make([]PipelineWorkspaceDeclaration, len(*in)) @@ -1070,6 +1210,78 @@ func (in *ResultRef) DeepCopy() *ResultRef { return out } +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in *ResultSpec) DeepCopyInto(out *ResultSpec) { + *out = *in + if in.Properties != nil { + in, out := &in.Properties, &out.Properties + *out = make(map[string]PropertySpec, len(*in)) + for key, val := range *in { + (*out)[key] = val + } + } + if in.Value != nil { + in, out := &in.Value, &out.Value + *out = new(ParamValue) + (*in).DeepCopyInto(*out) + } + return +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResultSpec. +func (in *ResultSpec) DeepCopy() *ResultSpec { + if in == nil { + return nil + } + out := new(ResultSpec) + in.DeepCopyInto(out) + return out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ResultsMap) DeepCopyInto(out *ResultsMap) { + { + in := &in + *out = make(ResultsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResultsMap. +func (in ResultsMap) DeepCopy() ResultsMap { + if in == nil { + return nil + } + out := new(ResultsMap) + in.DeepCopyInto(out) + return *out +} + +// DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. +func (in ResultsSpecsMap) DeepCopyInto(out *ResultsSpecsMap) { + { + in := &in + *out = make(ResultsSpecsMap, len(*in)) + for key, val := range *in { + (*out)[key] = *val.DeepCopy() + } + return + } +} + +// DeepCopy is an autogenerated deepcopy function, copying the receiver, creating a new ResultsSpecsMap. +func (in ResultsSpecsMap) DeepCopy() ResultsSpecsMap { + if in == nil { + return nil + } + out := new(ResultsSpecsMap) + in.DeepCopyInto(out) + return *out +} + // DeepCopyInto is an autogenerated deepcopy function, copying the receiver, writing into out. in must be non-nil. func (in *Sidecar) DeepCopyInto(out *Sidecar) { *out = *in @@ -1621,6 +1833,7 @@ func (in *TaskRunSpec) DeepCopyInto(out *TaskRunSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Inputs.DeepCopyInto(&out.Inputs) if in.TaskRef != nil { in, out := &in.TaskRef, &out.TaskRef *out = new(TaskRef) @@ -1730,6 +1943,7 @@ func (in *TaskRunStatusFields) DeepCopyInto(out *TaskRunStatusFields) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Outputs.DeepCopyInto(&out.Outputs) if in.Sidecars != nil { in, out := &in.Sidecars, &out.Sidecars *out = make([]SidecarState, len(*in)) @@ -1794,6 +2008,8 @@ func (in *TaskSpec) DeepCopyInto(out *TaskSpec) { (*in)[i].DeepCopyInto(&(*out)[i]) } } + in.Inputs.DeepCopyInto(&out.Inputs) + in.Outputs.DeepCopyInto(&out.Outputs) if in.Steps != nil { in, out := &in.Steps, &out.Steps *out = make([]Step, len(*in))