Giter Club home page Giter Club logo

dashboard's Introduction

Tekton Dashboard

License

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.

Dashboard UI workloads page

Compatibility

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

Pre-requisites

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.

Install Dashboard

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.

Optionally set up the Ingress endpoint

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.

Install on OpenShift

  1. 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 -
  1. 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
  1. 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 on Minishift

  1. Install tektoncd-pipeline-operator
  2. 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}
  1. Wait until the pod tekton-dashboard-1 is running in the namespace the Dashboard is installed into

Accessing the Dashboard on Minishift

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/

Uninstalling the Dashboard on Minishift

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

Accessing the Dashboard

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.

Want to contribute

We are so excited to have you!

dashboard's People

Contributors

alangreene avatar steveodonovan avatar akihikokuroda avatar a-roberts avatar skaegi avatar jessm12 avatar carolynmabbott avatar carlos-logro avatar vdemeester avatar mnuttall avatar dibbles avatar tekton-robot avatar vtereso avatar bobcatfish avatar gl4di4torrr avatar johscheuer avatar megan-wright avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.