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:
Pipeline
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.
Task
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.
ClusterTask
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.
PipelineRun
Describe
— Describe a PipelineRunShow 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.
TaskRun
Show Logs
— Show logs for a TaskRun.Delete
— Delete a TaskRun.
Resource
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