<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Tekton – Dashboard</title>
    <link>https://tekton.dev/vault/dashboard-v0.65.x-lts/</link>
    <description>Recent content in Dashboard on Tekton</description>
    <generator>Hugo -- gohugo.io</generator>
    
	  <atom:link href="https://tekton.dev/vault/dashboard-v0.65.x-lts/index.xml" rel="self" type="application/rss+xml" />
    
    
      
        
      
    
    
    <item>
      <title>Vault: Getting started with Tekton Dashboard</title>
      <link>https://tekton.dev/vault/dashboard-v0.65.x-lts/tutorial/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://tekton.dev/vault/dashboard-v0.65.x-lts/tutorial/</guid>
      <description>
        
        
        &lt;p&gt;This tutorial shows you how to&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Create a Kubernetes cluster with &lt;a href=&#34;https://minikube.sigs.k8s.io/&#34;&gt;minikube&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Install Tekton Pipelines and Tekton Dashboard&lt;/li&gt;
&lt;li&gt;Import some Tekton resources&lt;/li&gt;
&lt;li&gt;Create a TaskRun and monitor its logs&lt;/li&gt;
&lt;li&gt;Create a PipelineRun and monitor its logs&lt;/li&gt;
&lt;/ol&gt;
&lt;blockquote&gt;
&lt;p&gt;[!CAUTION]
This tutorial describes setting Dashboard up in READ-WRITE mode.&lt;/p&gt;
&lt;p&gt;Anyone who can access the Dashboard can use the permissions granted to the service account.
Make sure to take &lt;a href=&#34;https://github.com/docs/install.md#access-control&#34;&gt;additional precautions&lt;/a&gt;
if your deployment is publicly accessible.&lt;/p&gt;
&lt;p&gt;READ-WRITE mode is not a requirement for Dashboard to operate, and can be
&lt;a href=&#34;https://github.com/docs/install.md#installing-tekton-dashboard-on-kubernetes&#34;&gt;installed in READ-ONLY mode&lt;/a&gt;.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;h2 id=&#34;prerequisites&#34;&gt;Prerequisites&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;&lt;a href=&#34;https://minikube.sigs.k8s.io/docs/start/&#34;&gt;Install minikube&lt;/a&gt;. You only have
to complete the step 1, &amp;ldquo;Installation&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;https://kubernetes.io/docs/tasks/tools/#kubectl&#34;&gt;Install kubectl&lt;/a&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;h2 id=&#34;create-your-kubernetes-cluster&#34;&gt;Create your Kubernetes cluster&lt;/h2&gt;
&lt;p&gt;Create a cluster&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;minikube start --profile tekton-dashboard-tutorial
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The process takes a few seconds, you see an output similar to the following,
depending on the &lt;a href=&#34;https://minikube.sigs.k8s.io/docs/drivers/&#34;&gt;minikube driver&lt;/a&gt;
that you are using:&lt;/p&gt;
&lt;pre&gt;
😄  [tekton-dashboard-tutorial] minikube v1.25.2
✨  Using the docker driver based on existing profile
👍  Starting control plane node tekton-dashboard-tutorial in cluster tekton-dashboard-tutorial
🚜  Pulling base image ...
🔥  Creating docker container (CPUs=2, Memory=3886MB) ...
🐳  Preparing Kubernetes v1.23.3 on Docker 20.10.12 ...
    ▪ kubelet.housekeeping-interval=5m
    ▪ Generating certificates and keys ...
    ▪ Booting up control plane ...
    ▪ Configuring RBAC rules ...
🔎  Verifying Kubernetes components...
    ▪ Using image gcr.io/k8s-minikube/storage-provisioner:v5
🌟  Enabled addons: storage-provisioner, default-storageclass
🏄  Done! kubectl is now configured to use &#34;tekton-dashboard-tutorial&#34; cluster and &#34;default&#34; namespace by default
&lt;/pre&gt;
&lt;p&gt;You can check that the cluster was successfully created with &lt;code&gt;kubectl&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl cluster-info
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output confirms that Kubernetes is running:&lt;/p&gt;
&lt;pre&gt;
Kubernetes control plane is running at https://127.0.0.1:39509
CoreDNS is running at
https://127.0.0.1:39509/api/v1/namespaces/kube-system/services/kube-dns:dns/proxy

