DEV Community

shah-angita for platform Engineers

Posted on

Helm 3: Advanced Package Management for Kubernetes Applications

Helm 3 is a significant upgrade to the Helm package manager for Kubernetes applications. This version introduces several key features that enhance the management and deployment of applications on Kubernetes clusters. In this blog, we will delve into the technical details of Helm 3 and explore its capabilities.

Package Management

Helm 3 uses a package manager called helm to manage and install applications on Kubernetes clusters. The helm command-line tool provides a simple and intuitive interface for users to manage their applications. The package manager is responsible for installing, upgrading, and uninstalling applications on the cluster.

Charts

Helm 3 uses a concept called charts to define and manage applications. Charts are collections of YAML files that describe the application, its dependencies, and the resources required to deploy it. Charts can be stored in a chart repository, which is a centralized location for managing and sharing charts.

Here is an example of a simple chart:

# Chart.yaml
name: my-app
version: 1.0.0
description: A simple web application
Enter fullscreen mode Exit fullscreen mode

Repositories

Helm 3 supports multiple chart repositories, which can be added and managed using the helm repo command. Repositories can be local or remote, allowing users to share and manage charts across different environments.

To add a repository:

helm repo add my-repo https://my-repo.com/charts
Enter fullscreen mode Exit fullscreen mode

Dependencies

Helm 3 introduces a new concept called dependencies, which allows charts to depend on other charts. This feature enables the creation of complex applications by combining multiple charts.

Here is an example of a chart with dependencies:

# Chart.yaml
name: my-app
version: 1.0.0
description: A simple web application
dependencies:
  - name: mysql
    version: 1.0.0
    repository: https://my-repo.com/charts
Enter fullscreen mode Exit fullscreen mode

Releases

Helm 3 introduces a new concept called releases, which represents a specific deployment of an application on a Kubernetes cluster. Releases are managed using the helm release command.

To create a new release:

helm install my-app --set mysql.password=mysecretpassword
Enter fullscreen mode Exit fullscreen mode

Upgrades and Rollbacks

Helm 3 provides features for upgrading and rolling back releases. Upgrades can be performed using the helm upgrade command, and rollbacks can be performed using the helm rollback command.

To upgrade a release:

helm upgrade my-app --set mysql.password=newpassword
Enter fullscreen mode Exit fullscreen mode

To rollback a release:

helm rollback my-app 1
Enter fullscreen mode Exit fullscreen mode

Security

Helm 3 introduces several security features, including support for SSL/TLS certificates and encryption of sensitive data.

To add an SSL/TLS certificate:

helm install my-app --set-file tls.crt=cert.pem --set-file tls.key=key.pem
Enter fullscreen mode Exit fullscreen mode

Helm 3 is designed to integrate with platform engineering tools and workflows, providing a robust and scalable solution for managing Kubernetes applications.

Conclusion

Helm 3 is a powerful tool for managing and deploying Kubernetes applications. Its advanced package management features, including charts, repositories, dependencies, releases, upgrades, and rollbacks, make it an ideal choice for complex application deployments. With its robust security features and integration with platform engineering tools, Helm 3 is a valuable addition to any Kubernetes environment.

Top comments (0)