Replacing PipelineResources with Tasks
PipelineResources
remained in alpha while the other resource kinds were promoted to beta.
Since then, PipelineResources
have been removed.
Read more about the deprecation in TEP-0074.
More on the reasoning and what’s left to do in Why aren’t PipelineResources in Beta?.
To ease migration away from PipelineResources
some types have an equivalent Task
in the Catalog.
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
:
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:
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 (replaced with
a result
), 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
.
Replacing a pullrequest
resource
You can replace a pullrequest
resource with the pullrequest
Catalog Task
.
Replacing a gcs
resource
You can replace a gcs
resource with the gcs
Catalog Task
.
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 to
achieve equivalent functionality.
For examples of replacing an image
resource, see the following Catalog Tasks
:
- The Kaniko Catalog
Task
illustrates how to write the digest of an image to a result. - The Buildah Catalog
Task
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
.
Replacing a cloudEvent
resource
You can replace a cloudEvent
resource with the CloudEvent
Catalog Task
.
Feedback
Was this page helpful?