An open API service indexing awesome lists of open source software.

https://github.com/oslabs-beta/kuview

KuView is an open-source tool offers a customizable, interactive dashboard to track and monitor local Kubernetes clusters with real-time metrics in a user-friendly UI.
https://github.com/oslabs-beta/kuview

developer-tools devops expressjs grafana-dashboard javascript k8s kubernetes nodejs

Last synced: 9 months ago
JSON representation

KuView is an open-source tool offers a customizable, interactive dashboard to track and monitor local Kubernetes clusters with real-time metrics in a user-friendly UI.

Awesome Lists containing this project

README

          


---

## Tech Stacks

![Kubernetes](https://img.shields.io/badge/Kubernetes-326ce5?style=for-the-badge&logo=kubernetes&logoColor=white)
![Docker](https://img.shields.io/badge/Docker-0db7ed?style=for-the-badge&logo=docker&logoColor=white)
![Prometheus](https://img.shields.io/badge/Prometheus-E7532D?style=for-the-badge&logo=prometheus&logoColor=white)
![Prometheus](https://img.shields.io/badge/Grafana-F69920?style=for-the-badge&logo=grafana&logoColor=white)
![JavaScript](https://img.shields.io/badge/javascript-%23323330.svg?style=for-the-badge&logo=javascript&logoColor=%23F7DF1E)
![React](https://img.shields.io/badge/react-%2320232a.svg?style=for-the-badge&logo=react&logoColor=%2361DAFB)
![ReactRouter](https://img.shields.io/badge/React_Router-CA4245?style=for-the-badge&logo=react-router&logoColor=white)
![Sass](https://img.shields.io/badge/Sass-CC6699?style=for-the-badge&logo=sass&logoColor=white)
![Node](https://img.shields.io/badge/-node-339933?style=for-the-badge&logo=node.js&logoColor=white)
![Express](https://img.shields.io/badge/express-%23404d59.svg?style=for-the-badge&logo=express&logoColor=%2361DAFB)
![Mongo](https://img.shields.io/badge/MongoDB-4EA94B?style=for-the-badge&logo=mongodb&logoColor=white)

• [Introduction](#introduction) • [Prerequisites](#prerequisites) • [Getting started](#getting-started) • [Installation](#installation) • [Considerations](#considerations) • [Open Source](#open-source) • [Creators](#creators) •


## Introduction

KuView is an open-source tool for simplified Kubernetes metric visualization. It offers a customizable, interactive dashboard to track and monitor local Kubernetes clusters with real-time metrics in a user-friendly UI.

## Prerequisites

This application requires you to have Docker, Minikube, and Kubectl installed in order to view your local kubernetes cluster. Please download based on your operating system from the official website or Github releases.

- Docker Desktop: [https://www.docker.com/products/docker-desktop/](https://www.docker.com/products/docker-desktop/)
- Minikube: [https://minikube.sigs.k8s.io/docs/start/](https://minikube.sigs.k8s.io/docs/start/)
- Kubectl: [https://kubernetes.io/docs/tasks/tools/](https://kubernetes.io/docs/tasks/tools/)

After these are installed, start Minikube with Docker:

- Open a terminal or command prompt and run `minikube start --driver=docker`. This will start the local Minikube cluster using Docker as the driver.
- To verify the status of your Minikube cluster, run `minikube status`.
- To interact with your minikube cluster, use the kubectl command line interface tools
- To stop and delete your Minikube cluster, you can run the commands `minikube stop` and `minikube delete`.

## Getting Started

To get started with opening the web application, first clone this repo onto your machine. In order to have the application work, you will need to create an .env file to store your mongo-URI and a port for the express server to run on. Within your .env file please type the following:

```js
MONGO_URI = '';
PORT = 4000;
```

Once that file is created, open the terminal and install all the packages with

```bash
npm install
```

then type in

```bash
npm run dev
```

On your browser, localhost:8080 should appear, and you are now running our application!

If this is your first time using the application, you will need to register an account. If you have already have an account, proceed with logging in.

_Once you type in your username, password, and email, the application will direct you to login._

## Installation

After typing in your credentials and logging in, our application will automatically handle the installation of Prometheus and Grafana on your Kubernetes cluster through helm and apply our custom .yaml files.

**We would highly recommend installing [HomeBrew](https://brew.sh/) manually before using KuView** to avoid possible installation issues.

The dashboard will be saved onto your account and be displayed afterwards.

You can now view your cluster metrics in real-time, and the dashboard will update automatically. Feel free to personalize the dashboard and rearrange the layout to your preference!

## Considerations

**As KuView is still early in it's development stage, there are a few things to keep in mind when using this application.**

### Port

KuView requires a number of defult ports to operate. Please **avoid** using the ports listed below.

For more information, execute the following command in your terminal `kubectl get services` after login for the first time.
| Port | Application |
|:---:|:-------------------|
| **8080** | Kuview Dashboard |
| **4000** | Express |
| **9090** | Prometheus |
| **3000** | Grafana |

### Accounts

- If a new account is created, any old account will have an issue loading the dashboard. This is due to a conflict in Grafana. Upon a new user login, KuView creates/overrides the existing Grafana dashboard and assigns it a new ID. for a smooth experience, please only use **one** account or the newest account created.

- We currently have an issue relaunching the Node server due to a persistent cookie after shutting down the app. This is because the Login page redirects to the dashboard without port forwarding. For a smooth experience, please either logout before killing the Node server or delete the cookie if you do encounter this issue.

## Open Source

If you would like to contribute and make KuView a better Open Source Project, we welcome you with open arms.

Below lists a table of features we currently have and future plans.

| Feature | Status |
| :--------------------: | :----: |
| Automate installation | 🎉 |
| Grafana yaml config | 🎉 |
| Custom dashboard | 🎉 |
| Password ecryption | 🎉 |
| Jest Front-end Testing | 🎉 |
| Jest Back-end Testing | ⏳ |
| Typescript conversion | ⏳ |
| Alert System | 🙌 |
| Node health Visualizer | 🙌 |
| Cluster Visualizer | 🙌 |

- 🎉 = **Completed!**
- ⏳ = **In Development!**
- 🙌 = **Open for Contribution!**


## Creators

| Creators | GitHub | LinkedIn |
| :-----------------: | :---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: | :-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------: |
| **Cameron Kirksey** | github | github |
| **Eric Esposito** | github | github |
| **Eric Rennie** | github | github |
| **Jason Yeung** | github | github |
| **Richard Dao** | github | github |