Convert Figma logo to code with AI

tektoncd logopipeline

A cloud-native Pipeline resource.

8,455
1,772
8,455
392

Top Related Projects

Workflow Engine for Kubernetes

4,576

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

6,897

Successor: https://github.com/fluxcd/flux2

Concourse is a container-based continuous thing-doer written in Go.

32,102

Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.

Quick Overview

Tekton Pipelines is an open-source framework for creating CI/CD systems. It provides a set of Kubernetes custom resources for declaring CI/CD-style pipelines, allowing developers to build, test, and deploy across cloud providers and on-premise systems.

Pros

  • Cloud-native and Kubernetes-native, leveraging existing Kubernetes concepts
  • Highly extensible and customizable through custom tasks and resources
  • Vendor-neutral, avoiding lock-in to specific cloud providers or tools
  • Supports both declarative and imperative pipeline definitions

Cons

  • Steep learning curve for those unfamiliar with Kubernetes
  • Limited built-in integrations compared to some established CI/CD tools
  • Requires additional setup for features like secrets management and notifications
  • Documentation can be fragmented or outdated due to rapid development

Code Examples

  1. Defining a simple Task:
apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello-world
spec:
  steps:
    - name: echo
      image: alpine
      command:
        - echo
      args:
        - "Hello, World!"
  1. Creating a Pipeline that uses the Task:
apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: hello-pipeline
spec:
  tasks:
    - name: hello-task
      taskRef:
        name: hello-world
  1. Running the Pipeline with a PipelineRun:
apiVersion: tekton.dev/v1beta1
kind: PipelineRun
metadata:
  name: hello-pipeline-run
spec:
  pipelineRef:
    name: hello-pipeline

Getting Started

To get started with Tekton Pipelines:

  1. Install Tekton Pipelines on your Kubernetes cluster:

    kubectl apply --filename https://storage.googleapis.com/tekton-releases/pipeline/latest/release.yaml
    
  2. Install the Tekton CLI:

    # For macOS:
    brew install tektoncd-cli
    # For Linux:
    sudo apt update && sudo apt install -y tektoncd-cli
    
  3. Create and apply your first Task and Pipeline YAML files (as shown in the code examples).

  4. Run your pipeline:

    tkn pipeline start hello-pipeline --showlog
    

For more detailed instructions and advanced usage, refer to the official Tekton documentation.

Competitor Comparisons

Workflow Engine for Kubernetes

Pros of Argo Workflows

  • More mature and feature-rich, with a larger ecosystem of tools and integrations
  • Supports complex workflow patterns like DAGs, loops, and conditionals out-of-the-box
  • Provides a user-friendly UI for workflow management and visualization

Cons of Argo Workflows

  • Can be more resource-intensive, especially for large-scale deployments
  • Steeper learning curve due to its extensive feature set
  • Less native integration with Kubernetes resources compared to Tekton

Code Comparison

Argo Workflows example:

apiVersion: argoproj.io/v1alpha1
kind: Workflow
metadata:
  name: hello-world
spec:
  entrypoint: whalesay
  templates:
  - name: whalesay
    container:
      image: docker/whalesay
      command: [cowsay]
      args: ["hello world"]

Tekton Pipeline example:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello-world
spec:
  steps:
  - name: echo
    image: alpine
    command:
    - echo
    - "Hello World"

Both Argo Workflows and Tekton Pipelines are powerful CI/CD tools, but they have different strengths. Argo Workflows excels in complex workflow orchestration, while Tekton Pipelines focuses on Kubernetes-native CI/CD pipelines with modular, reusable components.

4,576

Jenkins X provides automated CI+CD for Kubernetes with Preview Environments on Pull Requests using Cloud Native pipelines from Tekton

Pros of jx

  • Provides a complete CI/CD solution out-of-the-box
  • Includes built-in GitOps workflows and environment promotion
  • Offers a CLI tool for easier interaction and management

Cons of jx

  • Steeper learning curve due to its comprehensive nature
  • Less flexibility for customization compared to pipeline
  • Tighter coupling with Kubernetes and cloud platforms

