Tekton Dashboard is a general purpose, web-based UI for Tekton Pipelines. It allows users to manage and view Tekton Pipeline and Task runs and the resources involved in their creation, execution, and completion.
The table below shows which versions of tekton pipelines work with what versions of the tekton dashboard. To run the compatibility test follow the instructions in the test/start_compatibility_test.sh
0.1.0 | |
---|---|
0.5.0 | X |
0.5.1 | Y |
0.5.2 | Y |
The table below shows what versions of Istio and knative work with Webhooks Extension
0.6.0 | 0.7.0 | 0.7.1 | |
---|---|---|---|
1.2.0 | X | N | N |
1.2.1 | Y | N | N |
1.2.2 | Y | N | N |
1.2.3 | Y | N | N |
Tekton Pipelines 0.5 or later must be installed in order to use the Tekton Dashboard. Instructions to install Tekton Pipelines can be found here.
The Tekton Dashboard has a hosted image located at gcr.io/tekton-nightly/dashboard:latest To install the latest dashboard using this image:
kubectl apply -f config/release/gcr-tekton-dashboard.yaml
Alternatively, the dashboard can be installed through the same GitHub release asset:
curl -L https://github.com/tektoncd/dashboard/releases/download/v0/gcr-tekton-dashboard.yaml | kubectl apply -f -
Development installation of the Dashboard uses ko
:
sh
$ docker login
$ export KO_DOCKER_REPO=docker.io/<mydockername>
$ ./install-dev.sh
The install-dev.sh
script will build and push an image of the Tekton Dashboard to the Docker registry which you are logged into. Any Docker registry will do, but in this case it will push to Dockerhub. It will also apply the Pipeline0 definition and task: this allows you to import Tekton resources from Git repositories. It will also build the static web content using npm
scripts.
An Ingress definition is provided in the ingress
directory, and this can optionally be installed and configured. If you wish to access the Tekton Dashboard, for example on your laptop that has a visible IP address, you can use the freely available nip.io
service. A worked example follows.
Create the Ingress:
kubectl apply ingress/basic-dashboard-ingress.yaml
Retrieve a publicly available IP address (in this case running on a laptop connected to a public network):
ip=$(ifconfig | grep netmask | sed -n 2p | cut -d ' ' -f2)
Now modify the host
property for our Ingress to use the IP obtained above, with the tekton-dashboard
prefix and the .nip.io
suffix:
kubectl patch ing/tekton-dashboard -n tekton-pipelines --type=json -p='[{"op": "replace", "path": "/spec/rules/0/host", "value": '""tekton-dashboard.${ip}.nip.io""}]
You can then access the Tekton Dashboard at tekton-dashboard.${ip}.nip.io
. This endpoint is also returned via the "get Tekton Dashboard Ingress" API.
- Assuming you want to install the Dashboard into the
tekton-pipelines
namespace:
curl -L https://github.com/tektoncd/dashboard/releases/download/v0/gcr-tekton-dashboard.yaml | kubectl apply -f -
- Add a Route:
oc expose service tekton-dashboard \
-n tekton-pipelines \
--name "tekton-dashboard" \
--port="http" \
--hostname=tekton-dashboard.${openshift_master_default_subdomain}
$openshift_master_default_subdomain
in this example is mycluster.foo.com
. This gives you the following Route:
NAME HOST/PORT PATH SERVICES PORT TERMINATION WILDCARD
tekton-dashboard tekton-dashboard.mycluster.foo.com tekton-dashboard http None
- Access the dashboard at http://tekton-dashboard.mycluster.foo.com
This has been tested with the following OpenShift security settings (from oc get scc
):
NAME PRIV CAPS SELINUX RUNASUSER FSGROUP SUPGROUP PRIORITY READONLYROOTFS VOLUMES
anyuid false [] MustRunAs RunAsAny RunAsAny RunAsAny 10 false [configMap downwardAPI emptyDir persistentVolumeClaim projected secret]
hostaccess false [] MustRunAs MustRunAsRange MustRunAs RunAsAny <none> false [configMap downwardAPI emptyDir hostPath persistentVolumeClaim projected secret]
hostmount-anyuid false [] MustRunAs RunAsAny RunAsAny RunAsAny <none> false [configMap downwardAPI emptyDir hostPath nfs persistentVolumeClaim projected secret]
hostnetwork false [] MustRunAs MustRunAsRange MustRunAs MustRunAs <none> false [configMap downwardAPI emptyDir persistentVolumeClaim projected secret]
node-exporter false [] RunAsAny RunAsAny RunAsAny RunAsAny <none> false [*]
nonroot false [] MustRunAs MustRunAsNonRoot RunAsAny RunAsAny <none> false [configMap downwardAPI emptyDir persistentVolumeClaim projected secret]
privileged true [*] RunAsAny RunAsAny RunAsAny RunAsAny <none> false [*]
restricted false [] MustRunAs MustRunAsRange MustRunAs RunAsAny <none> false [configMap downwardAPI emptyDir persistentVolumeClaim projected secret]
- Install tektoncd-pipeline-operator
- Checkout the repository
If you want to install the dashboard into the tekton-pipelines namespace:
- Install the Dashboard
./minishift-install-dashboard.sh
If you want to install the dashboard into any other namespace:
- Install the Dashboard
./minishift-install-dashboard.sh -n {NAMESPACE}
- Wait until the pod
tekton-dashboard-1
is running in the namespace the Dashboard is installed into
The Dashboard can be accessed by running kubectl --namespace tekton-pipelines port-forward svc/tekton-dashboard 9097:9097
If installed into a namespace other than tekton-pipelines then the dashboard can be accessed by running kubectl --namespace $NAMESPACE port-forward svc/tekton-dashboard 9097:9097
You can access the web UI at http://localhost:9097/
The Dashboard can be uninstalled on Minishift by running the command ./minishift-delete-dashboard.sh
Use -n {NAMESPACE}
on the end of the command if installed into a namespace other than tekton-pipelines
The Dashboard can be accessed through its ClusterIP Service by running kubectl proxy
. Assuming tekton-pipelines is the install namespace for the dashboard, you can access the web UI at localhost:8001/api/v1/namespaces/tekton-pipelines/services/tekton-dashboard:http/proxy/
. An alternative way to access the Dashboard is using kubectl port-forward
e.g. if you installed the Tekton Dashboad into the tekton-pipelines
namespace (which is the deafult) you can access the Dashboard with kubectl --namespace tekton-pipelines port-forward svc/tekton-dashboard 9097:9097
and then just open localhost:9097
.
We are so excited to have you!
- See CONTRIBUTING.md for an overview of our processes
- See DEVELOPMENT.md for how to get started