-
Notifications
You must be signed in to change notification settings - Fork 1.9k
Doc about migrating from v1beta1 to v1 #5415
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change | ||||
|---|---|---|---|---|---|---|
| @@ -0,0 +1,70 @@ | ||||||
| <!-- | ||||||
| --- | ||||||
| linkTitle: "Migrating from Tekton v1beta1" | ||||||
| weight: 4000 | ||||||
| --- | ||||||
| --> | ||||||
|
|
||||||
| # Migrating From Tekton `v1beta1` to Tekton `v1` | ||||||
|
|
||||||
| - [Changes to fields](#changes-to-fields) | ||||||
| - [Upgrading `PipelineRun.Timeout` to `PipelineRun.Timeouts`](#upgrading-pipelinerun.timeout-to-pipelinerun.timeouts) | ||||||
| - [Deprecating Resources from Task, TaskRun, Pipeline and PipelineRun](#deprecating-resources-from-task,-taskrun,-pipeline-and-pipelinerun) | ||||||
| - [Replacing `taskRef.bundle` and `pipelineRef.bundle` with Bundle Resolver](#replacing-taskRef.bundle-and-pipelineRef.bundle-with-bundle-resolver) | ||||||
|
|
||||||
|
|
||||||
| This document describes the differences between `v1beta1` Tekton entities and their | ||||||
| `v1` counterparts. It also describes the changed fields and the deprecated fields into v1. | ||||||
| ## Changes to fields | ||||||
|
|
||||||
| In Tekton `v1`, the following fields have been changed: | ||||||
|
|
||||||
| | Old field | Replacement | | ||||||
| | --------- | ----------| | ||||||
| | `pipelineRun.spec.Timeout`| `pipelineRun.spec.timeouts.pipeline` | | ||||||
| | `pipelineRun.spec.taskRunSpecs.taskServiceAccountName` | `pipelineRun.spec.taskRunSpecs.serviceAccountName` | | ||||||
| | `pipelineRun.spec.taskRunSpecs.taskPodTemplate` | `pipelineRun.spec.taskRunSpecs.podTemplate` | | ||||||
| | `taskRun.status.taskResults` | `taskRun.status.results` | | ||||||
| | `pipelineRun.status.pipelineResults` | `pipelineRun.status.results` | | ||||||
| | `taskRun.spec.taskRef.bundle` | `taskRun.spec.taskRef.resolver` | | ||||||
| | `pipelineRun.spec.pipelineRef.bundle` | `pipelineRun.spec.pipelineRef.resolver` | | ||||||
| | `task.spec.resources` | removed from `Task` | | ||||||
| | `taskrun.spec.resources` | removed from `TaskRun` | | ||||||
| | `pipeline.spec.resources` | removed from `Pipeline` | | ||||||
| | `pipelineRun.spec.resources` | removed from `PipelineRun` | | ||||||
|
|
||||||
| ## Deprecating `resources` from Task, TaskRun, Pipeline and PipelineRun | ||||||
JeromeJu marked this conversation as resolved.
Show resolved
Hide resolved
|
||||||
| `PipelineResources` are deprecated, and the `resources` fields of Task, TaskRun, Pipeline and PipelineRun has been removed. Please use `Tasks` instead. For more information, see [Replacing PipelineResources](https://github.com/tektoncd/pipeline/blob/main/docs/pipelineresources.md) | ||||||
|
|
||||||
| ## Replacing `taskRef.bundle` and `pipelineRef.bundle` with Bundle Resolver | ||||||
| Bundle resolver in remote resolution should be used instead of `taskRun.spec.taskRef.bundle` and `pipelineRun.spec.pipelineRef.bundle`. | ||||||
|
|
||||||
| The [`enable-bundles-resolver`](https://github.com/tektoncd/pipeline/blob/main/docs/install.md#customizing-the-pipelines-controller-behavior) feature flag must be enabled to use this feature. | ||||||
|
|
||||||
| ```yaml | ||||||
| apiVersion: tekton.dev/v1beta1 | ||||||
| kind: Taskrun | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. this comment and the one below were not resolved
Member
Author
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. This might have happened because we changed this to |
||||||
| spec: | ||||||
| taskRef: | ||||||
| name: example-task | ||||||
| bundle: python:3-alpine | ||||||
| --- | ||||||
| apiVersion: tekton.dev/v1beta1 | ||||||
| kind: Taskrun | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
| spec: | ||||||
| taskRef: | ||||||
| resolver: bundles | ||||||
| params: | ||||||
| - name: bundle | ||||||
| value: python:3-alpine | ||||||
| - name: name | ||||||
| value: taskName | ||||||
| - name: kind | ||||||
| value: Task | ||||||
| ``` | ||||||
|
|
||||||
| ## Replacing ClusterTask with Remote Resolution | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Can you give an example of how a cluster task can be replaced with the cluster resolver?
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Good call, PR incoming.
Contributor
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. ha, wait, I thought I was responding to #5415 (comment) 🤦 I'll wait for this and #5405 to land and then open a PR to do that. =) |
||||||
| `ClusterTask` is deprecated. Please use the `cluster` resolver instead, for example: .... | ||||||
| # TODO add example after #5404 is merged | ||||||
|
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
Member
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I don't think this comment was resolved. |
||||||
|
|
||||||
| For more information, see [Remote resolution](https://github.com/tektoncd/community/blob/main/teps/0060-remote-resource-resolution.md). | ||||||
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,137 @@ | ||
| ## Replacing `PipelineResources` with `Tasks` | ||
|
|
||
| `PipelineResources` remained in alpha while the other resource kinds were promoted to beta. | ||
| Since then, **`PipelineResources` have been deprecated**. We encourage users to use `Tasks` and other replacement | ||
JeromeJu marked this conversation as resolved.
Show resolved
Hide resolved
|
||
| features instead of `PipelineResources`. Read more about the deprecation in [TEP-0074](https://github.com/tektoncd/community/blob/main/teps/0074-deprecate-pipelineresources.md). | ||
|
|
||
| _More on the reasoning and what's left to do in | ||
| [Why aren't PipelineResources in Beta?](resources.md#why-aren-t-pipelineresources-in-beta)._ | ||
|
|
||
| To ease migration away from `PipelineResources` | ||
| [some types have an equivalent `Task` in the Catalog](#replacing-pipelineresources-with-tasks). | ||
| To use these replacement `Tasks` you will need to combine them with your existing `Tasks` via a `Pipeline`. | ||
|
|
||
| For example, if you were using this `Task` which was fetching from `git` and building with | ||
| `Kaniko`: | ||
|
|
||
| ```yaml | ||
| apiVersion: tekton.dev/v1alpha1 | ||
| kind: Task | ||
| metadata: | ||
| name: build-push-kaniko | ||
| spec: | ||
| inputs: | ||
| resources: | ||
| - name: workspace | ||
| type: git | ||
| params: | ||
| - name: pathToDockerFile | ||
| description: The path to the dockerfile to build | ||
| default: /workspace/workspace/Dockerfile | ||
| - name: pathToContext | ||
| description: The build context used by Kaniko | ||
| default: /workspace/workspace | ||
| outputs: | ||
| resources: | ||
| - name: builtImage | ||
| type: image | ||
| steps: | ||
| - name: build-and-push | ||
| image: gcr.io/kaniko-project/executor:v0.17.1 | ||
| env: | ||
| - name: "DOCKER_CONFIG" | ||
| value: "/tekton/home/.docker/" | ||
| args: | ||
| - --dockerfile=$(inputs.params.pathToDockerFile) | ||
| - --destination=$(outputs.resources.builtImage.url) | ||
| - --context=$(inputs.params.pathToContext) | ||
| - --oci-layout-path=$(inputs.resources.builtImage.path) | ||
| securityContext: | ||
| runAsUser: 0 | ||
| ``` | ||
|
|
||
| To do the same thing with the `git` catalog `Task` and the kaniko `Task` you will need to combine them in a | ||
| `Pipeline`. | ||
|
|
||
| For example this Pipeline uses the Kaniko and `git` catalog Tasks: | ||
|
|
||
| ```yaml | ||
| apiVersion: tekton.dev/v1beta1 | ||
| kind: Pipeline | ||
| metadata: | ||
| name: kaniko-pipeline | ||
| spec: | ||
| params: | ||
| - name: git-url | ||
| - name: git-revision | ||
| - name: image-name | ||
| - name: path-to-image-context | ||
| - name: path-to-dockerfile | ||
| workspaces: | ||
| - name: git-source | ||
| tasks: | ||
| - name: fetch-from-git | ||
| taskRef: | ||
| name: git-clone | ||
| params: | ||
| - name: url | ||
| value: $(params.git-url) | ||
| - name: revision | ||
| value: $(params.git-revision) | ||
| workspaces: | ||
| - name: output | ||
| workspace: git-source | ||
| - name: build-image | ||
| taskRef: | ||
| name: kaniko | ||
| params: | ||
| - name: IMAGE | ||
| value: $(params.image-name) | ||
| - name: CONTEXT | ||
| value: $(params.path-to-image-context) | ||
| - name: DOCKERFILE | ||
| value: $(params.path-to-dockerfile) | ||
| workspaces: | ||
| - name: source | ||
| workspace: git-source | ||
| # If you want you can add a Task that uses the IMAGE_DIGEST from the kaniko task | ||
| # via $(tasks.build-image.results.IMAGE_DIGEST) - this was a feature we hadn't been | ||
| # able to fully deliver with the Image PipelineResource! | ||
| ``` | ||
|
|
||
| _Note that [the `image` `PipelineResource` is gone in this example](#replacing-an-image-resource) (replaced with | ||
| a [`result`](tasks.md#emitting-results)), and also that now the `Task` doesn't need to know anything | ||
| about where the files come from that it builds from._ | ||
|
|
||
| ### Replacing a `git` resource | ||
|
|
||
| You can replace a `git` resource with the [`git-clone` Catalog `Task`](https://github.com/tektoncd/catalog/tree/main/task/git-clone). | ||
|
|
||
| ### Replacing a `pullrequest` resource | ||
|
|
||
| You can replace a `pullrequest` resource with the [`pullrequest` Catalog `Task`](https://github.com/tektoncd/catalog/tree/main/task/pull-request). | ||
|
|
||
| ### Replacing a `gcs` resource | ||
|
|
||
| You can replace a `gcs` resource with the [`gcs` Catalog `Task`](https://github.com/tektoncd/catalog/tree/main/task/gcs-generic). | ||
|
|
||
| ### Replacing an `image` resource | ||
|
|
||
| Since the `image` resource is simply a way to share the digest of a built image with subsequent | ||
| `Tasks` in your `Pipeline`, you can use [`Task` results](tasks.md#emitting-results) to | ||
| achieve equivalent functionality. | ||
|
|
||
| For examples of replacing an `image` resource, see the following Catalog `Tasks`: | ||
|
|
||
| - The [Kaniko Catalog `Task`](https://github.com/tektoncd/catalog/blob/v1beta1/kaniko/) | ||
| illustrates how to write the digest of an image to a result. | ||
| - The [Buildah Catalog `Task`](https://github.com/tektoncd/catalog/blob/v1beta1/buildah/) | ||
| illustrates how to accept an image digest as a parameter. | ||
|
|
||
| ### Replacing a `cluster` resource | ||
|
|
||
| You can replace a `cluster` resource with the [`kubeconfig-creator` Catalog `Task`](https://github.com/tektoncd/catalog/tree/main/task/kubeconfig-creator). | ||
|
|
||
| ### Replacing a `cloudEvent` resource | ||
|
|
||
| You can replace a `cloudEvent` resource with the [`CloudEvent` Catalog `Task`](https://github.com/tektoncd/catalog/tree/main/task/cloudevent). | ||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
this was not resolved