Each of the releases in my helmfile override a value in their chart as follows:
releases:
- name: some-microservice
needs:
- kafka
namespace: {{ requiredEnv "ENV" }}
chart: some-microservice/some-microservice
values:
- git::https://user:{{ requiredEnv "BITBUCKET_PASSWORD" }}@bitbucket.org/redactedworkspace/some-workspace@helm/values.dynamic.yaml?ref={{ requiredEnv "SOME_MS_BRANCH" }}
set:
- name: image
value: us.gcr.io/nsome-project/company/some-microservice:{{ requiredEnv "SOME_MS_DOCKER_TAG" }}
- name: namespace
value: {{ requiredEnv "ENV" }}
- name: some-other-microservice
needs:
- kafka
namespace: {{ requiredEnv "ENV" }}
chart: some-other-microservice/some-other-microservice
values:
- git::https://user:{{ requiredEnv "BITBUCKET_PASSWORD" }}@bitbucket.org/redactedworkspace/some-workspace@helm/values.dynamic.yaml?ref={{ requiredEnv "SOME_OTHER_MS_BRANCH" }}
set:
- name: image
value: us.gcr.io/nsome-project/company/some-microservice:{{ requiredEnv "SOME_OTHER_MS_DOCKER_TAG" }}
- name: namespace
value: {{ requiredEnv "ENV" }}
Environment variables come from Jenkins parameters. I would like to set a global value for the "image" key if for example "GLOBAL_DOCKER_IMAGE_TAG" is present.
I had a look at "--args" and it seems it doesn't fit this use case.
Would something like this work?:
- name: image
value: {{ if env "GLOBAL_DOCKER_IMAGE_TAG" }}us.gcr.io/some-project/redactedworkspace/some-microservice:{{ requiredEnv "GLOBAL_DOCKER_IMAGE_TAG" }}{{ else }}us.gcr.io/some-project/redactedworkspace/some-microservice:{{ requiredEnv "SOME_MS_DOCKER_TAG" }}{{ end }}
Thank you!