Build a Helm Umbrella Chart
Learn the refactoring of a generic Helm chart into specific charts and combine it with an umbrella chart.
We'll cover the following...
We’ll be building an umbrella chart for the entire Kanban stack, including the front-end and back-end Service, and the database.
The first step is to create two separate charts—kanban-frontend
and kanban-backend
. Therefore, copy and paste the entire /app
folder and rename it accordingly.
Refactor sub-charts
The kanban-frontend
chart
Let’s start with correcting the kanban-frontend
chart. We’ll first adjust our Chart.yaml
file:
apiVersion: v2name: kanban-frontenddescription: A Helm chart for kanban-frontendtype: applicationversion: 0.1.0appVersion: "1.16.0"
We’ve renamed a chart, changed a description, and removed the dependencies
property because we don’t need to have a database for a front-end Service.
Next, we’ll move on to the /kanban-frontend/templates/deployment.yaml
file, for which we don’t need to inject environment variables; therefore, we can remove that part. So the resultant Deployment file would be as follows:
apiVersion: apps/v1kind: Deploymentmetadata:name: {{ include "fullName" . }}labels: {{ include "labels" . | nindent 4 }}spec:replicas: {{ .Values.replicaCount }}selector:matchLabels:app: {{ include "fullName" . }}template:metadata:labels: {{ include "labels" . | nindent 8 }}spec:containers:- name: {{ include "fullName" . }}{{- with .Values.container }}image: {{ .image }}ports:- containerPort: {{ .port }}{{- end }}
Another thing that we might spot is that all the values are not under the app
property from a ...