<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tekton – Concepts</title>
    <link>https://deploy-preview-726--tekton.netlify.app/docs/concepts/</link>
    <description>Recent content in Concepts on Tekton</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://deploy-preview-726--tekton.netlify.app/docs/concepts/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Docs: Overview</title>
      <link>https://deploy-preview-726--tekton.netlify.app/docs/concepts/overview/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/docs/concepts/overview/</guid>
      <description>
        
        
        &lt;h2 id=&#34;what-is-tekton&#34;&gt;What is Tekton?&lt;/h2&gt;
&lt;p&gt;Tekton is a cloud-native solution for building CI/CD pipelines. It consists of Tekton Pipelines, which provides
the building blocks, and of supporting components, such as Tekton CLI and Tekton Catalog, that make Tekton a complete
ecosystem. Tekton is an incubating project at the &lt;a href=&#34;https://www.cncf.io/&#34;&gt;Cloud Native Computing
Foundation (CNCF)&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Tekton installs and runs as an extension on a Kubernetes cluster and comprises a set of Kubernetes Custom Resources
that define the building blocks you can create and reuse for your pipelines. Once installed, Tekton Pipelines becomes
available via the Kubernetes CLI (kubectl) and via API calls, just like pods and other resources.&lt;/p&gt;
&lt;h2 id=&#34;who-uses-tekton&#34;&gt;Who uses Tekton?&lt;/h2&gt;
&lt;p&gt;Tekton users typically fall into the following categories:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Platform engineers&lt;/strong&gt; who build CI/CD systems for the developers in their organization.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Developers&lt;/strong&gt; who use those CI/CD systems to do their work.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-are-the-benefits-of-tekton&#34;&gt;What are the benefits of Tekton?&lt;/h2&gt;
&lt;p&gt;Tekton provides the following benefits to builders and users of CI/CD systems:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Customizable.&lt;/strong&gt; Tekton entities are fully customizable, allowing for a high degree of flexibility. Platform engineers
can define a highly detailed catalog of building blocks for developers to use in a wide variety of scenarios.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Reusable.&lt;/strong&gt; Tekton entities are fully portable, so once defined, anyone within the organization can use a given
pipeline and reuse its building blocks. This allows developers to quickly build complex pipelines without &amp;ldquo;reinventing
the wheel.&amp;rdquo;&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Expandable.&lt;/strong&gt; Tekton Catalog is a community-driven repository of Tekton building blocks. You can quickly create new and
expand existing pipelines using pre-made components from the Tekton Catalog.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Standardized.&lt;/strong&gt; Tekton installs and runs as an extension on your Kubernetes cluster and uses the well-established
Kubernetes resource model. Tekton workloads execute inside Kubernetes containers.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Scalable.&lt;/strong&gt; To increase your workload capacity, you can simply add nodes to your cluster. Tekton scales with your cluster
without the need to redefine your resource allocations or any other modifications to your pipelines.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-are-the-components-of-tekton&#34;&gt;What are the components of Tekton?&lt;/h2&gt;
&lt;p&gt;Tekton consists of the following components:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/README.md&#34;&gt;Tekton Pipelines&lt;/a&gt;&lt;/strong&gt; is the foundation of Tekton. It defines a
set of Kubernetes &lt;a href=&#34;https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/&#34;&gt;Custom Resources&lt;/a&gt; that act as building blocks
from which you can assemble CI/CD pipelines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/README.md&#34;&gt;Tekton Triggers&lt;/a&gt;&lt;/strong&gt; allows you to instantiate pipelines based on events.
For example, you can trigger the instantiation and execution of a pipeline
every time a PR is merged against a GitHub repository. You can also build a user
interface that launches specific Tekton triggers.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/cli/blob/main/README.md&#34;&gt;Tekton CLI&lt;/a&gt;&lt;/strong&gt; provides a command-line interface called &lt;code&gt;tkn&lt;/code&gt;, built on top
of the Kubernetes CLI, that allows you to interact with Tekton.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/dashboard/blob/main/docs/README.md&#34;&gt;Tekton Dashboard&lt;/a&gt;&lt;/strong&gt; is a Web-based graphical interface for
Tekton Pipelines that displays information about the execution of your
pipelines. It is currently a work-in-progress.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/catalog/blob/main/README.md&#34;&gt;Tekton Catalog&lt;/a&gt;&lt;/strong&gt; is a repository of high-quality, community-contributed
Tekton building blocks - &lt;code&gt;Tasks&lt;/code&gt;, &lt;code&gt;Pipelines&lt;/code&gt;, and so on - that are ready for
use in your own pipelines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/hub/blob/main/README.md&#34;&gt;Tekton Hub&lt;/a&gt;&lt;/strong&gt; is a Web-based graphical interface for accessing the Tekton Catalog.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/operator/blob/main/README.md&#34;&gt;Tekton Operator&lt;/a&gt;&lt;/strong&gt; is a Kubernetes &lt;a href=&#34;https://operatorhub.io/what-is-an-operator&#34;&gt;Operator
pattern&lt;/a&gt; that allows you to
install, update, and remove Tekton projects on your Kubernetes cluster.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/chains/blob/main/README.md&#34;&gt;Tekton Chains&lt;/a&gt;&lt;/strong&gt; provides tools to generate, store, and sign
provenance for artifacts built with Tekton Pipelines.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;strong&gt;&lt;a href=&#34;https://pipelinesascode.com&#34;&gt;Pipelines-as-Code&lt;/a&gt;&lt;/strong&gt; brings a Git-native CI/CD workflow to Tekton,
allowing you to define your pipelines in a &lt;code&gt;.tekton/&lt;/code&gt; directory alongside
your source code. It integrates with GitHub, GitLab, Bitbucket, and Forgejo.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;how-do-i-work-with-tekton&#34;&gt;How do I work with Tekton?&lt;/h2&gt;
&lt;p&gt;To install Tekton, you need a Kubernetes cluster running a
&lt;a href=&#34;https://github.com/tektoncd/pipeline/#want-to-start-using-pipelines&#34;&gt;version of Kubernetes specified for the current Tekton release&lt;/a&gt;.
Once installed, you can interact with Tekton using one of the following:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/cli/blob/main/README.md&#34;&gt;The tkn CLI&lt;/a&gt;&lt;/strong&gt;, also known as the Tekton CLI, is the preferred command-line method
for interacting with Tekton. &lt;code&gt;tkn&lt;/code&gt; provides a quick and streamlined experience, including high-level commands and color coding. To use it,
you only need to be familiar with Tekton.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://kubernetes.io/docs/reference/kubectl/overview/&#34;&gt;The kubectl CLI&lt;/a&gt;&lt;/strong&gt;, also known as the Kubernetes CLI, provides substantially more
granularity for controlling Tekton at the expense of higher complexity. Interacting with Tekton via kubectl is typically reserved for debugging
your pipelines and troubleshooting your builds.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/access-kubernetes-api/custom-resources/custom-resource-definitions/&#34;&gt;The Tekton APIs&lt;/a&gt;&lt;/strong&gt;, currently
available for &lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/pipeline/pkg/apis/pipeline/v1beta1?tab=doc&#34;&gt;Pipelines&lt;/a&gt; and
&lt;a href=&#34;https://pkg.go.dev/github.com/tektoncd/triggers@v0.5.0/pkg/apis/triggers/v1alpha1?tab=doc&#34;&gt;Triggers&lt;/a&gt;, allow you to programmatically interact
with Tekton components. This is typically reserved for highly customized CI/CD systems. In most scenarios, &lt;code&gt;tkn&lt;/code&gt; and &lt;code&gt;kubectl&lt;/code&gt; are the preferred
methods of controlling Tekton.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;We also recommend having the following items configured on your Kubernetes cluster:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Persistent volume claims for specifying inputs and outputs.&lt;/li&gt;
&lt;li&gt;Permissions appropriate to your environment and business needs.&lt;/li&gt;
&lt;li&gt;Storage for building and pushing images (if applicable).&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;what-can-i-do-with-tekton&#34;&gt;What can I do with Tekton?&lt;/h2&gt;
&lt;p&gt;Tekton introduces the concept of &lt;code&gt;Tasks&lt;/code&gt;, which specify the workloads you want to run:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/tasks.md&#34;&gt;&lt;code&gt;Task&lt;/code&gt;&lt;/a&gt; - defines a series of ordered &lt;code&gt;Steps&lt;/code&gt;, and each &lt;code&gt;Step&lt;/code&gt; invokes a specific
build tool on a specific set of inputs and produces a specific set of outputs, which can be used as inputs in the next &lt;code&gt;Step&lt;/code&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/pipelines.md&#34;&gt;&lt;code&gt;Pipeline&lt;/code&gt;&lt;/a&gt; - defines a series of ordered &lt;code&gt;Tasks&lt;/code&gt;, and just like &lt;code&gt;Steps&lt;/code&gt; in a
&lt;code&gt;Task&lt;/code&gt;, a &lt;code&gt;Task&lt;/code&gt; in a &lt;code&gt;Pipeline&lt;/code&gt; can use the output of a previously executed &lt;code&gt;Task&lt;/code&gt; as its input.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/taskruns.md&#34;&gt;&lt;code&gt;TaskRun&lt;/code&gt;&lt;/a&gt; - instantiates a specific &lt;code&gt;Task&lt;/code&gt; to execute on a particular set of
inputs and produce a particular set of outputs. In other words, the &lt;code&gt;Task&lt;/code&gt; tells Tekton what to do, and a &lt;code&gt;TaskRun&lt;/code&gt; tells Tekton what to do it &lt;strong&gt;on&lt;/strong&gt;,
as well as any additional details on how to exactly do it, such as build flags.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/pipelineruns.md&#34;&gt;&lt;code&gt;PipelineRun&lt;/code&gt;&lt;/a&gt; - instantiates a specific &lt;code&gt;Pipeline&lt;/code&gt; to execute on a particular
set of inputs and produce a particular set of outputs to particular destinations.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Each &lt;code&gt;Task&lt;/code&gt; executes in its own Kubernetes Pod. Thus, by default, &lt;code&gt;Tasks&lt;/code&gt; within a &lt;code&gt;Pipeline&lt;/code&gt; do not share data. To share data among &lt;code&gt;Tasks&lt;/code&gt;,
you must explicitly configure each &lt;code&gt;Task&lt;/code&gt; to make its outputs available to the next &lt;code&gt;Task&lt;/code&gt; and to ingest the outputs of a previously executed
&lt;code&gt;Task&lt;/code&gt; as its inputs, whichever is applicable.&lt;/p&gt;
&lt;h3 id=&#34;when-to-use-which&#34;&gt;When to use which?&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;Task&lt;/code&gt; - useful for simpler workloads such as running a test, a lint, or building a Kaniko cache. A single &lt;code&gt;Task&lt;/code&gt; executes in a single
Kubernetes Pod, uses a single disk, and generally keeps things simple.&lt;/li&gt;
&lt;li&gt;&lt;code&gt;Pipeline&lt;/code&gt; - useful for complex workloads, such as static analysis, as well as testing, building, and deploying complex projects.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;i-want-to-learn-more&#34;&gt;I want to learn more!&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;See &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/docs/concepts/concept-model&#34;&gt;the Tekton concept model&lt;/a&gt; to learn more
about the basics of how Tekton tasks and pipelines interact.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Run your first pipeline following the &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/docs/getting-started/&#34;&gt;Getting
Started&lt;/a&gt; guide.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Concept model</title>
      <link>https://deploy-preview-726--tekton.netlify.app/docs/concepts/concept-model/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/docs/concepts/concept-model/</guid>
      <description>
        
        
        &lt;h2 id=&#34;steps-tasks-and-pipelines&#34;&gt;Steps, Tasks, and Pipelines&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;step&lt;/strong&gt; is an operation in a CI/CD workflow, such as running some unit tests
