Deployment Streamlining With the Use of Helm Chart Templates

Published: Jul 22. 2024
Helm Chart Templates

In this article, we will showcase the use of custom Helm templates for app deployment. Custom Helm templates offer many advantages that can be further enhanced with various CI/CD tools, although this article will not cover those tools. We will introduce you to these templates and how we utilize them at T4IT.

Introduction

Deploying apps is a tedious task, especially given the large number of customers in our portfolio. To address this issue, our DevOps department conducted extensive research and analysis and proposed using Helm templates to streamline the app deployment process.

What Are Helm Templates?

Helm is a package manager for Kubernetes. To "package" a Kubernetes resource, Helm uses templates for their YAML manifest files. This is why you might hear that Helm offers a templating approach for Kubernetes resource deployment.

To further explain what these templates are, we will use a simple real-world analogy. Imagine the templates as a car configurator. The car manufacturer offers various combinations for the car's color, interior, and technologies, but the final decision on how your car will look and feel is up to you as you input these specifications into the configurator.

 Helm Chart Templates

Our “Do It All” Template

Now that we have explained what these templates are, we will discuss our "do-it-all" template. At Touch4IT, we decided to develop a single, versatile template capable of deploying all our apps. This was a challenging task from the outset. To create an effective "do-it-all" template, we first had to analyze our entire portfolio and compile a list of requirements. With all the necessary information gathered, we began development, and today we have the first version of our "do-it-all" template.

Strength of the Templating Approach

Deploying our applications via templates offers many advantages over manual deployment. First, this method allows for rapid deployments and easy migrations from different deployment technologies to Helm templates. By simply filling out project-specific values in the universal template, the Helm chart handles everything else.

One significant strength is the use of values files. These files contain the necessary values for each microservice’s deployment. For example, if an app consists of five microservices, you would create five values files, each corresponding to one microservice. These values files are easily readable and understandable because they are not cluttered and each file only contains values for its specific microservice.

A key advantage of the custom Helm template is the ease of upgrades, rollbacks, and installations. Our custom template enhances the default behavior of Helm charts, allowing us to leverage the built-in upgradability and rollback features that are well-regarded by the community.

Moreover, the Helm template deployment approach enables us to fully automate the deployment process. While the initial deployment requires manual input to fill the values files, subsequent deployments can be fully automated.

Helm Chart Templates

Conclusion

Streamlining deployment via Helm templates offers numerous advantages, including faster deployments, easier migrations, and the potential for full automation. However, the initial cost of developing the "do-it-all" Helm template is a drawback, as it required rigorous analysis of our portfolio and multiple brainstorming sessions to cover all our needs.

 

 

Peter - DevOps
Peter DevOps
Tags
Deployment
Helm
Helm Templates
Kubernetes

Get in Touch with Us: 

Fill in this form, or, if you prefer, send us an email. Don’t worry, we’ll send you an NDA and your idea will be safe.