Skip to main content

Overview

Kubernetes Dashboard is a web-based UI for managing Kubernetes clusters. The development environment consists of multiple interconnected modules that work together to provide a complete dashboard experience.

Architecture

The Kubernetes Dashboard consists of a few main modules:
  • API — Stateless Go module, which could be referred to as a Kubernetes API extension. It provides functionalities like:
    • Aggregation (i.e., returning metrics and events for pods)
    • Sorting
    • Filtering
    • Pagination
  • Auth — Go module handling authentication to the Kubernetes API.
  • Web — Module containing web application written in Angular and Go server with some web-related logic (i.e., settings). Its main task is presenting data fetched from Kubernetes API through API module.
  • Metrics Scraper — Go module used to scrape and store a small window of metrics fetched from the Kubernetes Metrics Server.

Prerequisites

Make sure the following software is installed and added to your path:

Quick Start

After cloning the repository:
  1. Install web dependencies:
    cd modules/web && yarn
    
  2. Start the development version:
    make serve
    
    This will:
    • Create a local kind cluster
    • Run all modules with Docker Compose
    • Make the dashboard available at http://localhost:8080
Make sure port 8080 is free on your localhost before running make serve.

Running Production Version

To run the production version of the application:
make run
This will make the dashboard available at:
Make sure ports 8443 and 8080 are free on your localhost.

Code Conventions

Go

When writing new Go code, follow conventions described in Effective Go. The project uses Go Report Card to monitor code quality.

Angular

For Angular code, follow conventions described in:

Linting Tools

The project uses the following tools for code quality:

Next Steps

Local Environment

Set up your local development environment

Building

Learn how to build the project

Testing

Run tests and ensure code quality

Contributing

Learn how to contribute to the project

Build docs developers (and LLMs) love