Komodor is a Kubernetes management platform that empowers everyone from Platform engineers to Developers to stop firefighting, simplify operations and proactively improve the health of their workloads and infrastructure.
Proactively detect & remediate issues in your clusters & workloads.
Easily operate & manage K8s clusters at scale.
Reduce costs without compromising on performance.
Empower developers with self-service K8s troubleshooting.
Simplify and accelerate K8s migration for everyone.
Fix things fast with AI-powered root cause analysis.
Explore our K8s guides, e-books and webinars.
Learn about K8s trends & best practices from our experts.
Listen to K8s adoption stories from seasoned industry veterans.
The missing UI for Helm – a simplified way of working with Helm.
Visualize Crossplane resources and speed up troubleshooting.
Validate, clean & secure your K8s YAMLs.
Navigate the community-driven K8s ecosystem map.
Kubernetes 101: A comprehensive guide
Expert tips for debugging Kubernetes
Tools and best practices
Kubernetes monitoring best practices
Understand Kubernetes & Container exit codes in simple terms
Exploring the building blocks of Kubernetes
Cost factors, challenges and solutions
Kubectl commands at your fingertips
Understanding K8s versions & getting the latest version
Rancher overview, tutorial and alternatives
Kubernetes management tools: Lens vs alternatives
Troubleshooting and fixing 5xx server errors
Solving common Git errors and issues
Who we are, and our promise for the future of K8s.
Have a question for us? Write us.
Come aboard the K8s ship – we’re hiring!
Hear’s what they’re saying about Komodor in the news.
Kubernetes Helm charts are the ‘packages’ of the Kubernetes world, similar to apt, yum, or homebrew for operating systems, or Maven, Gradle, and npm for programming languages. They are bundles of pre-configured Kubernetes resources.
Helm uses a packaging format called charts. A chart is a collection of files that describe a related set of Kubernetes resources. Charts are created as files laid out in a particular directory tree. They can be packaged into versioned archives to be deployed.
Helm charts allow for the simple creation, versioning, sharing, and publishing of applications that are designed to run on Kubernetes clusters. The use of Helm and Helm charts simplifies the process of defining, installing, and upgrading Kubernetes applications.
A Helm chart repository is a location where packaged charts can be stored and shared. Think of it as a library of applications ready to be deployed on Kubernetes. The repository indexes these packages so that they can be searched using Helm tooling. Technically, Helm repositories are HTTP servers that store packaged charts for distribution.
By default, Helm uses a public chart repository named stable, but you can configure it to use your own chart repository. This is especially useful for teams developing their own applications, as it allows them to store their charts in a central place and share them with others.
stable
Itiel Shwartz
Co-Founder & CTO
In my experience, here are tips that can help you better use Helm charts:
Helmfile simplifies managing multiple Helm charts by allowing you to define them declaratively.
Use tools like Helm test or Chart Testing to automate the testing of your Helm charts before deploying them.
Securely manage sensitive data in your Helm charts using Helm secrets for better security practices.
Design Helm templates to be reusable across multiple charts, reducing duplication and maintenance effort.
Specify version constraints in your Chart.yaml to ensure compatibility with Kubernetes versions.
Chart.yaml
Deploying applications using Helm involves pulling chart definitions from a repository, customizing them via configuration files, and then deploying the resulting application stack to a Kubernetes cluster:
values.yaml
helm install
helm list
helm upgrade
helm rollback
The chart directory is the top-level directory, with the same name as the chart, which contains all the files and directories that make up the chart. This directory is the most important one as it’s where all the chart resources are stored.
Within this directory, you’ll find a collection of files and directories that define the chart. These include the Chart.yaml file, a templates directory, and a values.yaml file.
templates
The templates directory is where Kubernetes resources are defined as templates. These templates are standard Kubernetes manifest files, but with the addition of templating directives from the Go templating language.
This directory contains files that will be transformed into Kubernetes manifest files when the chart is deployed. The templates directory is flexible and can contain Kubernetes manifest files for any type of resource that is supported.
The values.yaml file is a simple, easy-to-read file that is used to customize the behavior of the chart. This file is written in YAML format and contains default configuration values for the chart.
These values can be overridden by the user during installation or upgrade, allowing for extensive customization of the chart’s behavior. In essence, the values.yaml file enables users to tailor deployments to their specific needs.
Here is an example of a values.yaml file:
# Default values for my-application. # This is a YAML-formatted file. # Declare variables to be passed into your templates. replicaCount: 1 image: repository: nginx pullPolicy: IfNotPresent # Overrides the image tag whose default is the chart appVersion. tag: "" service: type: ClusterIP port: 80 resources: limits: cpu: 100m memory: 128Mi requests: cpu: 100m memory: 128Mi
This file sets default values for a hypothetical application. It specifies the number of replicas (1), the image to be used (in this case, nginx), the service type and port, and resource limits and requests for the application to be deployed.
chart.yaml is a mandatory file that holds meta-information about the chart. It includes details like the chart’s name, its version and description. Here is an example of a chart.yaml file:
chart.yaml
apiVersion: v2 name: my-application description: A Helm chart for Kubernetes # A chart can be either an 'application' or a 'library' chart. type: application # Chart version, should be incremented upon changes. version: 0.1.0 # Application version this chart installs. appVersion: "1.16.0"
This file defines the chart’s name (my-application), its description, the type of chart (application or library), the version of the chart, and the version of the application that the chart is installing.
Before we start with the installation process, it’s worth noting that Helm is compatible with macOS, Windows, and Linux. For the purpose of this tutorial, we’ll be using a Linux system. To install Helm, open your terminal and run the following commands:
curl https://baltocdn.com/helm/signing.asc | sudo apt-key add - sudo apt-get install apt-transport-https --yes echo "deb https://baltocdn.com/helm/stable/debian/ all main" | sudo tee /etc/apt/sources.list.d/helm-stable-debian.list sudo apt-get update sudo apt-get install helm
Once you’ve run these commands, you can verify your Helm installation by running helm version. If Helm is successfully installed, you should see the version of your Helm client printed in the terminal.
helm version
To initialize a Helm chart repository, we first need to add the official Helm charts repository, stable. We can do this by running the following command in our terminal:
helm repo add stable https://charts.helm.sh/stable
Once we’ve added the stable repository, we can update our list of charts by running helm repo update. This command will fetch the latest versions of all the charts from the stable repository.
helm repo update
After we’ve updated our repository, we can search for charts using the helm search repo command. For instance, if we want to search for all charts related to MySQL, we can run helm search repo mysql.
helm search repo
helm search repo mysql
Now, let’s install an example chart to see Helm in action. For this tutorial, we’ll be using the WordPress chart from the Bitnami public repository. WordPress is a popular open-source content management system, and you can use Helm to automatically deploy it in your Kubernetes cluster.
To install the WordPress chart, run the following command in your terminal:
helm install my-wordpress oci://registry-1.docker.io/bitnamicharts/wordpress
This command will create a new deployment of WordPress in your Kubernetes cluster. Helm will download the WordPress chart from the repository, generate a set of Kubernetes resources based on the values defined in the chart, and apply these resources to your cluster.
Once the command has completed, you can check the status of your deployment by running helm status my-wordpress. This command will print detailed information about your deployment, including the status of each individual Kubernetes resource that was created by the chart.
helm status my-wordpress
Related content: Read our guide to Kubernetes helm tutorial (coming soon)
Komodor’s platform streamlines the day-to-day operations and troubleshooting process of your Kubernetes apps. Specifically when it comes to Helm Charts, Komodor’s platform provides you with a visual dashboard to view the installed Helm charts, see their revision history and corresponding k8s resources. It also allows you to perform simple actions such as rolling back to a revision or upgrading to a newer version.
At its core, the platform gives you a real-time, high-level view of your cluster’s health, configurations, and resource utilization. This abstraction is particularly useful for routine tasks like rolling out updates, scaling applications, and managing resources. You can easily identify bottlenecks, underutilized nodes, or configuration drift, and then make informed decisions without needing to sift through YAML files or execute a dozen kubectl commands.
Beyond just observation, Komodor integrates with your existing CI/CD pipelines and configuration management tools to make routine tasks more seamless. The platform offers a streamlined way to enact changes, such as scaling deployments or updating configurations, directly through its interface. It can even auto-detect and integrate with CD tools like Argo or Flux to support a GitOps approach! Komodor’s “app-centric” approach to Kubernetes management is a game-changer for daily operational tasks, making it easier for both seasoned DevOps engineers and those new to Kubernetes to keep their clusters running smoothly, and their applications maintaining high-availability.
To learn more about how Komodor can make it easier to empower you and your teams to manage & troubleshoot K8s, sign up for our free trial.
Related content: Read our guide to helm dashboard
Share:
and start using Komodor in seconds!