1

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!

David Maze
  • 130,717
  • 29
  • 175
  • 215

0 Answers0