for a Python web app, or the compilation of a Java program. Tekton performs
each step with a container image you provide. For example, you may use the
&lt;a href=&#34;https://hub.docker.com/_/golang&#34;&gt;official Go image&lt;/a&gt; to compile a Go program
in the same manner as you would on your local workstation (&lt;code&gt;go build&lt;/code&gt;).&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;task&lt;/strong&gt; is a collection of &lt;strong&gt;steps&lt;/strong&gt; in order. Tekton runs a task in
the form of a &lt;a href=&#34;https://kubernetes.io/docs/concepts/workloads/pods/&#34;&gt;Kubernetes pod&lt;/a&gt;,
where each step becomes a running container in the pod. This design allows you
to set up a shared environment for a number of related steps; for example,
you may mount a &lt;a href=&#34;https://kubernetes.io/docs/concepts/storage/volumes/&#34;&gt;Kubernetes volume&lt;/a&gt;
in a task, which will be accessible inside each step of the task.&lt;/p&gt;
&lt;p&gt;A &lt;strong&gt;pipeline&lt;/strong&gt; is a collection of &lt;strong&gt;tasks&lt;/strong&gt; in order. Tekton collects all the
tasks, connects them in a directed acyclic graph (DAG), and executes the graph
in sequence. In other words, it creates a number of Kubernetes pods and
ensures that each pod completes running successfully as desired. Tekton grants
developers full control of the process: one may set up a fan-in/fan-out
scenario of task completion, ask Tekton to retry automatically should
a flaky test exists, or specify a condition that a task must meet before
proceeding.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Tasks&lt;/strong&gt; and &lt;strong&gt;pipelines&lt;/strong&gt; are specified as &lt;a href=&#34;https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/&#34;&gt;custom resources&lt;/a&gt;
in a Kubernetes cluster.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://deploy-preview-726--tekton.netlify.app/docs/concepts/concept-tasks-pipelines.png&#34; alt=&#34;Tasks and Pipelines&#34;&gt;&lt;/p&gt;
&lt;h2 id=&#34;taskruns-and-pipelineruns&#34;&gt;TaskRuns and PipelineRuns&lt;/h2&gt;
&lt;p&gt;A &lt;strong&gt;pipelineRun&lt;/strong&gt;, as its name implies, is a specific execution of a &lt;strong&gt;pipeline&lt;/strong&gt;.
For example, you may ask Tekton to run your CI/CD workflow twice a day, and
each execution will become a &lt;strong&gt;pipelineRun&lt;/strong&gt; resource trackable in your
Kubernetes cluster. You can view the status of your CI/CD workflow, including
the specifics of each task execution with &lt;strong&gt;pipelineRuns&lt;/strong&gt;.&lt;/p&gt;
&lt;p&gt;Similarly, a &lt;strong&gt;taskRun&lt;/strong&gt; is a specific execution of a &lt;strong&gt;task&lt;/strong&gt;. &lt;strong&gt;TaskRuns&lt;/strong&gt;
are also available when you choose to run a task outside a pipeline, with
which you may view the specifics of each step execution in a task.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TaskRuns&lt;/strong&gt; and &lt;strong&gt;pipelineRuns&lt;/strong&gt; connect &lt;strong&gt;resources&lt;/strong&gt; with &lt;strong&gt;tasks&lt;/strong&gt; and
&lt;strong&gt;pipelines&lt;/strong&gt;. A run must include the actual addresses of resources, such as
the URLs of repositories, its task or pipeline needs. This design allows
developers to reuse tasks and pipelines for different inputs and outputs.&lt;/p&gt;
&lt;p&gt;You may create &lt;strong&gt;taskRuns&lt;/strong&gt; or &lt;strong&gt;pipelineRuns&lt;/strong&gt; manually, which triggers
Tekton to run a task or a pipeline immediately. Alternately, one may ask a
Tekton component, such as Tekton Triggers, to create a run automatically on
demand; for example, you may want to run a pipeline every time a new pull
request is checked into your git repository.&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://deploy-preview-726--tekton.netlify.app/docs/concepts/concept-runs.png&#34; alt=&#34;Runs&#34;&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;TaskRuns&lt;/strong&gt; and &lt;strong&gt;pipelineRuns&lt;/strong&gt; are specified as &lt;a href=&#34;https://kubernetes.io/docs/concepts/extend-kubernetes/api-extension/custom-resources/&#34;&gt;custom resources&lt;/a&gt;
in a Kubernetes cluster.&lt;/p&gt;
&lt;h2 id=&#34;how-tekton-works&#34;&gt;How Tekton works&lt;/h2&gt;
&lt;p&gt;Loosely speaking, at its core, Tekton Pipelines functions by wrapping each
of your steps. More specifically, Tekton Pipelines injects an &lt;code&gt;entrypoint&lt;/code&gt;
binary in step containers, which executes the command you specify when
the system is ready.&lt;/p&gt;
&lt;p&gt;Tekton Pipelines tracks the state of your pipeline using
&lt;a href=&#34;https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/&#34;&gt;Kubernetes Annotations&lt;/a&gt;.
These annotations are projected inside each step container in the form
of files with the
&lt;a href=&#34;https://kubernetes.io/docs/tasks/inject-data-application/downward-api-volume-expose-pod-information/#the-downward-api&#34;&gt;Kubernetes Downward API&lt;/a&gt;.
The &lt;code&gt;entrypoint&lt;/code&gt; binary watches the projected files closely, and will only
start the provided command if a specific annotation appears as files. For
example, when you ask Tekton to run two steps consecutively in a task,
the &lt;code&gt;entrypoint&lt;/code&gt; binary injected into the second step container will
wait idly until the annotations report that the first step container
has successfully completed.&lt;/p&gt;
&lt;p&gt;In addition, Tekton Pipelines schedules some containers to run automatically
before and after your step containers, so as to support specific built-in
features, such as the retrieval of input resources and the uploading of
outputs to blob storage solutions. You can track their running statuses as
well via &lt;strong&gt;taskRuns&lt;/strong&gt; and &lt;strong&gt;pipelineRuns&lt;/strong&gt;. The system also performs a number
of other operations to set up the environment before running the step
containers; for more information, see &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/docs/pipelines&#34;&gt;Tasks and Pipelines&lt;/a&gt;.&lt;/p&gt;
&lt;h2 id=&#34;whats-next&#34;&gt;What&amp;rsquo;s next&lt;/h2&gt;
&lt;p&gt;Learn more about Tekton Pipelines in &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/docs/pipelines&#34;&gt;Tasks and Pipelines&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Docs: Supply Chain Security</title>
      <link>https://deploy-preview-726--tekton.netlify.app/docs/concepts/supply-chain-security/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://deploy-preview-726--tekton.netlify.app/docs/concepts/supply-chain-security/</guid>
      <description>
        
        
        &lt;p&gt;Given the increasing complexity of the CI/CD space, with projects that often
