https://github.com/oslabs-beta/poseidon
This product was created specifically for developers that strongly desire a harmonious integration of various technologies into a single, one-stop-shop for managing your Kubernetes clusters!
https://github.com/oslabs-beta/poseidon
cypress-tests docker e2e-testing formik-yup grafana grafana-plugin helm kubecost kubernetes nextjs nosql-database prometheus-metrics react tailwindcss typescript
Last synced: 8 months ago
JSON representation
This product was created specifically for developers that strongly desire a harmonious integration of various technologies into a single, one-stop-shop for managing your Kubernetes clusters!
- Host: GitHub
- URL: https://github.com/oslabs-beta/poseidon
- Owner: oslabs-beta
- License: mit
- Created: 2023-01-17T23:14:26.000Z (almost 3 years ago)
- Default Branch: dev
- Last Pushed: 2023-04-26T17:43:34.000Z (over 2 years ago)
- Last Synced: 2025-04-30T19:09:06.901Z (8 months ago)
- Topics: cypress-tests, docker, e2e-testing, formik-yup, grafana, grafana-plugin, helm, kubecost, kubernetes, nextjs, nosql-database, prometheus-metrics, react, tailwindcss, typescript
- Language: TypeScript
- Homepage: https://www.os-poseidon.com/
- Size: 1.41 MB
- Stars: 87
- Watchers: 4
- Forks: 5
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## [](https://www.os-poseidon.com/)
[](https://nextjs.org/)
[](https://reactjs.org/)
[](https://www.typescriptlang.org/)
[](https://grafana.com/)
[](https://kubernetes.io/)
[](https://www.docker.com/)
[](https://prometheus.io/)
[](https://tailwindcss.com/)
[](https://www.mongodb.com/)
[](https://www.cypress.io/)
[](public/LICENSE)
### This Cluster Data Visualizer and Cost Analysis app delivers cost estimates, stunning visualizations, and crucial insights to optimize deployments and stay within budget.
[](https://medium.com/@drjoshdpt/poseidon-a-kubernetes-cluster-visualization-cost-analysis-tool-d0fb55c2858c)
[](https://youtu.be/hqeGqh0ksPg)
[](https://www.linkedin.com/company/osposeidon/)
Quick Start
1. Fork this repository to your profile, clone it to your local machine, navigate into the directory, then run `npm install`.
2. Ensure your local and/or cloud clusters are deployed, then within the root directory, create a `.env.local` file and paste in the following:
```
NODE_ENV = development
MONGO_URI = "[REPLACE THIS WITH YOUR MONGODB CONNECTION STRING]"
NEXTAUTH_URL = http://localhost:3500
BCRYPT_SALT = 10
NEXTAUTH_SECRET = 12345678910
KUBECOST_IP = "[REPLACE THIS WITH YOUR DEPLOYED KUBECOST IP ADDRESS]"
LOCAL_KUBECOST_IP = "[REPLACE THIS WITH YOUR LOCAL KUBECOST IP ADDRESS]"
LOCAL_CLUSTER_IP = "localhost:3300"
LOCAL_CLUSTER_NAME = "[REPLACE THIS WITH THE UNIQUE EMBED ID FROM YOUR LOCAL CLUSTER'S GRAFANA SHARE LINK]"
DEPLOYED_CLUSTER_IP = "[REPLACE THIS WITH YOUR DEPLOYED* CLUSTER IP ADDRESS]"
DEPLOYED_CLUSTER_NAME = "[REPLACE THIS WITH THE UNIQUE EMBED ID FROM YOUR CLOUD HOSTED GRAFANA SHARE LINK]"
DEPLOYED_CLUSTER_NAME_2 = "[OPTIONAL: REPLACE THIS WITH THE UNIQUE EMBED ID FROM YOUR CLOUD HOSTED GRAFANA SHARE LINK]"
```
- Be sure to replace the areas of all caps text including the enclosing square brackets with the specified information, then save the file.
- *Functions for both depolyments on AWS and/or Google.
- For more detailed instructions, please visit our website [os-poseidon.com/setup](https://www.os-poseidon.com/setup).
3. Regarding your command options:
- `npm run port` runs the application on port 3500 specifically for cloud deployments.
- `npm run forward` runs the application on port 3500 for both local and cloud deployments.
- `npm run test` assures that any processes on port 3500 is killed then in parallel runs the application on that port and opens Cypress.
## Current Features
- Cloud and local K8s cluster support
- Cluster metric visualization
- Cost-analysis via Kubecost
## Iteration Plans
- [ ] Apply a regex functionality to identify the id name from embed urls and provide an input field in the registration form to store cluster IP addresses for the client's ease of use.
- [ ] Connect a feature to directly customize cluster specifics
- [ ] Implement an authentication hierarchy to allow for role and privilege assignments. This secures and regulates any manipulations to an organization's clusters.
- [ ] Create a filter for the graphs on the dashboard for cluster and data types.
- [ ] Integrate D3.js for graph styling.
- [ ] Move forward with AWS hosting for online deployment of the app which allows for greater scalability and dependability.
- [ ] Develop a notification system within the application to enable users to receive notifications, such as through the Slack API, in case their clusters experiences downtime.
- [ ] Improve visual comfort and reduce eye strain by implementing dark mode and including dynamic display scaling.
## Connect with the Team!
| Joshuah Edwards | Sarah Chow | Alina Grafkina | Will Moody |
| :---: | :---: | :---: | :---: |
| [](https://github.com/JoshDPT) [](https://www.linkedin.com/in/joshuah-edwards/) | [](https://github.com/xtchow) [](https://www.linkedin.com/in/xtchow/) | [](https://github.com/alyagraf) [](https://www.linkedin.com/in/alina-grafkina-955a56179/) | [](https://github.com/wmoody6293) [](https://www.linkedin.com/in/william-moody/) |