Tekton pipeline

The Tekton Project, which was announced in March after branching off from the Knative project, is creating excitement as a Kubernetes-native CI/CD pipeline tool.

It offers the flexibility and agnosticism that Kubernetes is celebrated for and is positioned to become the first open standardized engine for executing pipelines. Although the project is still in the early stages of development, we couldn’t wait to start making it easier for developers to jump on the Tekton train. Therefore in this article, we'll take a quick look at the Tekton Pipelines extension and how to use it.

The initial release of the Visual Studio (VS) Code Tekton Pipelines extension by Red Hat was developed over the course of a summer internship by Lindsey Tulloch with support from developers of the OpenShift Connector extension, Denis Golovin and Mohit Suman and the Red Hat Pipelines team—in particular, Vincent Demeester and Sunil Thaha.

The extension offers all of the same functionality as the Tekton CLI tool as well as a Pipelines view. This not only allows developers to visualize pipeline deployments they're developing but also allows for intuitive interaction with pipeline resources.

Today, the extension is available on VSCode Marketplace and works with the latest version of VSCode.

Supported Features:

  • Snippets for Pipeline Resources
  • Pipeline View
  • CLI functionality implemented via clicking on the desired pipeline resource
  • Integration with the Kubernetes extension from Microsoft

Using the Tekton Pipelines extension

Installing the Tekton Pipelines extension will trigger the installation of both the Kubernetes extension and the latest release of the Tekton CLI tool tkn.  Once these are installed, you will see a “Tekton Pipelines” view in your VSCode explorer with Pipelines, Tasks, ClusterTasks, and PipelineResource as top-level tree nodes.

Clicking on any of these nodes expands the view to display nested resources.

  • Pipelines shows: Pipelines > PipelineRuns > TaskRuns.
  • Tasks shows: Tasks > TaskRuns.
  • ClusterTasks shows: ClusterTasks.
  • PipelineResources shows: PipelineResources.

Context menu for any of these resources displays a range of actions, matching the functionality of the tkn CLI tool.

Available actions:

  • Start Last Run — Restart the last PipelineRun for a Pipeline.
  • Start — Start a Pipeline with user-selected resources and parameters.
  • Describe — Describe a Pipeline.
  • List PipelineRuns — List all the PipelineRuns for a Pipeline.
  • Delete — Delete a Pipeline.
  • Start — Start a Task with user-selected resources and parameters.
  • List TaskRuns — List all the TaskRuns for a Task in terminal.
  • Delete — Delete a Task.
  • Start — Start a ClusterTask with user-selected resources and parameters.
  • List TaskRuns — List all the TaskRuns for a ClusterTask in terminal.
  • Delete — Delete a ClusterTask.
  • Describe — Describe a PipelineRun
  • Show Logs — Show logs for a Pipeline.
  • List TaskRuns — List all the TaskRuns for current namespace in terminal.
  • Cancel — Cancel a PipelineRun.
  • Delete — Delete a PipelineRun.
  • Show Logs — Show logs for a TaskRun.
  • Delete — Delete a TaskRun.
  • Describe — Describe a Resource.
  • Delete — Delete a Resource.

The extension defines code snippets that make it easier to create Tekton resources in yaml text editor.

Available Snippets:

  • ClusterTask Resource
  • Pipeline or Task Parameter
  • Pipeline Resource
  • Pipeline Task Reference
  • Pipeline Task Reference Inputs, Parameters, and Outputs
  • PipelineResource Resource
  • PipelineResource Type
  • PipelineRun Resource
  • Kubernetes resource limits and requests
  • Tekton Task Resource
  • Tekton Task Inputs, Parameters, and Outputs
  • Pipeline Task Parameter
  • Tekton TaskRun Resource
  • Tekton Task Step

Integration with Kubernetes Clusters View

The extension adds Tekton Piplines node to Kubernetes Clusters View. It gives you a way to access raw Tekton resources in active Kubernetes namespace.

The Tekton Project is still in the early stages of development, so there is plenty of space for expansion and improvement within the extension. Of course, suggestions in a form of issues and pull requests are always welcome on the GitHub repository, found here.

Last updated: April 7, 2022