Sign inSign up

kubeshop/testkube-dashboard

By kubeshop

•Updated over 2 years ago

Testkube Kubernetes Dashboard

Image
0

100K+

kubeshop/testkube-dashboard repository overview

:warning: The Open Source version of the Testkube Dashboard is being deprecated.
For further details and next steps, please refer to our official announcement⁠.


Testkube Logo

Welcome to Testkube - Your friendly cloud-native testing framework for Kubernetes

Website⁠ | Documentation⁠ | Twitter⁠ | Slack⁠ | Blog⁠


⁠Testkube Dashboard

Dashboard to manage your Testkube⁠ cluster and monitor its real-time results.

The Dashboard is deployed as an application in the cluster. It runs in a browser, and it communicates with the Testkube API Server⁠ via Ingress Controller (either provided or bundled).

⁠Table of Contents

  1. Running Dashboard⁠
    1. Bundled⁠
    2. Repository⁠
    3. Docker⁠
  2. Configuring Application⁠
    1. Environment Variables⁠
    2. Building Docker Image⁠
  3. Learn More⁠
    1. Contributing and Architecture⁠
    2. Telemetry⁠
    3. Testkube⁠

⁠Running Dashboard

⁠Bundled

By default, Dashboard is installed in your cluster along with your Testkube system.

To use the bundled Dashboard, run testkube dashboard command with Testkube CLI⁠, to forward the UI and API ports from the Kubernetes cluster.

:warning: Testkube Pro and Enterprise

This Dashboard works only for the Testkube Open Source installations. To manage the Testkube in Enterprise or Pro offering, use their corresponding dashboards:

:eight_spoked_asterisk: Disable bundling dashboard

To disable Dashboard installation with the Testkube system, you may use testkube-dashboard.enabled=false value in the Helm chart⁠.

⁠Repository

To run the Testkube Dashboard for development:

  • Install Node 20.x
  • Fork the repository and clone it (or just clone it, if you are Testkube member or want to read it only)
  • Install NPM dependencies
  • Run npm start command
git clone [email protected]:kubeshop/testkube-dashboard.git && cd testkube-dashboard
npm install
npm start

To learn more about the Testkube Dashboard development and architecture, see the Contribution manual⁠.

:eight_spoked_asterisk: Environment variables

To configure your environment variables⁠, either:

  • create .env file in the repository, or
  • export the environment variables globally

You may use both build time⁠ and dynamic variables⁠ here.

Please note, that you may want to use Create React App's variables⁠ too, i.e. BROWSER=none to avoid opening the browser.

⁠Docker

The Docker images for the Testkube Dashboard are deployed to the Docker Hub as kubeshop/testkube-dashboard⁠.

To start Dashboard using Docker, run the image with the dynamic environment variables⁠ you would like to pass, i.e.:

docker run --rm \
  -p 8080:8080 \
  -e REACT_APP_API_SERVER_ENDPOINT=https://demo.testkube.io/results/v1 \
  kubeshop/testkube-dashboard:latest
:warning: Environment variables

To override the build time environment variables⁠ too, you need to build the Docker image⁠ on your own.

⁠Configuring Application

⁠Environment Variables

All the Dashboard is configured with the environment variables.

Part of them is included directly in the production build, while the rest may be modified for the running application.

The latest variables are listed in env.ts⁠ file, but for simplicity we keep them documented below too.

:eight_spoked_asterisk: Deep-linking overrides

You may temporarily override the variables in the running application using the query string. The Dashboard seeks for query params starting with ~ and try to override any matching known variable.

The query param name should be a variable name, but for simplicity it may omit REACT_APP_ prefix and is case-insensitive. Short name from the tables above may be used.

As an example, to change the API endpoint, you may use https://demo.testkube.io?~api_server_endpoint=http://localhost:8088.

⁠Build Time Variables

The build time environments are loaded from process.env during build time.

NameShort NameDescription
REACT_APP_SENTRY_DSNsentry_dsnSentry⁠ DSN for error reporting
REACT_APP_GTM_IDgtm_idGoogle Tag Manager⁠ ID for telemetry
REACT_APP_VERSIONversionDashboard version used for reporting and displaying
⁠Dynamic Variables

The dynamic variables are loaded from automatically generated env-config.js file.

NameShort NameDescription
REACT_APP_API_SERVER_ENDPOINTapi_server_endpointURL for the Testkube API Server
REACT_APP_DISABLE_TELEMETRYdisable_telemetryForce disabling telemetry in the Dashboard
REACT_APP_DEBUG_TELEMETRYdebug_telemetryDisplay debugging information about telemetry in the console log
REACT_APP_CRD_OPERATOR_REVISIONcrd_operator_revisiontestkube-operator⁠'s branch for getting the JSON Schema for CRDs
REACT_APP_ROUTE_BASENAMEroute_basenameBasename for the application. Use only when your Dashboard is accessible via different path than /
⁠Building Docker Image

To build the Docker image of Testkube Dashboard locally, simply build the Dockerfile⁠, optionally with the environment variables⁠ from above.

docker build \
  --build-arg REACT_APP_API_SERVER_ENDPOINT=https://demo.testkube.io/results/v1 \
  -t kubeshop/testkube-dashboard:latest .
:eight_spoked_asterisk: Environment variables

When you are building images with docker build, you may either both set the build time variables⁠, and set defaults for the dynamic variables⁠.

⁠Learn more

⁠Contributing and Architecture

To learn more about the Testkube Dashboard development and architecture, see the Contribution manual⁠.

⁠Telemetry

To learn more about what custom events we expose to Google Tag Manager⁠, see Telemetry⁠ document.

⁠Testkube
  • For the documentation of the Testkube system, see docs.testkube.io⁠.
  • To see the live demo, you may take a look at demo.testkube.io⁠ (some API endpoints are disabled there though, to avoid modifications)

Unleash the power of cloud native testing in Kubernetes with Testkube.

Tag summary

Content type

Image

Digest

sha256:aac04c6c6…

Size

25.1 MB

Last updated

over 2 years ago

docker pull kubeshop/testkube-dashboard