Automate Software Packaging and Deployment through Kovair DevOps Helm Plugin

Listen to this article

Kovair DevOps Helm Plugin

Introduction

Helm helps us to manage Kubernetes applications. Helm Charts are used to define, install, and upgrade even the most complex Kubernetes applications.

Helm Charts are Kubernetes YAML manifests that are combined into a single package that can be deployed to the Kubernetes clusters. After packaging the helm chart, it can be installed into the cluster as easily as running a single helm install, which helps in simplifying the deployment of containerized applications in the Kubernetes cluster.

Major Concepts of Helm

The Helm Chart contains all of the resource definitions which are necessary to run an application, tool, or service inside of a Kubernetes cluster. It can be thought of as the Kubernetes equivalent of a Homebrew formula, an apt dpkg or a yum RPM file.

The Repository is the registry where the charts can be stored and shared.

The Release is an instance of the helm chart running in the Kubernetes cluster. One chart can often be installed multiple times into the same Kubernetes cluster and each time it gets installed, a new release is created in the cluster. We can think of installing the MySQL chart. If we want two databases running in our cluster, then we can install that MySQL chart twice. Each installation will have its release, which will in turn have its release name.

Thus, Helm installs charts into the Kubernetes cluster and creates a new release for each installation. We can also find new charts in Helm chart repositories.

Features of Helm

The first version of Helm followed a client-server architecture, which required two separate installations. One on the client side, the CLI, and the other on the server side, which is named Tiller. But due to some security concerns, Tiller was removed and Helm v3 is a client-only utility.

Helm provides numerous features for Kubernetes applications, which include:

  • Creating and Deploying Kubernetes manifest through a single CLI command. It can install other dependent charts as well.
  • Helm allows customizing application configuration during deployment so that one Helm Chart can be reused across multiple environments.
  • It easily streamlines CI/CD pipeline for Kubernetes workloads.
  • In case of issues in the deployment, Helm simplifies the rollback of Kubernetes applications. Helm achieves this by automatically maintaining all the versions of the releases.
  • Helm enables teams in automating the pre and post-deployment actions with its CI/CD integration hooks.

Kovair DevOps and Helm Plugin Use Cases

This plugin integrates Kovair DevOps with the Helm tool for automating the creation, packaging, configuration, and deployment of applications and services to Kubernetes clusters.

This plugin was developed and tested against Helm CLI client (helm) v3.9.3.

The Kovair DevOps Helm plugin is used to create a Helm Chart; the plugin also allows the users to install, update and roll back Kubernetes applications from our Kovair DevOps platform. In addition to this, our Helm plugin is enabled to be used with production-ready, pre-packaged charts for popular software like NGINX, MySQL, and MongoDB from a stable chart repository like Bitnami or Artifact Hub.

1. Integration with Kubernetes Cluster

This plugin helps in performing various operations (creation, installation, upgrade, uninstall) of Helm in the Kubernetes cluster. A specific task of Helm can easily be configured in the Kovair DevOps platform using the very handy interface of the Helm plugin. The helm tool operations are designed in such a way that no full helm command should be provided. The helm plugin will take a few inputs to perform the specific job.

To configure a task to be executed over the Kubernetes cluster, the end user first needs to select the container platform as Kubernetes. Additional input parameters like Chart Name, Chart Path, Release Name, and Other Options can be provided based on the selected operation types. The end user needs to provide a suitable execution host for the task to be executed.

The plugin fulfills the thought of installing, upgrading, and uninstalling the Helm chart as a series of tasks within a pipeline. It also provides an additional operation to execute generic helm commands over the Kubernetes cluster. This operation takes the complete helm command as an input and executes it as in the helm CLI.

2. Integration with the OpenShift Container Platform

This plugin helps in performing various operations (creation, installation, upgrade, uninstall) of Helm in the OpenShift Container Platform. The helm plugin will take the authentication credentials to authenticate with the OpenShift Container Platform along with a few additional inputs to perform the specific job.

To configure a task to be executed over the OpenShift Container Platform, the end user first needs to select the container platform as OpenShift along with the authentication credentials. Additional input parameters like Chart Name, Chart Path, Release Name, and Other Options can be provided based on the selected operation types. The end user needs to provide a suitable execution host for the task to be executed.

The plugin fulfills the thought of installing, upgrading, and uninstalling the Helm chart as a series of tasks within a pipeline. It also provides an additional operation to execute generic helm commands over the OpenShift Container Platform. This operation takes the complete helm command as an input and executes it as in the Helm CLI.

Conclusion

With the integration of the Helm plugin in the Kovair DevOps platform, end users do not require direct access to the Kubernetes cluster as well as the OpenShift Container Platform. The Helm plugin provides a user-friendly interface based on no-code/low-code to configure various jobs of the Helm tool. The plugin is compatible with the Kubernetes cluster as well as the OpenShift Container Platform.


Sajjad Ali is a Quality Assurance Engineer and a developer of Helm and OpenShift plugin for the Kovair DevOps platform. He is a DevOps and Cloud enthusiast. He is having a working experience in containerization and container orchestration tools like docker, OpenShift, and Kubernetes.

Leave a Reply

Your email address will not be published.