DEV Community

Maxime Guilbert
Maxime Guilbert

Posted on • Updated on


Helm - Add some dynamism to your K8s deployment

When we begin with Kubernetes, we are writing a lot of commands or yaml files to generate all the elements we need. But, at a time, we have a lot of similar elements to create for each service, and we don't want to spend a lot of time on it.

So to help you on your Kubernetes deployments, you can use Helm.

Based on Jinja2, you can add a lot of dynamism to your deployments.

First, what is Jinja?

Jinja is a templating language for python for web pages.

It can :

  • display variables value dynamically
<li><a href="{{ user.url }}">{{ user.username }}</a></li>
Enter fullscreen mode Exit fullscreen mode
  • repeat a specific pattern for all the elements of the list
{% for user in users %}
  <li><a href="{{ user.url }}">{{ user.username }}</a></li>
{% endfor %}
Enter fullscreen mode Exit fullscreen mode
  • display specific parts based on a variable value
{% if 'priority' in data %}
    <p>Priority: {{ data['priority'] }}</p>
{% endif %}
Enter fullscreen mode Exit fullscreen mode
  • ...

Second, how to use helm?

Setup helm

When helm is installed, you have to create your Chart. It will contain the next files:

  • Chart.yaml: Will contains the chart definition
  • values.yaml: Will contains the default input values
  • .helmignore optional: Contains the file list to ignore when building a project
  • templates: Directory which contains all your yaml files.
    • _internal optional : An optional file to create some values, based on other input values.
    • your yaml files: Your yaml files to generate your secrets, deployments, and more! It's here where you can use the Jinja template!

Install chart

When your chart is ready, you can install it! It will deploy all your yaml files in the chart.

Command to install it

helm install

Then you can add a lot of options to the command

  • -f : Import a yaml file to override your default values
  • -n : Namespace where to deploy the elements
  • --set-string = : Will override a value
  • ...

Go check the documentation to have the list of all the options. (

Upgrade chart

Then you can upgrade your chart

helm upgrade

Uninstall chart

And when you want to delete it, you can use the following command

helm uninstall

The power of helm

It's quite cool to be able to add dynamism to your installations. But sometimes, you don't want to rewrite something to install a tool on Kubernetes.

So here is Artifact Hub!

Like Docker and its dockerhub, Helm gets its own public repo where you can find a lot of charts for a lot of tools!

Example with grafana
Alt Text


If you want to go further:

I know it's a quick show of Helm, but I hope it will help you! 😀

Top comments (0)

The AI Brief

AI generated git commit messages

Minimize the struggle of remembering what you just coded. AI-generated commits make it easier to manage projects and keep track of changes. The Nutlope/aicommits project demonstrates how AI can improve commit messages.

I open sourced an AI that creates any UI in seconds

Make AI-generated user interfaces a breeze. This open-source project harnesses the power of generative AI technologies like chatGPT to create versatile, quick, and intuitive UI components.

Use AI to commit like a PRO in 1 second

Upgrade your commit message game with AI. Boost your productivity by using ChatGPT to generate commit messages and avoid context switching. OpenCommit is an open-source library that helps you achieve this easily.

Build your own ChatGPT starter kit

Train AI models on custom data for improved domain-specific knowledge. Combine the power of WebView technologies and this starter kit to train your ChatGPT model on specific websites, allowing for better-optimized outcomes.