Skip to content
Latchkey

Tekton "no matches for kind Task in version tekton.dev/v1" in CI

kubectl asked the API server for tekton.dev/v1 kind Task and got no match. Either Tekton Pipelines is not installed in the cluster, or the manifest targets an API version the installed version does not serve.

What this error means

kubectl apply fails with "unable to recognize \"pipeline.yaml\": no matches for kind \"Task\" in version \"tekton.dev/v1\"".

Tekton
error: unable to recognize "pipeline.yaml": no matches for kind "Task" in version "tekton.dev/v1"

Common causes

Tekton Pipelines CRDs are not installed

The cluster has no tekton.dev CRDs, so no version of kind Task is served.

The manifest uses an unserved API version

The manifest declares tekton.dev/v1 but the installed Tekton version only serves v1beta1, or the reverse.

How to fix it

Install Tekton Pipelines

  1. Apply the Tekton Pipelines release into the cluster.
  2. Confirm the CRDs exist with kubectl get crd | grep tekton.
  3. Re-apply your manifests.
Terminal
kubectl apply -f https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
kubectl get crd | grep tekton.dev

Match the apiVersion to what is served

Check which versions the CRD serves and set the manifest apiVersion accordingly.

Terminal
kubectl explain task --api-version=tekton.dev/v1

How to prevent it

  • Install Tekton Pipelines as a cluster prerequisite before CI runs.
  • Pin manifests to an apiVersion the installed Tekton serves.
  • Verify CRDs exist in a setup step before applying pipelines.

Related guides

Run this faster and cheaper on Latchkey managed runners. Start free →