https://github.com/oslabs-beta/kubevx
Designed with users in mind, KubeVX offers an engaging and intuitive interface to effortlessly understand and monitor Kubernetes clusters. Our standout features include a dynamic dashboard for key metrics, customizable visualizations, real-time alerts, and an AI-assisted cluster diagram for in-depth insights.
https://github.com/oslabs-beta/kubevx
ai docker kubernetes nodejs oauth2 react
Last synced: about 1 year ago
JSON representation
Designed with users in mind, KubeVX offers an engaging and intuitive interface to effortlessly understand and monitor Kubernetes clusters. Our standout features include a dynamic dashboard for key metrics, customizable visualizations, real-time alerts, and an AI-assisted cluster diagram for in-depth insights.
- Host: GitHub
- URL: https://github.com/oslabs-beta/kubevx
- Owner: oslabs-beta
- Created: 2023-11-18T02:40:18.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-01-21T07:19:05.000Z (over 2 years ago)
- Last Synced: 2025-04-30T19:15:03.656Z (about 1 year ago)
- Topics: ai, docker, kubernetes, nodejs, oauth2, react
- Language: JavaScript
- Homepage: https://www.kubevx.com/
- Size: 35.7 MB
- Stars: 43
- Watchers: 2
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README

[](https://www.javascript.com/)
[](https://nodejs.org/)
[](https://expressjs.com/)
[](https://reactjs.org/)
[](https://developer.mozilla.org/en-US/docs/Web/CSS)
[](https://developer.mozilla.org/en-US/docs/Web/HTML)
[](https://www.docker.com/)
[](https://kubernetes.io/)
[](https://prometheus.io/)
[](https://grafana.com/)
[](https://www.chartjs.org/)
[](https://helm.sh/)
[](https://cloud.google.com/kubernetes-engine)
[](https://azure.microsoft.com/en-us/services/kubernetes-service/)
[](https://aws.amazon.com/eks/)
[](https://www.mongodb.com/)
[](https://mui.com/)
[](https://redux.js.org/)
[](https://jwt.io/)
[](https://www.npmjs.com/package/react-table)





---
# KUBEVX
Welcome to KubeVX, an open-source solution crafted to enhance Kubernetes development with intuitive and efficient data presentation. Equipped with a user-friendly interface and powerful features, KubeVX simplifies Kubernetes complexities, allowing developers to focus sharply on optimizing application performance.
## Features
1. You will first see a login page. Go ahead and create an account.
2. Next, input data on your clusters so KubeVX can access it

3. You should be able to see metrics graphs under Dashboard

4. Cluster View features an AI chatbot powered by the OpenAI API. You will have to purchase an Open AI API key to use this feature. After purchasing, input your API key in this format "OPENAI_API_KEY={insert api Key}" in a .env file in your root folder. The logic to access this key is already built out at the top of AIController.js . The chatbot is programmed to only answer K8s related questions.

5. This is the learn kubernetes page. Click around and see definitions of each term.

6. You can use the custom metrics if you want to access specific information about your cluster that’s not displayed on the dashboard

7. The logs provide information of your cluster’s status while running

8. Alert page displays anomalies in your clusters so you can see what needs fixing

## Setup
Make sure you have the requirements installed:
MacOS,
Homebrew,
Helm,
Docker,
Minikube,
Grafana,
Prometheus.
Keep Docker running in the background.
First, clone our repo
### Prometheus
1. If you haven’t installed Helm, use homebrew:
```bash
brew install helm
```
2. Run these commands to install prometheus and helm-charts:
```bash
helm repo add prometheus-community https://prometheus-community.github.io/helm-charts
```
```bash
helm repo update
```
```bash
helm install prometheus prometheus-community/prometheus
```
3. This following command routes the port for Prometheus:
```bash
kubectl port-forward svc/prometheus-server 9090:80 -n default
```
### Grafana
1. Run these two commands:
```bash
brew install grafana
```
```bash
brew services start grafana
```
2. Open your web browser and navigate to http://localhost:3000/.
Log in with the default credentials:
Username: admin
Password: admin
Prometheus must be running on localhost:9090.
3. Search import dashboard -> input 1860 -> chose Prometheus -> import
Repeat this step for 7249 and 8588.
### Set Allow Embedding
1. Run this command in your terminal:
```bash
sudo pico /opt/homebrew/etc/grafana/grafana.ini
```
If you have a Mac with the Intel chip, use this command instead:
```bash
sudo pico /usr/homebrew/etc/grafana/grafana.ini
```
2. Scroll through the terminal with arrow keys to find the security section.
Set “allow_embedding = true” and make sure it is not commented out with a #.
Control + O to write out, press return/enter key to confirm and control + X to exit.
3. Run this command for changes to take effect:
```bash
brew services restart grafana
```
4. Go to http://localhost:3000/admin/settings on your browser to confirm.
### Set up YAML files
Run “minikube start” in your terminal to initialize minikube. It may take a while if this is a first-time setup.
Now you need to apply the yaml files at the root directory of kubeVX:
Run the following commands in your terminal:
```bash
kubectl apply -f webapp-deployment.yaml
```
```bash
kubectl apply -f webapp-service.yaml
```
```bash
minikube service webapp-service
```
### Start Application
```bash
npm install
```
```bash
npm run build
```
```bash
npm run dev
```
Once you complete setting up, you can navigate to localhost:7070 in your browser to see the result.
## Contributing
Contributions play a vital role in the open-source community. Any contributions are greatly appreciated!
- Fork the project.
- Create and work off of your feature branch.
- Create a pull request with a detailed description of your changes from your feature branch to dev branch.
- Please let us know when PR submission is done. Once the changes are reviewed and approved, we will merge your code into the main repository.
## Our Team
- Jerry Trinh [GitHub](https://github.com/jtrrain) | [LinkedIn](https://www.linkedin.com/in/jtjerrytrinh/)
- Jordan Palmer [GitHub](https://github.com/jordansjpalmer) | [LinkedIn](https://www.linkedin.com/in/jordansjpalmer/)
- Mai Dinh [GitHub](https://github.com/mai033) | [LinkedIn](https://www.linkedin.com/in/mai-dahlia)
- Patrick Wang [GitHub](https://github.com/pwang040) | [LinkedIn](https://www.linkedin.com/in/pwang040/)
- Pegah Chendari [GitHub](https://github.com/PegahCh) | [LinkedIn](https://www.linkedin.com/in/pegah-chendari/)