The project explores an approach for easily accessing the summary report of the Kubernetes clusters based on the kube configuration file via Chrome/Edge extension. The project has been developed using React tech stack and TypeScript support.
Our approach provides easy-to-use | no-login | no-server | local-edge-storage interface for the dashboard. To achieve this, it involves uploading a kube config file in the extension to fetch the relavant details and store the config file in cookies and browser's local storage for future access to save user's time to access the dashboard.
We have explored different ways to store the config file locally but have been faced with some challenges:
- Storing the config file in browser's Cookies is not feasible because of the storage limits of Cookies in the browsers (~5 MB) while a typical config can take more space.
- Storing in browser's local storage has the required storage capacity but it does not seem to be fully secure because local storage can be accessed via javascript injection.
- A mix of both worlds, by storing encrypted version of the config file in local storage and corresponding encryption key in the cookies.
- Since, the extension is fully client-side and browsers don't allow filesystem access, thus accessing key and certificate from local Minikube cluster posses a difficulty.
Thus, facing these challenges and due to other commitments, we are not actively maintaining the project for now. We have made it open-source so that if anyone would like to continue working on the project can fork the repository, add any features and create a pull request (PR). We would be very happy to collaborate.
Geetesh Gupta - geetesh-gupta
Anshul Ahuja - anshulahuja98
Navigate to the project directory and install the dependencies.
$ npm install
To build the extension, and rebuild it when the files are changed, run
$ npm start
After the project has been built, a directory named dist
has been created. You have to add this directory to your Chrome browser:
- Open Chrome.
- Navigate to
chrome://extensions
. - Enable Developer mode.
- Click Load unpacked.
- Select the
dist
directory. - To view the console, click on
Background page
in extension details
NOTE:- Remember to reload the extension from extensions page.
For APIs:-
- To run the minikube with access to CORS,
minikube start --extra-config "apiserver.cors-allowed-origins=["http://\*"]"
- To access API, run
kubectl proxy