Helmets: A Helm Chart Visualizer

Megan Choi
3 min readJun 1, 2023

In the dynamic world of containerized application deployment, Helm charts have emerged as an essential tool for simplifying the management and deployment of applications on Kubernetes. Helm charts are packages containing pre-configured Kubernetes resource definitions, allowing developers to define and deploy complex applications with ease. A Helm chart encapsulates all the required resources, such as deployments, services, and configuration files, necessary to run an application in a Kubernetes cluster. Think of a Helm chart as a blueprint that outlines the structure and configuration of your application.

Key Components of a Helm Chart:

  1. Chart.yaml: This file contains metadata about the chart, including its name, version, and description. It serves as a reference point for Helm to manage and deploy the chart.
  2. Values.yaml: This file defines the default configuration values for the chart. It provides a way to parameterize the chart, enabling users to customize the application’s behavior during deployment.
  3. Templates: Templates are YAML files that define Kubernetes resources like deployments, services, and config maps. These templates allow for flexible configuration and customization of the application.

While Helm charts provide a powerful mechanism for managing application deployments on Kubernetes, they can become increasingly complex when charts are nested or include sub-charts. Nesting refers to the inclusion of one Helm chart within another, allowing for modular and reusable deployments. Multiple layers of nesting, inheritance of values, overrides, and intricate sub-chart dependencies can pose challenges when it comes to tracing the origin of specific values.

Helmets

Helmets is an open source application for visualizing Helm charts and tracing the origins of values within sub-charts. It’s built as a React/Express client/server app with frontend performance in mind, allowing users to easily upload and generate data flows to understand their charts.

Key Features

Chart Visualization

Charts are visualized with React Flow, in a familiar object-based structure. YAML files are parsed into JS objects for faster backend calculations and data flow tracing.

Upload a Helm Chart and select a template from the dropdown menu to view the top level Chart.yaml and Values.yaml.

Value Tracing

The main benefit of Helm charts is the ability to configure manifests from one values location. Helmets allows users to trace the data flow from the top-level values.yaml, through any relevant sub-chart values files, to the final destination manifest template files. The object-based data model allows Helmets to quickly traverse the Helm directory and generate the respective data flows.

Click on a value within a template file to trace back to where it was initialized or overwritten.

Open to Contributions

Helmets is an open source product developed under the tech accelerator, Open Source Labs. Feel free to visit Helmets GitHub to take a look around or contribute, all contributions are warmly welcomed.

Contributors and Co-Authors

--

--