Skip to content
Web-based GUI for the Gardener.
Branch: master
Clone or download
petersutter Merge pull request #332 from gardener/petersutter-patch-2
Update outdated config in
Latest commit b7b2cc7 Mar 21, 2019
Type Name Latest commit message Commit time
Failed to load latest commit information.
backend Manage workers (#324) Mar 8, 2019
charts Optional additional annotations for identity-ingress (#330) Mar 15, 2019
frontend Merge pull request #336 from gardener/navigation-fix Mar 21, 2019
scripts Changed Copyright to 2019 Feb 12, 2019
.gitignore #55 further improvement for event throttling. When collecting the bat… Apr 23, 2018
CODEOWNERS Initial version of the @gardener/dashboard Jan 23, 2018
Dockerfile Update version in package.json of backend on release build (#305) Feb 13, 2019
Makefile Optimize docker image build process (#260) Dec 12, 2018
VERSION Prepare next dev cycle 1.29.0-dev Feb 14, 2019

Gardener Dashboard


Gardener Demo

Development Setup


Install client and server dependencies

npm install --prefix frontend
npm install --prefix backend



If the dashboard is not running in the Garden Cluster you have to point the kubeconfig to Garden Cluster. This can be done in the default kubeconfig file in ${HOME}/.kube/config or by the KUBECONFIG environment variable.


The configuration file of the Gardener Dashboard can be specified as first command line argument or as environment variable GARDENER_CONFIG at the server process. If nothing is specified the default location is ${HOME}/.gardener/config.yaml.

A local configuration example for minikube and dex could look like follows:

port: 3030
logLevel: debug
logFormat: text
apiServerUrl: https://minikube # garden cluster kube-apiserver url
  audience: dashboard
  issuer: &issuer https://minikube:32001
  algorithms: [ RS256 ]
  ca: |
    -----END CERTIFICATE-----
  rejectUnauthorized: true
  cache: false
  rateLimit: false
  jwksRequestsPerMinute: 5
  jwksUri: https://minikube:32001/keys
    pathname: /api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy/
    authority: *issuer
    client_id: dashboard
    redirect_uri: http://localhost:8080/callback
    response_type: 'token id_token'
    scope: 'openid email profile groups audience:server:client_id:dashboard audience:server:client_id:kube-kubectl'
    loadUserInfo: false
    - start: 00 17 * * 1,2,3,4,5
    - start: 00 17 * * 1,2,3,4,5
      end: 00 08 * * 1,2,3,4,5
    production: ~

Run locally (during development)

Run the backend server with hot reload under localhost:3030.

npm run dev --prefix backend

Run the frontend server with hot reload under localhost:8080.

npm run serve --prefix frontend

All request to /api and /config.json with be proxied by default to the backend server.


Build frontend artifacts for production with minification

make build

The build results will be written to frontend/dist. The static resource path public of the backend server is symlinked to this directory.


Publish a new container image and publish to Google Container Registry.

npm run build --prefix frontend

This expects valid GCR credentials located at ${HOME}/.config/gcloud/gcr-readwrite.json. It will build a new image and pushes it to the container registry.


The following SAP developers contributed to this project until this initial contribution was published as open source.

contributor commits (%) +lines -lines first commit last commit
Holger Koser 313 (42%) 57878 18562 2017-07-13 2018-01-23
Andreas Herz 307 (41%) 13666 11099 2017-07-14 2017-10-27
Peter Sutter 99 (13%) 4838 3967 2017-11-07 2018-01-23
Gross, Lukas 31 (4%) 400 267 2018-01-10 2018-01-23

It is derived from the historical, internal gardener-ui repository at commit eeb623d60c86e6037c0e1dc2bdd9e54663bf41a8.


Apache License 2.0

Copyright 2019 The Gardener Authors

You can’t perform that action at this time.