Code Comparison

jx:

pipeline:
  agent:
    image: golang:1.16
  stages:
    - name: Build
      steps:
        - sh: make build
    - name: Test
      steps:
        - sh: make test

pipeline:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: build-and-test
spec:
  steps:
    - name: build
      image: golang:1.16
      script: |
        make build
    - name: test
      image: golang:1.16
      script: |
        make test

The jx pipeline configuration is more concise and uses a simpler syntax, while the pipeline Task definition is more verbose but offers greater flexibility in defining individual steps and their properties.

Spinnaker is an open source, multi-cloud continuous delivery platform for releasing software changes with high velocity and confidence.

Pros of Spinnaker

  • More comprehensive and feature-rich, offering a complete CI/CD platform
  • Provides a user-friendly UI for pipeline management and visualization
  • Supports multi-cloud deployments and advanced deployment strategies

Cons of Spinnaker

  • Steeper learning curve and more complex setup process
  • Requires more resources to run and maintain
  • Less flexible for custom pipeline definitions compared to Tekton

Code Comparison

Spinnaker pipeline definition (JSON):

{
  "name": "My Pipeline",
  "stages": [
    {
      "type": "wait",
      "name": "Wait",
      "waitTime": 30
    }
  ]
}

Tekton pipeline definition (YAML):

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: my-pipeline
spec:
  tasks:
    - name: wait-task
      taskRef:
        name: wait-task

Both Spinnaker and Tekton provide powerful CI/CD capabilities, but they differ in their approach and target use cases. Spinnaker offers a more comprehensive solution with a focus on multi-cloud deployments and advanced deployment strategies. Tekton, on the other hand, provides a more flexible and lightweight approach to building custom CI/CD pipelines, especially within Kubernetes environments.

6,897

Successor: https://github.com/fluxcd/flux2

Pros of Flux

  • Designed specifically for GitOps workflows, providing seamless integration with Git repositories
  • Supports multi-tenancy and hierarchical structure for managing multiple clusters and environments
  • Offers built-in support for Helm charts and Kustomize, simplifying deployment of complex applications

Cons of Flux

  • Less flexible for general-purpose CI/CD tasks compared to Tekton's modular approach
  • Steeper learning curve for users not familiar with GitOps principles
  • Limited support for complex, multi-step pipelines that may be required in some CI/CD scenarios

Code Comparison

Flux manifest example:

apiVersion: source.toolkit.fluxcd.io/v1beta1
kind: GitRepository
metadata:
  name: podinfo
  namespace: flux-system
spec:
  interval: 30s
  url: https://github.com/stefanprodan/podinfo
  ref:
    branch: master

Tekton pipeline example:

apiVersion: tekton.dev/v1beta1
kind: Pipeline
metadata:
  name: build-and-deploy
spec:
  tasks:
    - name: build
      taskRef:
        name: build-task
    - name: deploy
      taskRef:
        name: deploy-task

Concourse is a container-based continuous thing-doer written in Go.

Pros of Concourse

  • Mature and battle-tested CI/CD system with a large user base
  • Provides a visual interface for pipeline management and monitoring
  • Supports complex workflows with built-in resource types

Cons of Concourse

  • Steeper learning curve due to its unique concepts and terminology
  • Less flexible for ad-hoc tasks compared to Tekton's modular approach
  • Requires more infrastructure setup and maintenance

Code Comparison

Concourse pipeline definition:

jobs:
- name: hello-world
  plan:
  - task: say-hello
    config:
      platform: linux
      image_resource:
        type: docker-image
        source: {repository: ubuntu}
      run:
        path: echo
        args: ["Hello, World!"]

Tekton pipeline definition:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: hello-world
spec:
  steps:
  - name: say-hello
    image: ubuntu
    command:
    - echo
    - "Hello, World!"