have dozens or even hundreds of dependencies, the supply chain has become a
common vector of attacks. Tekton Chains is a security-oriented part of the
Tekton portfolio to help you mitigate security risks.&lt;/p&gt;
&lt;p&gt;Tekton Chains is a tool to generate, store, and sign provenance for artifacts
built with Tekton Pipelines. &lt;strong&gt;Provenance&lt;/strong&gt; is metadata containing verifiable
information about software artifacts, describing where, when and how something
is built.&lt;/p&gt;
&lt;h2 id=&#34;how-to-secure-your-supply-chain&#34;&gt;How to secure your Supply Chain&lt;/h2&gt;
&lt;p&gt;&lt;a href=&#34;https://slsa.dev/spec/v0.1/levels#what-is-slsa&#34;&gt;Supply chain Levels for Software Artifacts (SLSA)&lt;/a&gt; provides a set of
guidelines you can follow to make your software more secure. SLSA is organized
into a series of levels, where level 4 represents the ideal state. Go to
&lt;a href=&#34;https://slsa.dev&#34;&gt;slsa.dev&lt;/a&gt; for more information.&lt;/p&gt;
&lt;p&gt;Tekton Chains implements the SLSA guidelines to help you accomplish SLSA level
2, by documenting the build process in a tamper resistant format.&lt;/p&gt;
&lt;h2 id=&#34;how-does-tekton-chains-work&#34;&gt;How does Tekton Chains work?&lt;/h2&gt;
&lt;p&gt;Tekton Chains works by deploying a controller that runs in the background and
monitors TaskRuns. While Tekton Pipelines executes your Tasks, Tekton Chains
watches the operation, once the operation is successfully completed, the Chains
controller generates the provenance for the artifacts produced.&lt;/p&gt;
&lt;p&gt;The provenance records the inputs of your Tasks: source repositories, branches,
other artifacts; and the outputs: container images, packages, etc. This
information is recorded as &lt;a href=&#34;https://in-toto.io/&#34;&gt;in-toto&lt;/a&gt; metadata and signed. You can store
the keys to sign the provenance in a Kubernetes secret or by using a supported
key management system: GCP, AWS, Azure, or Vault. You can then upload the
provenance  to a specified location. &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/blog/2023/04/19/getting-to-slsa-level-2-with-tekton-and-tekton-chains/&#34;&gt;Getting To SLSA Level 2 with Tekton and
Tekton Chains&lt;/a&gt; on the Google Open Source Blog provides more details.&lt;/p&gt;
&lt;div class=&#34;mermaid&#34;&gt;graph LR
  subgraph TOP[Kubernetes]
    direction TB

    subgraph C[Tekton Chains controller]
      direction TB
      c1(Observe Runs)
      c2(Generate Provenance) 
      c3(Sign Metadata)
    end

    subgraph B[Pipelines]
      direction LR
      subgraph B1[Pipeline]
        direction TB
        i1[Task] --&amp;gt; f1[Task]
      end

      subgraph B2[Pipeline]
        direction TB
        i2[Task] --&amp;gt; f2[Task]
      end
      B1 --&amp;gt; B2
    end
  end

  A[Sources] -.-&amp;gt; B -.-&amp;gt; D[Artifacts]
&lt;/div&gt;

&lt;h2 id=&#34;where-can-i-try-it&#34;&gt;Where can I try it?&lt;/h2&gt;
&lt;ul&gt;
&lt;li&gt;For a hands-on experience, follow the &lt;a href=&#34;https://deploy-preview-726--tekton.netlify.app/docs/getting-started/supply-chain-security/&#34;&gt;Getting started with Tekton Chains
tutorial&lt;/a&gt;.&lt;/li&gt;
&lt;li&gt;Check the &lt;a href=&#34;https://github.com/tektoncd/chains/tree/main/examples&#34;&gt;examples available on the Chain repository&lt;/a&gt;.&lt;/li&gt;
&lt;/ul&gt;

      </description>
    </item>
    
  </channel>
</rss>
