The missing CI/CD Kubernetes component: Helm package manager

Helm is a package manager for Kubernetes that helps you manage Kubernetes applications. It provides a way to define, install, and upgrade complex Kubernetes applications through Charts.

Helm is the best way to find, share, and use software built for Kubernetes. It helps you:

  • Manage complexity - Charts describe even the most complex apps
  • Easy updates - Take the pain out of updates with in-place upgrades and custom hooks
  • Simple sharing - Charts are easy to version, share, and host on public or private servers
  • Rollbacks - Use helm rollback to roll back to an older version of a release with ease

In a CI/CD pipeline, Helm provides:

  1. Versioning - Every deployment is versioned, making it easy to track changes
  2. Templating - Kubernetes manifests can be templated for different environments
  3. Dependencies - Charts can depend on other charts
  4. Rollbacks - Quick rollback to previous versions if something goes wrong
  5. Hooks - Execute actions at specific points in a release lifecycle

Helm uses a packaging format called Charts. A Chart is a collection of files that describe a related set of Kubernetes resources. A single chart might be used to deploy something simple, like a memcached pod, or something complex, like a full web app stack with HTTP servers, databases, caches, and so on.

Charts are created as files laid out in a particular directory tree, then they can be packaged into versioned archives to be deployed.

Integrating Helm into your CI/CD pipeline typically involves:

  1. Building and testing your Docker images
  2. Creating or updating Helm charts
  3. Using Helm to deploy to your Kubernetes cluster
  4. Running smoke tests
  5. Monitoring the deployment

This approach provides a clean separation between application code and deployment configuration, making it easier to manage multiple environments and applications.

Helm is an essential tool for managing Kubernetes applications in a production environment. It brings package management concepts to Kubernetes, making deployments more predictable, repeatable, and manageable. For teams running CI/CD pipelines on Kubernetes, Helm is the missing piece that ties everything together.