├── jest.setup.js ├── __mock__ └── fileMock.js ├── src ├── Images │ ├── Dao.PNG │ ├── Kirksey.PNG │ ├── Rennie.PNG │ ├── Yeung.PNG │ └── Esposito.PNG ├── scss │ ├── variables.scss │ ├── navVariables.scss │ ├── App.scss │ ├── index.scss │ ├── _loading.scss │ ├── _contact.scss │ ├── _login.scss │ ├── Navbar.module.scss │ └── _signup.scss ├── index.js └── components │ ├── Iframe.jsx │ ├── LoadingCube.jsx │ ├── App.jsx │ ├── ContactCard.jsx │ ├── Dashboard.jsx │ ├── Contact.jsx │ ├── Navbar.jsx │ ├── Signup.jsx │ └── Login.jsx ├── public └── gifs │ ├── register.gif │ ├── customize.gif │ └── installation.gif ├── .babelrc ├── index.html ├── server ├── database │ └── db.config.js ├── models │ └── userModel.js ├── routes │ └── userRoutes.js ├── server.js ├── controllers │ ├── userController.js │ ├── dashboardController.js │ └── installController.js └── dashJSONfiles │ └── dashboardTemplating.json ├── .gitignore ├── jest.config.js ├── prometheus-grafana.yaml ├── .eslintrc.json ├── LICENSE ├── webpack.config.js ├── __tests__ └── react │ ├── Navbar.test.js │ ├── App.test.js │ ├── Signup.test.js │ └── Login.test.js ├── package.json ├── README.md └── logs.txt /jest.setup.js: -------------------------------------------------------------------------------- 1 | import '@testing-library/jest-dom'; 2 | -------------------------------------------------------------------------------- /__mock__/fileMock.js: -------------------------------------------------------------------------------- 1 | module.exports = "test-file-stub"; -------------------------------------------------------------------------------- /src/Images/Dao.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/src/Images/Dao.PNG -------------------------------------------------------------------------------- /src/Images/Kirksey.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/src/Images/Kirksey.PNG -------------------------------------------------------------------------------- /src/Images/Rennie.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/src/Images/Rennie.PNG -------------------------------------------------------------------------------- /src/Images/Yeung.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/src/Images/Yeung.PNG -------------------------------------------------------------------------------- /public/gifs/register.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/public/gifs/register.gif -------------------------------------------------------------------------------- /src/Images/Esposito.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/src/Images/Esposito.PNG -------------------------------------------------------------------------------- /public/gifs/customize.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/public/gifs/customize.gif -------------------------------------------------------------------------------- /public/gifs/installation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/oslabs-beta/KuView/HEAD/public/gifs/installation.gif -------------------------------------------------------------------------------- /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": ["@babel/preset-env", "@babel/preset-react"], 3 | "plugins": ["babel-plugin-styled-components"] 4 | } 5 | -------------------------------------------------------------------------------- /src/scss/variables.scss: -------------------------------------------------------------------------------- 1 | // //UTILS 2 | $primary: #121212; 3 | 4 | // // MEDIA QUERIES 5 | @mixin mobile { 6 | @media screen and (max-width: 480px) { 7 | @content; 8 | } 9 | } 10 | -------------------------------------------------------------------------------- /index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 |
4 | 5 | 6 |43 | Monitor your Kubernetes clusters all in one place. Built with 44 | Prometheus and Grafana. 45 |
46 | Do you have an account? 47 | 48 | 49 | 50 |Sign up confirmed! ✅
} 70 |56 | Monitor your Kubernetes clusters all in one place. Built with 57 | Prometheus and Grafana. 58 |
59 | Don't have an account? 60 | 61 | 62 | 63 |Wrong username or password!
} 82 |
71 |
72 | _Once you type in your username, password, and email, the application will direct you to login._
73 |
74 | ## Installation
75 |
76 | 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.
77 |
78 | **We would highly recommend installing [HomeBrew](https://brew.sh/) manually before using KuView** to avoid possible installation issues.
79 |
80 |
81 |
82 | The dashboard will be saved onto your account and be displayed afterwards.
83 |
84 |
85 |
86 | 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!
87 |
88 | ## Considerations
89 |
90 | **As KuView is still early in it's development stage, there are a few things to keep in mind when using this application.**
91 |
92 | ### Port
93 |
94 | KuView requires a number of defult ports to operate. Please **avoid** using the ports listed below.
95 |
96 | For more information, execute the following command in your terminal `kubectl get services` after login for the first time.
97 | | Port | Application |
98 | |:---:|:-------------------|
99 | | **8080** | Kuview Dashboard |
100 | | **4000** | Express |
101 | | **9090** | Prometheus |
102 | | **3000** | Grafana |
103 |
104 | ### Accounts
105 |
106 | - 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.
107 |
108 | - 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.
109 |
110 | ## Open Source
111 |
112 | If you would like to contribute and make KuView a better Open Source Project, we welcome you with open arms.
113 |
114 | Below lists a table of features we currently have and future plans.
115 |
116 |