In the new era of cloud-native applications and Kubernetes, you’ll find new alternatives for dashboards and CLI tools every day. This is yet another Dashboard tool.
The project is still in a PoC phase and I highly advise against using this in any production environment. However, the project is perfectly suitable for local clusters such as Minikube and the perfect aid for cloud-native developers.
Following is the list of features currently covered, you can read more about each of them in their specific section.
- 100% Open Source
- Supersonic and Subatomic, built with Quarkus and compiled into an ultra-fast native-image
- 100% Reactive. Server-Sent Events, Redux, and ReactJS combo pack
- Search across all observed resources
- Support for OpenShift specific resources
- Responsive, mobile-first, clean, modern user interface
- Integrated YAML editor
- Support for Custom Resources
- Container Log Viewer for your Pods
- Remote Terminal for Pod Containers
- Security TBD
I implemented the Dashboard’s back-end with Quarkus and the YAKC Quarkus extension. This enables the build of a native binary and container image with subatomic memory foot-print and supersonic performance.
In the previous screenshots you can see that, once running, the Pod container uses < 50 MiB and starts up in less than 0.04 seconds.
The back-end uses the Server-Sent Events web standard to send a real-time stream of Kubernetes resource updates to the front-end. The front-end web application maintains a local state of the Kubernetes resources in a Redux store which enables the user-interface to update upon any change streamed by the back-end.
Since the cluster state is mirrored in the local Redux state, you can search and query real-time for any of the managed cluster resources in the combined search panel.
The dashboard detects the underlying cluster technology and presents any additional resources compatible with YAKC.
Additional resources for OpenShift clusters include Deployment Configs and Routes (as of now).
I wanted the user interface to be as modern and clear as possible and also to be mobile-first. I designed most interfaces to be properly rendered on mobile devices and leverage screen real-estate for devices with wider screens.
TO BE DECIDED. This project is still in the PoC phase. I’m still deciding what the best approach to security would be.
If you made it through here, it’s probably because you’re interested in trying out the project 🎉.
The easiest way to try it is to deploy the provided YAML configurations in your cluster. You can find out more in the specific section of the GitHub repository. Please make sure to read the YAML files and change anything you need before applying them to your cluster (you should never trust any Internet source).
Please share your experience, I’d really like to hear what you think of the project and how I can improve it.