Both Concourse and Tekton use YAML for pipeline definitions, but Tekton's structure is more Kubernetes-native. Concourse uses its own domain-specific language, while Tekton leverages Kubernetes resources and concepts. Tekton's approach allows for more granular control and reusability of pipeline components, making it easier to create complex workflows from smaller, modular pieces.

32,102

Gitness is an Open Source developer platform with Source Control management, Continuous Integration and Continuous Delivery.

Pros of Gitness

  • More user-friendly interface for Git operations and CI/CD workflows
  • Integrated project management features like issue tracking and pull requests
  • Designed for both on-premises and cloud deployments

Cons of Gitness

  • Less mature and battle-tested compared to Tekton Pipelines
  • Smaller community and ecosystem of plugins/extensions
  • May have a steeper learning curve for teams already familiar with Tekton

Code Comparison

Gitness pipeline configuration:

pipeline:
  - step:
      name: Build
      image: node:14
      commands:
        - npm install
        - npm run build

Tekton pipeline configuration:

apiVersion: tekton.dev/v1beta1
kind: Task
metadata:
  name: build
spec:
  steps:
    - name: build
      image: node:14
      script: |
        npm install
        npm run build

Key Differences

  • Gitness uses a simpler YAML structure for pipeline definitions
  • Tekton Pipelines offers more granular control over task execution
  • Gitness integrates Git operations more tightly with CI/CD workflows
  • Tekton Pipelines is more focused on Kubernetes-native CI/CD

Convert Figma logo designs to code with AI

Visual Copilot

Introducing Visual Copilot: A new AI model to turn Figma designs to high quality code using your components.

Try Visual Copilot

README

pipe Tekton Pipelines

pre-commit Go Report Card CII Best Practices

The Tekton Pipelines project provides k8s-style resources for declaring CI/CD-style pipelines.

Tekton Pipelines are Cloud Native:

  • Run on Kubernetes
  • Have Kubernetes clusters as a first class type
  • Use containers as their building blocks

Tekton Pipelines are Decoupled:

  • One Pipeline can be used to deploy to any k8s cluster
  • The Tasks which make up a Pipeline can easily be run in isolation
  • Resources such as git repos can easily be swapped between runs

Tekton Pipelines are Typed:

  • The concept of typed resources means that for a resource such as an Image, implementations can easily be swapped out (e.g. building with kaniko v.s. buildkit)

Want to start using Pipelines

Required Kubernetes Version

  • Starting from the v0.24.x release of Tekton: Kubernetes version 1.18 or later
  • Starting from the v0.27.x release of Tekton: Kubernetes version 1.19 or later
  • Starting from the v0.30.x release of Tekton: Kubernetes version 1.20 or later
  • Starting from the v0.33.x release of Tekton: Kubernetes version 1.21 or later
  • Starting from the v0.39.x release of Tekton: Kubernetes version 1.22 or later
  • Starting from the v0.41.x release of Tekton: Kubernetes version 1.23 or later
  • Starting from the v0.45.x release of Tekton: Kubernetes version 1.24 or later
  • Starting from the v0.51.x release of Tekton: Kubernetes version 1.25 or later
  • Starting from the v0.59.x release of Tekton: Kubernetes version 1.27 or later
  • Starting from the v0.61.x release of Tekton: Kubernetes version 1.28 or later

Read the docs

The latest version of our docs is available at:

Version specific links are available in the releases page and on the Tekton website.

See our API compatibility policy for info on the stability level of the API.

See our Deprecations table for features that have been deprecated and the earliest date they'll be removed.

Migrating

v1beta1 to v1

Several Tekton CRDs and API spec fields, including ClusterTask CRD and Pipeline Resources fields, were updated or deprecated during the migration from v1beta1 to v1.

For users migrating their Tasks and Pipelines from v1beta1 to v1, check out the v1beta1 to v1 migration guide.

v1alpha1 to v1beta1

In the move from v1alpha1 to v1beta1 several spec fields and Tekton CRDs were updated or removed .

For users migrating their Tasks and Pipelines from v1alpha1 to v1beta1, check out the spec changes and migration paths.

Want to contribute

We are so excited to have you!