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:- Docker - Required for building and running containers
- Go - Version 1.24.0 or higher (check modules/go.work for the required version)
- Node.js - Version 18.14.0 or higher (check modules/web/package.json for the required version)
- Yarn - Version 3.3.0 (check modules/web/.yarnrc.yml for the required version)
Quick Start
After cloning the repository:-
Install web dependencies:
-
Start the development version:
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:- HTTPS: https://localhost:8443
- HTTP: http://localhost:8080
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:- golangci-lint - Go linting
- eslint - TypeScript/JavaScript linting
- stylelint - CSS/SCSS linting
- prettier - Code formatting
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