To further debug and diagnose cluster problems, use &#39;kubectl cluster-info dump&#39;.
&lt;/pre&gt;
&lt;h2 id=&#34;install-tekton-pipelines&#34;&gt;Install Tekton Pipelines&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To install the latest version of Tekton Pipelines, use &lt;code&gt;kubectl&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://infra.tekton.dev/tekton-releases/pipeline/latest/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Monitor the installation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get pods --namespace tekton-pipelines --watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When all components show &lt;code&gt;Running&lt;/code&gt; under the &lt;code&gt;STATUS&lt;/code&gt; column the installation
is complete.&lt;/p&gt;
&lt;p&gt;Hit &lt;em&gt;Ctrl + C&lt;/em&gt; to stop monitoring.&lt;/p&gt;
&lt;h2 id=&#34;install-tekton-dashboard&#34;&gt;Install Tekton Dashboard&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;To install the latest version of Tekton Dashboard, use &lt;code&gt;kubectl&lt;/code&gt;:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;https://infra.tekton.dev/tekton-releases/dashboard/latest/release-full.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;NOTE&lt;/strong&gt;: release-full.yaml &lt;a href=&#34;https://github.com/docs/install.md#installing-tekton-dashboard-on-kubernetes&#34;&gt;installs dashboard in READ-WRITE mode&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Monitor the installation:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get pods --namespace tekton-pipelines --watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;When all components show &lt;code&gt;Running&lt;/code&gt; under the &lt;code&gt;STATUS&lt;/code&gt; column the installation
is complete.&lt;/p&gt;
&lt;p&gt;Hit &lt;em&gt;Ctrl + C&lt;/em&gt; to stop monitoring.&lt;/p&gt;
&lt;h2 id=&#34;access-tekton-dashboard&#34;&gt;Access Tekton Dashboard&lt;/h2&gt;
&lt;p&gt;The Tekton Dashboard is not exposed outside the cluster by default, but we can access it by port-forwarding to the &lt;code&gt;tekton-dashboard&lt;/code&gt; Service on port 9097.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl port-forward -n tekton-pipelines service/tekton-dashboard 9097:9097
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can now open the Dashboard in your browser at http://localhost:9097&lt;/p&gt;
&lt;h2 id=&#34;grant-permissions&#34;&gt;Grant permissions&lt;/h2&gt;
&lt;p&gt;The import must be executed using a ServiceAccount with permissions to create the resources being imported.&lt;/p&gt;
&lt;p&gt;For this tutorial we will create a ClusterRole granting permission to create a number of Tekton resources, and a RoleBinding configuring this so that the &lt;code&gt;default&lt;/code&gt; ServiceAccount in the &lt;code&gt;tekton-dashboard&lt;/code&gt; namespace can create resources in the &lt;code&gt;default&lt;/code&gt; namespace.&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply -f - &lt;span style=&#34;color:#c30&#34;&gt;&amp;lt;&amp;lt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;apiVersion: rbac.authorization.k8s.io/v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;kind: ClusterRole
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: tekton-dashboard-tutorial
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;rules:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  - apiGroups:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - tekton.dev
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    resources:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - tasks
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - taskruns
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - pipelines
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - pipelineruns
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    verbs:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - get
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - create
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - update
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - patch
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;---
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;apiVersion: rbac.authorization.k8s.io/v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;kind: RoleBinding
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: tekton-dashboard-tutorial
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  namespace: default
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;roleRef:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  apiGroup: rbac.authorization.k8s.io
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  kind: ClusterRole
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: tekton-dashboard-tutorial
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;subjects:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  - kind: ServiceAccount
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    name: default
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    namespace: tekton-dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;import-some-tekton-resources-using-the-tekton-dashboard&#34;&gt;Import some Tekton resources using the Tekton Dashboard&lt;/h2&gt;
&lt;p&gt;We will import &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/main/docs/tutorial&#34;&gt;two simple Tasks and a Pipeline definition&lt;/a&gt; to demonstrate some of the features of the Dashboard.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;Navigate to the &amp;lsquo;Import resources&amp;rsquo; page in the Dashboard using the link in the main navigation&lt;/li&gt;
&lt;li&gt;Fill in the form providing the following information:
&lt;ul&gt;
&lt;li&gt;Repository URL: &lt;code&gt;https://github.com/tektoncd/dashboard&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Repository path: &lt;code&gt;docs/tutorial&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Target namespace: &lt;code&gt;default&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;If selecting a different value, ensure the selected ServiceAccount has permission to create resources in this namespace&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;Leave the default values for the rest of the fields&lt;/li&gt;
&lt;li&gt;Click the &lt;code&gt;Import and Apply&lt;/code&gt; button&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;view-the-progress-of-the-import&#34;&gt;View the progress of the import&lt;/h3&gt;
&lt;p&gt;The Dashboard creates a PipelineRun to import the specified Tekton resources.&lt;/p&gt;
&lt;p&gt;Click on the &lt;code&gt;View status of this run&lt;/code&gt; link to track the status of importing the Tekton resources. Alternatively, navigate to the PipelineRuns page and click on the name of the run in the table.&lt;/p&gt;
&lt;p&gt;The Tekton resources have been imported when the PipelineRun has completed successfully. You will see the following logs for the &amp;lsquo;import&amp;rsquo; step:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pipeline.tekton.dev/hello-goodbye created
task.tekton.dev/hello created
task.tekton.dev/goodbye created

Step completed successfully
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;create-a-taskrun&#34;&gt;Create a TaskRun&lt;/h2&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the TaskRuns page using the link in the main navigation&lt;/p&gt;
&lt;p&gt;You will see the TaskRun that was created by the import process. Let&amp;rsquo;s create another TaskRun using one of the Task definitions we just imported.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the Create button and fill in the form as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Namespace: &lt;code&gt;default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Task: &lt;code&gt;hello&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leave the default values for the rest of the fields&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the Create button to create the TaskRun&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once the TaskRun is created you will be taken to the TaskRuns page. View the logs by clicking the TaskRun name in the table.&lt;/p&gt;
&lt;p&gt;Wait until the TaskRun has completed successfully and you will see the following logs:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Hello World

Step completed successfully
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;create-a-pipelinerun&#34;&gt;Create a PipelineRun&lt;/h2&gt;
&lt;p&gt;Next let&amp;rsquo;s create a PipelineRun using all of the resources we imported.&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Navigate to the PipelineRuns page by clicking the link in the main navigation&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the Create button&lt;/p&gt;
&lt;p&gt;The form is similar to the one we saw for TaskRuns. Both forms are dynamic and provide Param fields based on the selected Task / Pipeline.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Fill in the form with the following information:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Namespace: &lt;code&gt;default&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Pipeline: &lt;code&gt;hello-goodbye&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Params &amp;gt; hello-greeting: &lt;code&gt;Hello from the tutorial 😀&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Leave the default values for the rest of the fields&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;Note: If you leave the hello-greeting field empty, the default value &lt;code&gt;Hello from a Pipeline&lt;/code&gt; defined in the Pipeline will be used.&lt;/p&gt;
&lt;/blockquote&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Click the Create button to create the PipelineRun&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Once the PipelineRun is created you will be taken to the PipelineRuns page. View the logs by clicking the PipelineRun name in the table. On the PipelineRun details page you will see two TaskRuns, &lt;code&gt;hello&lt;/code&gt; and &lt;code&gt;goodbye&lt;/code&gt;, matching the Tasks defined in our Pipeline. Each of these has a step &lt;code&gt;echo&lt;/code&gt; which displays a message in the logs.&lt;/p&gt;
&lt;p&gt;The logs for the &lt;code&gt;hello&lt;/code&gt; Task display the custom message we entered in the create form earlier.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Hello from the tutorial 😀

