Skip to content

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!

Notifications You must be signed in to change notification settings

oslabs-beta/poseidon

Repository files navigation

banner

Next JS React TypeScript Grafana Kubernetes Docker Prometheus TailwindCSS MongoDB Cypress License

This Cluster Data Visualizer and Cost Analysis app delivers cost estimates, stunning visualizations, and crucial insights to optimize deployments and stay within budget.

Medium YouTube LinkedIn

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.
  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
GitHub LinkedIn GitHub LinkedIn GitHub LinkedIn GitHub LinkedIn

About

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!

Topics

Resources

Code of conduct

Security policy

Stars

Watchers

Forks

Contributors 4

  •  
  •  
  •  
  •