Limited Time Offer!

For Less Than the Cost of a Starbucks Coffee, Access All DevOpsSchool Videos on YouTube Unlimitedly.
Master DevOps, SRE, DevSecOps Skills!

Enroll Now

Helm Lab – 7: Managing Dependencies of Helm Charts

Managing dependencies is an essential aspect of creating and maintaining Helm charts, especially when building complex applications composed of multiple services or components. Here’s how you can manage dependencies of Helm charts effectively:

How to Define Helm Chart Dependencies?

In your Helm chart, specify the dependencies in either the requirements.yaml file (for Helm 2) or the Chart.yaml file (for Helm 3).

  1. Chart.yaml
  2. requirements.yaml

$ helm repo update
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add stable https://charts.helm.sh/stable

Example of Chart.yaml


apiVersion: v1
name: mychart
version: 1.0.0
dependencies:
- name: mysql
  version: 9.12.1
  repository: https://charts.bitnami.com/bitnami
- name: jenkins
  version: 2.5.4
  repository: https://charts.helm.sh/stable
- name: my-third-chart
  version: 0.1.0
  repository: "file:///home/ubuntu/charts/chart-dep/ourchart"

Example of a Chart.yaml file that defines dependencies:


apiVersion: v1
name: mychart
version: 1.0.0
dependencies:
- name: my-first-chart
  version: 1.0.0
  repository: file://../my-first-chart
- name: my-second-chart
  version: 1.0.0
  repository: https://artifacthub.io/
- name: my-third-chart
  version: 1.0.0
  repository: file://../my-third-chart

Example of requirements.yaml

$ helm repo update
$ helm repo add bitnami https://charts.bitnami.com/bitnami
$ helm repo add stable https://charts.helm.sh/stable

dependencies:
- name: mysql
  version: 9.12.1
  repository: https://charts.bitnami.com/bitnami
- name: jenkins
  version: 2.5.4
  repository: https://charts.helm.sh/stable
- name: my-third-chart
  version: 0.1.0
  repository: "file:///home/ubuntu/charts/chart-dep/ourchart"

$ helm dependency update
$ helm dependency list

Update Dependencies:

$ helm dependency update
$ helm dependency list

Run the helm dependency update command in the directory containing your Helm chart. This command downloads the specified dependencies and stores them in the charts/ directory within your chart’s directory.

helm dependency update: 
This command updates the dependencies for a chart. For example, the following command will update the dependencies for the chart mychart:
$ helm dependency update mychart

helm dependency list: 
This command lists the dependencies for a chart. For example, the following command will list the dependencies for the chart mychart:
$ helm dependency list mychart

helm dependency build: 
This command builds the dependencies for a chart. This is useful if you are developing a chart and want to test it with the latest versions of its dependencies. For example, the following command will build the dependencies for the chart mychart:
$ helm dependency build mychart

helm dependency pull: 
This command pulls the dependencies for a chart. This is useful if you want to download the dependencies for a chart without installing them. For example, the following command will pull the dependencies for the chart mychart:
$ helm dependency pull mychart

helm dependency upgrade: 
This command upgrades the dependencies for a chart to the latest version. For example, the following command will upgrade the dependencies for the chart mychart to the latest version:
$ helm dependency upgrade mychart

helm dependency list-all: 
This command lists all the dependencies for all the charts in a directory. For example, the following command will list all the dependencies for all the charts in the current directory:
$ helm dependency list-all

helm dependency remove: 
This command removes a dependency from a chart. For example, the following command will remove the dependency my-chart from the chart my-app:
$ helm dependency remove my-app my-chart
Rajesh Kumar
Follow me
Latest posts by Rajesh Kumar (see all)
Subscribe
Notify of
guest
0 Comments
Newest
Oldest Most Voted
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x