Step completed successfully
&lt;/code&gt;&lt;/pre&gt;&lt;h2 id=&#34;cleanup&#34;&gt;Cleanup&lt;/h2&gt;
&lt;p&gt;To delete the cluster that you created for this quickstart run:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;minikube delete --profile tekton-dashboard-tutorial
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The output confirms that your cluster was deleted:&lt;/p&gt;
&lt;pre&gt;
🔥  Deleting &#34;tekton-dashboard-tutorial&#34; in docker ...
🔥  Deleting container &#34;tekton-dashboard-tutorial&#34; ...
🔥  Removing /home/user/.minikube/machines/tekton-dashboard-tutorial ...
💀  Removed all traces of the &#34;tekton-dashboard-tutorial&#34; cluster.
&lt;/pre&gt;
&lt;h2 id=&#34;further-reading&#34;&gt;Further reading&lt;/h2&gt;
&lt;p&gt;Try out some of our &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/release-v0.65.x-lts/docs/walkthrough&#34;&gt;walk-throughs&lt;/a&gt; for more details on deploying and configuring the
Tekton Dashboard for some common scenarios.&lt;/p&gt;
&lt;p&gt;See &lt;a href=&#34;https://tekton.dev/vault/Dashboard-v0.65.x-LTS/install/#accessing-the-dashboard&#34;&gt;Accessing the Dashboard&lt;/a&gt; for details of alternative methods of exposing the Dashboard outside the cluster, including guidance for authentication and authorization.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://tekton.dev/vault/dashboard-v0.65.x-lts/install/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://tekton.dev/vault/dashboard-v0.65.x-lts/install/</guid>
      <description>
        
        
        &lt;h1 id=&#34;installing-tekton-dashboard&#34;&gt;Installing Tekton Dashboard&lt;/h1&gt;
