I am actually working on a development environment using Gradle, Docker, Minikube and Helm.
I am using a bunch of bash scripts to get things done.
What I achieved so far is:
Now I need to be able to propagate the version calculated by Gradle to Helm so it can pick the right docker image.
The approach I already have in mind is to define an environment variable so it can be used by Helm.
The problem is that I would need to redefine it afterward.
Is any better way of doing that?
Most Helm charts contain at least the following in their values.yaml
file, which sets a default docker image tag, and also allows the user installing/upgrading the chart to specify a different image without having to modify the chart itself.
# values.yaml
image:
repository: <docker-repo-url-here>
tag: <docker-image-tag-here>
And in the deployment yaml, fetch the values from the values.yaml
# deployment.yaml
kind: Deployment
spec:
template:
spec:
containers:
- name: container-name
image: "{{ .Values.image.repository }}:{{ .Values.image.tag}}"
From there, you can do a simple helm upgrade <release-name> <chart-path> --set image.tag=<new-image-tag>
when you want to use a new image.