Introducing Ahoy! — A GUI for Helm

Helm is a popular package manager for Kubernetes clusters and used by DevOps engineers everywhere. Like many technologies, the software is operated entirely from the command line, which makes visualization somewhat difficult. For the visual interface services that already exist, they hide some of the most basic Helm functionality behind a paywall.

Wouldn’t it be great if there were a free, open source interface for the software that didn’t require a premium membership to access all its functionality? Introducing Ahoy!. Ahoy! is an easy-to-use graphical user interface for running your Kubernetes clusters and doesn’t hide any of the basic Helm commands behind a paywall.

HOW DOES IT WORK?

DevOps engineers may ask why you would need a visual interface for Helm. Any engineer working on DevOps technologies is intimately familiar with the command line and likely has learned to utilize the technology with relative ease. However, when it comes to being able to visualize all running clusters and perform essential Helm commands without losing sight of the big picture, there are not many available options. That’s where Ahoy! shines. We have integrated a Local Charts list that displays chart repositories ready to install from a local directory. A custom name field allows an engineer to easily add a custom name to their chart and install it with the click of a button.

Available Charts Display

Once installed, the chart release will appear below in the Installed Charts list, along with the chart’s essential information.

Installed Chart Details

A history button appears next to each installed chart, which, when clicked, displays a dropdown of all previous releases of the current chart. A rollback icon appears next to each previous release name, that lets you automatically roll your chart back to that release and view a new, updated history.

History Display

To edit a chart repository in your local directory, simply click the file icon next to the install button, which will take you to the chart’s location in your file tree. From there, you can easily load it up in your code editor of choice and make any necessary changes. In-app chart upgrades are still being developed for Ahoy!, so currently upgrades need to be called from the command line. Once the chart is upgraded, the newest version will appear upon clicking the History button for that chart in Ahoy!

One other feature available in Ahoy! is the Launch Dashboard feature, which allows the developer to open up the Kubernetes dashboard on their default browser to see the details of all their currently deployed clusters.

Ahoy! is built with Electron and React and works on any OS. We made use of the Node.js child process module for communicating with the command line and running all the Helm commands featured in the application.

UPCOMING FEATURES

There are so many more features we want to incorporate into Ahoy! including:

  • an in-app file viewer that displays changes between consecutive releases of an installed chart, to easily track exactly how a release has changed over time
  • a search and import feature for downloading and installing chart repositories directly from ArtifactHub
  • the chart upgrade button mentioned earlier to streamline the process of Helm upgrades
  • an environment monitor that shows whether Kubernetes is running on the machine and what version of Helm is being used

For a full list of features we plan to incorporate, take a look at our GitHub.

GET INVOLVED

So how do I start using the app? You can download Ahoy! by checking out our GitHub or by visiting our website where you’ll find everything you need to get started. Also make sure to follow Ahoy! on LinkedIn to keep up to date. We are so excited to launch Ahoy!, and we are always looking for ways to make it better, so please let us know what you’d like to see in the app. Feel free to submit any issues or contribute to the open-source project on our GitHub.

Ahoy! Engineers and Co-Authors:

Ahoy! is a beta product developed in partnership with OSLabs.

Software engineer