&lt;p&gt;This guide explains how to install Tekton Dashboard. It covers the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#installing-tekton-dashboard&#34;&gt;Installing Tekton Dashboard&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#before-you-begin&#34;&gt;Before you begin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#pre-requisites&#34;&gt;Pre-requisites&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#supported-tekton-pipelines-and-tekton-triggers-versions&#34;&gt;Supported Tekton Pipelines and Tekton Triggers versions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#installing-tekton-dashboard-on-kubernetes&#34;&gt;Installing Tekton Dashboard on Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#installing-with-the-installer-script&#34;&gt;Installing with the installer script&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#accessing-the-dashboard&#34;&gt;Accessing the Dashboard&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#using-kubectl-proxy&#34;&gt;Using kubectl proxy&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#using-kubectl-port-forward&#34;&gt;Using kubectl port-forward&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#using-an-ingress-rule&#34;&gt;Using an Ingress rule&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#access-control&#34;&gt;Access control&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#uninstalling-the-dashboard-on-kubernetes&#34;&gt;Uninstalling the Dashboard on Kubernetes&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#next-steps&#34;&gt;Next steps&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;Choose the version of Tekton Dashboard you want to install. You have the following options:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://github.com/tektoncd/dashboard/releases&#34;&gt;Official&lt;/a&gt;&lt;/strong&gt; - install this unless you have a specific reason to go for a different release.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;&lt;a href=&#34;https://ghcr.io/tektoncd/dashboard&#34;&gt;Nightly&lt;/a&gt;&lt;/strong&gt; - may contain bugs, install at your own risk.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;[&lt;code&gt;HEAD&lt;/code&gt;]&lt;/strong&gt; - this is the bleeding edge. It contains unreleased code that may result in unpredictable behavior. To get started, see the &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/release-v0.65.x-lts/DEVELOPMENT.md&#34;&gt;development guide&lt;/a&gt; instead of this page.&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;pre-requisites&#34;&gt;Pre-requisites&lt;/h2&gt;
&lt;p&gt;In order to install the Tekton Dashboard, please make sure the following requirements are met:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;You must have a Kubernetes cluster running version 1.28.0 or later. Tekton Pipelines or other projects may require a newer version. The Dashboard may work on older Kubernetes versions but this is untested and not officially supported.&lt;/p&gt;
&lt;p&gt;If you don&amp;rsquo;t already have a cluster, you can create one for testing with &lt;code&gt;kind&lt;/code&gt;.
&lt;a href=&#34;https://kind.sigs.k8s.io/docs/user/quick-start/#installation&#34;&gt;Install &lt;code&gt;kind&lt;/code&gt;&lt;/a&gt; and create a cluster by running &lt;a href=&#34;https://kind.sigs.k8s.io/docs/user/quick-start/#creating-a-cluster&#34;&gt;&lt;code&gt;kind create cluster&lt;/code&gt;&lt;/a&gt;. This
will create a cluster running locally, with RBAC enabled and your user granted
the &lt;code&gt;cluster-admin&lt;/code&gt; role.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Tekton Pipelines must be installed in the cluster. See &lt;a href=&#34;https://github.com/tektoncd/pipeline/blob/main/docs/install.md&#34;&gt;Installing Tekton Pipelines&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Optionally, install Tekton Triggers. See &lt;a href=&#34;https://github.com/tektoncd/triggers/blob/main/docs/install.md&#34;&gt;Installing Tekton Triggers&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;supported-tekton-pipelines-and-tekton-triggers-versions&#34;&gt;Supported Tekton Pipelines and Tekton Triggers versions&lt;/h3&gt;
&lt;p&gt;Each Tekton Dashboard release is tested against specific Tekton Pipelines and Tekton Triggers versions. See the Tekton Dashboard release notes for details of the supported versions.&lt;/p&gt;
&lt;h2 id=&#34;installing-tekton-dashboard-on-kubernetes&#34;&gt;Installing Tekton Dashboard on Kubernetes&lt;/h2&gt;
&lt;p&gt;To install Tekton Dashboard on a Kubernetes cluster:&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;
&lt;p&gt;Run the following command to install Tekton Dashboard:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply --filename https://infra.tekton.dev/tekton-releases/dashboard/latest/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will install the Dashboard in read-only mode by default.&lt;/p&gt;
&lt;p&gt;Previous versions are available at &lt;code&gt;previous/$VERSION_NUMBER/*.yaml&lt;/code&gt;, e.g.
&lt;a href=&#34;https://infra.tekton.dev/tekton-releases/dashboard/previous/v0.32.0/release.yaml&#34;&gt;https://infra.tekton.dev/tekton-releases/dashboard/previous/v0.32.0/release.yaml&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;To install in read/write mode, use release-full.yaml.&lt;/p&gt;
&lt;p&gt;v0.31.0 and earlier used a different naming scheme for the release manifests:&lt;/p&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Mode&lt;/th&gt;
&lt;th&gt;Current&lt;/th&gt;
&lt;th&gt;v0.31.0 and earlier&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;read-only&lt;/td&gt;
&lt;td&gt;release.yaml&lt;/td&gt;
&lt;td&gt;tekton-dashboard-release-readonly.yaml&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;read/write&lt;/td&gt;
&lt;td&gt;release-full.yaml&lt;/td&gt;
&lt;td&gt;tekton-dashboard-release.yaml&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Monitor the installation using the following command until all components show a &lt;code&gt;Running&lt;/code&gt; status:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl get pods --namespace tekton-pipelines --watch
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;strong&gt;Note:&lt;/strong&gt; Hit CTRL+C to stop monitoring.&lt;/p&gt;
&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;Congratulations! You have successfully installed Tekton Dashboard on your Kubernetes cluster.&lt;/p&gt;
&lt;h2 id=&#34;installing-with-the-installer-script&#34;&gt;Installing with the installer script&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;v0.8.0&lt;/code&gt; and later releases provide an installer script to simplify deploying the Tekton Dashboard with custom options.&lt;/p&gt;
&lt;p&gt;You can refer to the dev docs for more info on &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/release-v0.65.x-lts/docs/dev/installer.md&#34;&gt;how to use the installer&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;For example:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;to install the latest release in read/write mode:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -sL https://raw.githubusercontent.com/tektoncd/dashboard/main/scripts/release-installer | &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;  bash -s -- install latest --read-write
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;to install with access to a subset of namespaces instead of full cluster access:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -sL https://raw.githubusercontent.com/tektoncd/dashboard/main/scripts/release-installer | &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;  bash -s -- install latest --read-write --tenant-namespaces tenant-namespace1,tenant-namespace2
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This will add the &lt;code&gt;--namespaces&lt;/code&gt; arg to the Dashboard deployment and create RoleBindings in each of the specified namespaces with appropriate roles granted to the Dashboard ServiceAccount.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;to install with support for loading logs from an external source:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;curl -sL https://raw.githubusercontent.com/tektoncd/dashboard/main/scripts/release-installer | &lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;\
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30;font-weight:bold&#34;&gt;&lt;/span&gt;  bash -s -- install latest --read-write --external-logs &amp;lt;logs-provider-url&amp;gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;See &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/release-v0.65.x-lts/docs/walkthrough/walkthrough-logs.md&#34;&gt;Tekton Dashboard walk-through - Logs persistence&lt;/a&gt; for details&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;accessing-the-dashboard&#34;&gt;Accessing the Dashboard&lt;/h2&gt;
&lt;p&gt;By default, the Dashboard is not exposed outside the cluster.&lt;/p&gt;
&lt;p&gt;There are several solutions described below for accessing the Dashboard UI depending on your setup.&lt;/p&gt;
&lt;h3 id=&#34;using-kubectl-proxy&#34;&gt;Using kubectl proxy&lt;/h3&gt;
&lt;p&gt;The Dashboard can be accessed through its ClusterIP Service by running &lt;code&gt;kubectl proxy&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Assuming &lt;code&gt;tekton-pipelines&lt;/code&gt; is the install namespace for the Dashboard, run the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl proxy
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Browse http://localhost:8001/api/v1/namespaces/tekton-pipelines/services/tekton-dashboard:http/proxy/ to access your Dashboard.&lt;/p&gt;
&lt;h3 id=&#34;using-kubectl-port-forward&#34;&gt;Using kubectl port-forward&lt;/h3&gt;
&lt;p&gt;An alternative way to access the Dashboard is using &lt;code&gt;kubectl port-forward&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Assuming &lt;code&gt;tekton-pipelines&lt;/code&gt; is the install namespace for the Dashboard, run the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl --namespace tekton-pipelines port-forward svc/tekton-dashboard 9097:9097
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Browse http://localhost:9097 to access your Dashboard.&lt;/p&gt;
&lt;h3 id=&#34;using-an-ingress-rule&#34;&gt;Using an Ingress rule&lt;/h3&gt;
&lt;p&gt;A more advanced solution is to expose the Dashboard through an &lt;code&gt;Ingress&lt;/code&gt; rule.&lt;/p&gt;
&lt;p&gt;This way the Dashboard can be accessed as a regular website without requiring &lt;code&gt;kubectl&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;Assuming you have an &lt;a href=&#34;https://kubernetes.io/docs/concepts/services-networking/ingress-controllers/&#34;&gt;ingress controller&lt;/a&gt; up and running in your cluster, and that &lt;code&gt;tekton-pipelines&lt;/code&gt; is the install namespace for the Dashboard, run the following command to create the &lt;code&gt;Ingress&lt;/code&gt; resource:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# replace DASHBOARD_URL with the hostname you want for your dashboard&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#09f;font-style:italic&#34;&gt;# the hostname should be setup to point to your ingress controller&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#033&#34;&gt;DASHBOARD_URL&lt;/span&gt;&lt;span style=&#34;color:#555&#34;&gt;=&lt;/span&gt;dashboard.domain.tld
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply -n tekton-pipelines -f - &lt;span style=&#34;color:#c30&#34;&gt;&amp;lt;&amp;lt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;apiVersion: networking.k8s.io/v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;kind: Ingress
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: tekton-dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  namespace: tekton-pipelines
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;spec:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  rules:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  - host: $DASHBOARD_URL
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    http:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      paths:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;      - pathType: ImplementationSpecific
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;        backend:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;          service:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;            name: tekton-dashboard
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;            port:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;              number: 9097
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can now access the Dashboard UI at &lt;code&gt;http(s)://dashboard.domain.tld&lt;/code&gt; in your browser (assuming the host configured in the ingress is &lt;code&gt;dashboard.domain.tld&lt;/code&gt;)&lt;/p&gt;
&lt;p&gt;Notes:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;The exact &lt;code&gt;Ingress&lt;/code&gt; resource definition may vary a little depending on the ingress controller installed in the cluster. Some specific annotations may be required for the ingress controller to process the &lt;code&gt;Ingress&lt;/code&gt; resource correctly&lt;/li&gt;
&lt;li&gt;If you don&amp;rsquo;t have access to a domain you can use the freely available &lt;a href=&#34;https://nip.io/&#34;&gt;&lt;code&gt;nip.io&lt;/code&gt;&lt;/a&gt; service&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;An example using the NGINX ingress controller to expose the Dashboard on a specific path instead of at the root of the domain:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-yaml&#34; data-lang=&#34;yaml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;apiVersion&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;networking.k8s.io/v1&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kind&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;Ingress&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;metadata&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-dashboard&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;namespace&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-pipelines&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;annotations&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;kubernetes.io/ingress.class&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;nginx&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;nginx.ingress.kubernetes.io/rewrite-target&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;/$2&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;&lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;spec&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;rules&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;  &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;host&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;domain.tld&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;    &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;http&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;paths&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;      &lt;/span&gt;- &lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;path&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;/tekton(/|$)(.*)&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;        &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;backend&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;          &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;service&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;name&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;tekton-dashboard&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;            &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;port&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;              &lt;/span&gt;&lt;span style=&#34;color:#309;font-weight:bold&#34;&gt;number&lt;/span&gt;:&lt;span style=&#34;color:#bbb&#34;&gt; &lt;/span&gt;&lt;span style=&#34;color:#f60&#34;&gt;9097&lt;/span&gt;&lt;span style=&#34;color:#bbb&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;You can then access the Dashboard UI at &lt;code&gt;http(s)://domain.tld/tekton/&lt;/code&gt;&lt;/p&gt;
&lt;h3 id=&#34;access-control&#34;&gt;Access control&lt;/h3&gt;
&lt;p&gt;The Dashboard does not provide its own authentication or authorization, however it will pass on any authentication headers provided to it by a proxy deployed in front of the Dashboard. These are then handled by the Kubernetes API server allowing for full access control via &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/&#34;&gt;Kubernetes RBAC&lt;/a&gt;. In case of forbidden access the Dashboard will display corresponding error notifications.&lt;/p&gt;
&lt;p&gt;See the walk-throughs for an example of &lt;a href=&#34;./walkthrough/walkthrough-oauth2-proxy.md&#34;&gt;enabling authentication using oauth2-proxy&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;By default the Dashboard accesses resources and performs actions in the cluster using the permissions granted to its own ServiceAccount (i.e. the &lt;code&gt;tekton-dashboard&lt;/code&gt; ServiceAccount in the &lt;code&gt;tekton-pipelines&lt;/code&gt; namespace). If you wish to have the Dashboard perform actions on behalf of the authenticated user or some other ServiceAccount this can be achieved via &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/authentication/#user-impersonation&#34;&gt;user impersonation&lt;/a&gt;. This is known to work with a number of popular solutions including oauth2-proxy, Keycloak, OpenUnison, Traefik, Istio&amp;rsquo;s EnvoyFilter, and more.&lt;/p&gt;
&lt;p&gt;Typically when configuring impersonation you would have the proxy forward its ServiceAccount token in the &lt;code&gt;Authorization&lt;/code&gt; header, and details of the user and groups in the &lt;code&gt;Impersonate-User&lt;/code&gt; and &lt;code&gt;Impersonate-Group&lt;/code&gt; headers respectively. See the docs of your chosen solution for details.&lt;/p&gt;
&lt;p&gt;When using a reverse proxy, with impersonation headers or the user&amp;rsquo;s account, you should remove the Dashboard&amp;rsquo;s privileges to better maintain a &amp;ldquo;least privileged&amp;rdquo; approach.  This will make it less likely that the Dashboard&amp;rsquo;s &lt;code&gt;ServiceAccount&lt;/code&gt; will be abused:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;kubectl delete clusterrolebinding -l rbac.dashboard.tekton.dev/subject=tekton-dashboard
kubectl delete rolebinding -l rbac.dashboard.tekton.dev/subject=tekton-dashboard -n tekton-pipelines
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;If you&amp;rsquo;re using one of these proxies to provide authentication but still want to use the Dashboard&amp;rsquo;s ServiceAccount to access the Kubernetes APIs you may need to modify the proxy config to prevent it from sending the &lt;code&gt;Authorization&lt;/code&gt; header on upstream requests to the Dashboard. Some examples of relevant config:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;oauth2-proxy: add the &lt;code&gt;--pass-authorization-header=false&lt;/code&gt; command line argument or its equivalent to your config &lt;a href=&#34;https://oauth2-proxy.github.io/oauth2-proxy/docs/configuration/overview#command-line-options&#34;&gt;https://oauth2-proxy.github.io/oauth2-proxy/docs/configuration/overview#command-line-options&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Istio EnvoyFilter: the external authentication service should return a custom header &lt;code&gt;x-envoy-auth-headers-to-remove: Authorization&lt;/code&gt; &lt;a href=&#34;https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto&#34;&gt;https://www.envoyproxy.io/docs/envoy/latest/api-v3/service/auth/v3/external_auth.proto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;Traefik: &lt;code&gt;removeHeader: true&lt;/code&gt; &lt;a href=&#34;https://doc.traefik.io/traefik/v2.0/middlewares/basicauth/#removeheader&#34;&gt;https://doc.traefik.io/traefik/v2.0/middlewares/basicauth/#removeheader&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;uninstalling-the-dashboard-on-kubernetes&#34;&gt;Uninstalling the Dashboard on Kubernetes&lt;/h2&gt;
&lt;p&gt;The Dashboard can be uninstalled by running the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl delete --filename https://infra.tekton.dev/tekton-releases/dashboard/latest/release.yaml
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The above command assumes that the current latest version was installed, refer to &lt;a href=&#34;#installing-tekton-dashboard-on-kubernetes&#34;&gt;Installing Tekton Dashboard on Kubernetes&lt;/a&gt; to find the correct &lt;code&gt;--filename&lt;/code&gt; argument if another version was installed.&lt;/p&gt;
&lt;h2 id=&#34;next-steps&#34;&gt;Next steps&lt;/h2&gt;
&lt;p&gt;To get started with Tekton Dashboard, see the &lt;a href=&#34;./tutorial.md&#34;&gt;tutorial&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;To add more functionality to your Tekton Dashboard, see the &lt;a href=&#34;./extensions.md&#34;&gt;Tekton Dashboard extensions&lt;/a&gt;&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Except as otherwise noted, the content of this page is licensed under the &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34;&gt;Creative Commons Attribution 4.0 License&lt;/a&gt;. Code samples are licensed under the &lt;a href=&#34;https://www.apache.org/licenses/LICENSE-2.0&#34;&gt;Apache 2.0 License&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://tekton.dev/vault/dashboard-v0.65.x-lts/extensions/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://tekton.dev/vault/dashboard-v0.65.x-lts/extensions/</guid>
      <description>
        
        
        &lt;h1 id=&#34;tekton-dashboard-extensions&#34;&gt;Tekton Dashboard extensions&lt;/h1&gt;
&lt;p&gt;This guide explains what Tekton Dashboard extensions are and how to manage them. It covers the following topics:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#before-you-begin&#34;&gt;Before you begin&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#resource-based-extensions&#34;&gt;Resource based extensions&lt;/a&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&#34;#extension-crd-apiversion-dashboardtektondevv1alpha1&#34;&gt;Extension CRD (apiVersion: dashboard.tekton.dev/v1alpha1)&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#example-register-a-cronjob-extension&#34;&gt;Example: Register a CronJob extension&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&#34;#example-extend-tekton-dashboard-service-account-permissions&#34;&gt;Example: Extend Tekton Dashboard service account permissions&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;before-you-begin&#34;&gt;Before you begin&lt;/h2&gt;
&lt;p&gt;Tekton Dashboard Extensions are currently alpha and are considered experimental. This means things could change at any time.&lt;/p&gt;
&lt;h2 id=&#34;resource-based-extensions&#34;&gt;Resource based extensions&lt;/h2&gt;
&lt;p&gt;Resource based extensions provide a simple and easy way to list and view resources inside a cluster. They are deployed as &lt;code&gt;Extension&lt;/code&gt; resources and the Dashboard will generate UI to display the chosen resources.&lt;/p&gt;
&lt;p&gt;Using them requires two steps (see an example below):&lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;create an &lt;a href=&#34;#extension-crd-apiversion-dashboardtektondevv1alpha1&#34;&gt;Extension resource&lt;/a&gt; in your cluster&lt;/li&gt;
&lt;li&gt;add RBAC rules to the Tekton Dashboard service account to allow it access to the target resources&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;See the &lt;a href=&#34;#example-register-a-cronjob-extension&#34;&gt;Example: Register a CronJob extension&lt;/a&gt; below for a working example.&lt;/p&gt;
&lt;h3 id=&#34;extension-crd-apiversion-dashboardtektondevv1alpha1&#34;&gt;Extension CRD (apiVersion: dashboard.tekton.dev/v1alpha1)&lt;/h3&gt;
&lt;h4 id=&#34;extension&#34;&gt;Extension&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;&lt;/td&gt;
&lt;td&gt;metav1.TypeMeta&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;metadata&lt;/td&gt;
&lt;td&gt;metav1.ObjectMeta&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;spec&lt;/td&gt;
&lt;td&gt;&lt;a href=&#34;#extensionspec&#34;&gt;ExtensionSpec&lt;/a&gt;&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Extension spec&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h4 id=&#34;extensionspec&#34;&gt;ExtensionSpec&lt;/h4&gt;
&lt;table&gt;
&lt;thead&gt;
&lt;tr&gt;
&lt;th&gt;Variable Name&lt;/th&gt;
&lt;th&gt;Type&lt;/th&gt;
&lt;th&gt;Required&lt;/th&gt;
&lt;th&gt;Default&lt;/th&gt;
&lt;th&gt;Description&lt;/th&gt;
&lt;/tr&gt;
&lt;/thead&gt;
&lt;tbody&gt;
&lt;tr&gt;
&lt;td&gt;apiVersion&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Extension resource group&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;name&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Extension resource name&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;disableResourceDetailsLinks&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;false&lt;/td&gt;
&lt;td&gt;Disable display of links to resource details pages&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;displayName&lt;/td&gt;
&lt;td&gt;string&lt;/td&gt;
&lt;td&gt;Yes&lt;/td&gt;
&lt;td&gt;-&lt;/td&gt;
&lt;td&gt;Display name in the Dashboard UI&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;namespaced&lt;/td&gt;
&lt;td&gt;boolean&lt;/td&gt;
&lt;td&gt;No&lt;/td&gt;
&lt;td&gt;true&lt;/td&gt;
&lt;td&gt;Specifies whether the Extension represents a namespaced resource&lt;/td&gt;
&lt;/tr&gt;
&lt;/tbody&gt;
&lt;/table&gt;
&lt;h3 id=&#34;example-register-a-cronjob-extension&#34;&gt;Example: Register a CronJob extension&lt;/h3&gt;
&lt;p&gt;To create an &lt;code&gt;Extension&lt;/code&gt; resource for &lt;code&gt;CronJob&lt;/code&gt;s run the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply -n tekton-pipelines -f - &lt;span style=&#34;color:#c30&#34;&gt;&amp;lt;&amp;lt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;apiVersion: dashboard.tekton.dev/v1alpha1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;kind: Extension
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: cronjobs
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;spec:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  apiVersion: batch/v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: cronjobs
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  displayName: k8s cronjobs
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;This adds a new item in the side nav of the Dashboard.&lt;/p&gt;
&lt;p&gt;Clicking on it will show an error though, you need to allow the Tekton Dashboard service account to access cronjobs in your cluster. See &lt;a href=&#34;#example-extend-tekton-dashboard-service-account-permissions&#34;&gt;next step&lt;/a&gt; to learn how you can easily extend RBAC rules of the service account.&lt;/p&gt;
&lt;h3 id=&#34;example-extend-tekton-dashboard-service-account-permissions&#34;&gt;Example: Extend Tekton Dashboard service account permissions&lt;/h3&gt;
&lt;p&gt;Extending the Tekton Dashboard service account can be done easily using &lt;a href=&#34;https://kubernetes.io/docs/reference/access-authn-authz/rbac/#aggregated-clusterroles&#34;&gt;ClusterRole aggregation&lt;/a&gt;. To support this method the Dashboard must be installed with the &lt;code&gt;--extensions-rbac&lt;/code&gt; flag to ensure that the aggregationRule is correctly configured.&lt;/p&gt;
&lt;p&gt;Create a &lt;code&gt;ClusterRole&lt;/code&gt; with the necessary permissions and the label &lt;code&gt;rbac.dashboard.tekton.dev/aggregate-to-dashboard: &amp;quot;true&amp;quot;&lt;/code&gt;.&lt;/p&gt;
&lt;p&gt;To add the necessary permissions for your cronjobs extension to work, run the following command:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;kubectl apply -f - &lt;span style=&#34;color:#c30&#34;&gt;&amp;lt;&amp;lt;EOF
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;kind: ClusterRole
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;apiVersion: rbac.authorization.k8s.io/v1
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;metadata:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  name: tekton-dashboard-cronjobs-extension
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  labels:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    rbac.dashboard.tekton.dev/aggregate-to-dashboard: &amp;#34;true&amp;#34;
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;rules:
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;  - apiGroups: [&amp;#34;batch&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    resources: [&amp;#34;cronjobs&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;    verbs: [&amp;#34;get&amp;#34;, &amp;#34;list&amp;#34;, &amp;#34;watch&amp;#34;]
&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#c30&#34;&gt;EOF&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Alternatively, if the &lt;code&gt;--extensions-rbac&lt;/code&gt; is not used, omit the label from the ClusterRole, and define the appropriate RoleBinding or ClusterRoleBinding yourself with the subject set to the &lt;code&gt;tekton-dashboard&lt;/code&gt; service account.&lt;/p&gt;
&lt;p&gt;Now the Tekton Dashboard will show &lt;code&gt;CronJob&lt;/code&gt;s in your cluster.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Except as otherwise noted, the content of this page is licensed under the &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34;&gt;Creative Commons Attribution 4.0 License&lt;/a&gt;. Code samples are licensed under the &lt;a href=&#34;https://www.apache.org/licenses/LICENSE-2.0&#34;&gt;Apache 2.0 License&lt;/a&gt;.&lt;/p&gt;

      </description>
    </item>
    
    <item>
      <title>Vault: </title>
      <link>https://tekton.dev/vault/dashboard-v0.65.x-lts/logs/</link>
      <pubDate>Mon, 01 Jan 0001 00:00:00 +0000</pubDate>
      
      <guid>https://tekton.dev/vault/dashboard-v0.65.x-lts/logs/</guid>
      <description>
        
        
        &lt;h1 id=&#34;tekton-dashboard-log-viewer&#34;&gt;Tekton Dashboard log viewer&lt;/h1&gt;
&lt;p&gt;This guide describes the features and functionality of the log viewer provided by the Tekton Dashboard on the &lt;code&gt;TaskRun&lt;/code&gt; and &lt;code&gt;PipelineRun&lt;/code&gt; details pages.&lt;/p&gt;
&lt;h2 id=&#34;basic-functionality&#34;&gt;Basic functionality&lt;/h2&gt;
&lt;p&gt;The Tekton Dashboard log viewer supports ANSI colour codes and text styles, and will automatically detect URLs in log content and render them as clickable links opening in a new window.&lt;/p&gt;
&lt;h2 id=&#34;toolbar&#34;&gt;Toolbar&lt;/h2&gt;
&lt;p&gt;The toolbar displayed in the log viewer includes a number of additional features, including:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;maximize: increase the area available to the log viewer by hiding the task list and run header. This allows the user to eliminate distractions from other parts of the app and focus on the log content.&lt;/li&gt;
&lt;li&gt;open in new window: open the raw logs in a separate browser window. This provides an unmodified and unprocessed view of the logs, without any of the added features provided by the log viewer.&lt;/li&gt;
&lt;li&gt;download: download the raw logs as a text file.&lt;/li&gt;
&lt;li&gt;user preferences: these are persisted to browser local storage and applied to all logs in the app. See the following sections for more details.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;timestamps&#34;&gt;Timestamps&lt;/h3&gt;
&lt;p&gt;The Dashboard will always request logs with timestamps from the Kubernetes pod logs API, and show / hide the timestamps in the log viewer based on the user&amp;rsquo;s preference. This can be toggled from the settings menu in the toolbar at the top of the log viewer.&lt;/p&gt;
&lt;p&gt;The timestamps are localised based on the user&amp;rsquo;s browser settings, with the raw timestamp value received from the API provided as a tooltip on hover.&lt;/p&gt;
&lt;p&gt;In releases prior to Tekton Dashboard v0.54, the timestamp preference was found on the Settings page, and governed whether or not timestamps were requested from the Kubernetes API server.&lt;/p&gt;
&lt;h3 id=&#34;log-levels&#34;&gt;Log levels&lt;/h3&gt;
&lt;p&gt;The log viewer parses log lines to detect the associated log level and decorate them accordingly to help with log consumability. The format supported is described below.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;timestamp&amp;gt; ::&amp;lt;level&amp;gt;::&amp;lt;message&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;timestamp&lt;/code&gt; is provided by the Kubernetes API server&lt;/li&gt;
&lt;li&gt;&lt;code&gt;level&lt;/code&gt; is one of &lt;code&gt;error&lt;/code&gt;, &lt;code&gt;warning&lt;/code&gt;, &lt;code&gt;notice&lt;/code&gt;, &lt;code&gt;info&lt;/code&gt;, &lt;code&gt;debug&lt;/code&gt;, &lt;code&gt;trace&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;debug&lt;/code&gt; and &lt;code&gt;trace&lt;/code&gt; logs are hidden by default&lt;/li&gt;
&lt;li&gt;any log line without an explicit &lt;code&gt;level&lt;/code&gt; is considered as &lt;code&gt;info&lt;/code&gt;, but will not display the log level badge to avoid redundancy in the UI where users are not using the supported log format&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;message&lt;/code&gt; is any other content on the line, and may contain ANSI codes for formatting, etc.&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;For example, the following snippet would output a log line at the &lt;code&gt;warning&lt;/code&gt; level:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;:⚠️:Something that may require attention but is non-blocking…&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;The displayed log levels can be changed via the settings menu in the toolbar at the top of the log viewer.&lt;/p&gt;
&lt;h3 id=&#34;log-groups&#34;&gt;Log groups&lt;/h3&gt;
&lt;p&gt;In addition to log levels, the log viewer also supports collapsible groups within the logs. The format supported is described below.&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&amp;lt;timestamp&amp;gt; ::group::&amp;lt;message&amp;gt;
…
&amp;lt;timestamp&amp;gt; ::endgroup::
&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A &lt;code&gt;group&lt;/code&gt; command marks the beginning of the group. The content of &lt;code&gt;message&lt;/code&gt; is displayed as the title / summary of the group along with an indicator of the group&amp;rsquo;s current state (i.e. expanded or collapsed). Clicking the summary will toggle the state of the group.&lt;/p&gt;
&lt;p&gt;Groups are rendered in the collapsed state by default unless the step is still in progress when the logs are viewed. The user can expand or collapse groups as desired and their state will be maintained until the user navigates to a different view.&lt;/p&gt;
&lt;p&gt;Log groups cannot be mixed with log levels on the same line, the &lt;code&gt;group&lt;/code&gt;, &lt;code&gt;endgroup&lt;/code&gt;, and log level commands are mutually exclusive. However, logs contained within a group can use log levels as normal.&lt;/p&gt;
&lt;p&gt;Nesting groups is not supported. A &lt;code&gt;group&lt;/code&gt; command will implicitly terminate any prior unterminated group.&lt;/p&gt;
&lt;p&gt;For example, the following snippet would output a log group with the summary &amp;lsquo;Additional config&amp;rsquo; containing a number of messages at the &lt;code&gt;info&lt;/code&gt; level:&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;background-color:#f0f3f3;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-sh&#34; data-lang=&#34;sh&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;::group::Additional config&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;This extends the base config&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;::info:: More info about the config…&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#366&#34;&gt;echo&lt;/span&gt; &lt;span style=&#34;color:#c30&#34;&gt;&amp;#39;::endgroup::&amp;#39;&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;logs-persistence&#34;&gt;Logs persistence&lt;/h2&gt;
&lt;p&gt;By default, Tekton Dashboard loads the logs from the Kubernetes API server, using the pod logs API. However, it also supports loading logs from an external source when the container logs or the pods associated with the &lt;code&gt;TaskRuns&lt;/code&gt; are no longer available on the cluster.&lt;/p&gt;
&lt;p&gt;This functionality is described in detail, along with a full walk-through of an example configuration, in &lt;a href=&#34;https://github.com/tektoncd/dashboard/tree/release-v0.65.x-lts/docs/walkthrough/walkthrough-logs.md&#34;&gt;Tekton Dashboard walk-through - Logs persistence&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;It can be enabled by providing the &lt;code&gt;--external-logs&lt;/code&gt; flag to the installer script, or configured directly in the Dashboard deployment&amp;rsquo;s args.&lt;/p&gt;
&lt;p&gt;When configured, the Dashboard will first attempt to load pod logs normally, and if they&amp;rsquo;re unavailable will fallback to the provided external logs service by making a &lt;code&gt;GET&lt;/code&gt; request to the provided endpoint with the following format:&lt;/p&gt;
&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;GET &amp;lt;external-logs&amp;gt;/&amp;lt;namespace&amp;gt;/&amp;lt;podName&amp;gt;/&amp;lt;container&amp;gt;?startTime=&amp;lt;stepStartTime&amp;gt;&amp;amp;completionTime=&amp;lt;stepCompletionTime&amp;gt;
&lt;/code&gt;&lt;/pre&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;namespace&lt;/code&gt;: the namespace containing the run&lt;/li&gt;
&lt;li&gt;&lt;code&gt;podName&lt;/code&gt;: the name of the &lt;code&gt;Pod&lt;/code&gt; resource associated with the selected &lt;code&gt;TaskRun&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;container&lt;/code&gt;: the name of the container associated with the selected &lt;code&gt;step&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stepStartTime&lt;/code&gt;: the start time of the step container&lt;/li&gt;
&lt;li&gt;&lt;code&gt;stepCompletionTime&lt;/code&gt;: the completion time of the step container&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;If the start / completion times are unavailable their respective query parameters will be omitted from the request.&lt;/p&gt;
&lt;hr&gt;
&lt;p&gt;Except as otherwise noted, the content of this page is licensed under the &lt;a href=&#34;https://creativecommons.org/licenses/by/4.0/&#34;&gt;Creative Commons Attribution 4.0 License&lt;/a&gt;. Code samples are licensed under the &lt;a href=&#34;https://www.apache.org/licenses/LICENSE-2.0&#34;&gt;Apache 2.0 License&lt;/a&gt;.&lt;/p&gt;

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