twsouza
twsouza

Reputation: 103

How to use a Helm template in multiple repositories?

I have several microservices that have practically the same settings in YAML, some values change (e.g. image, version, a specific environment variable ...), and they are in different repositories, with a different pipeline each. How do I use the same template between them without getting repeated code?

Upvotes: 0

Views: 2953

Answers (3)

bogdatov
bogdatov

Reputation: 51

We do it for about 90 microservices. We have common Chart and we run values file through kindof sed script which changes what we need. Then whole package gets deployed

Upvotes: 1

avinashjha
avinashjha

Reputation: 630

You can also update the values.yaml from pipeline and then package the chart and deploy it..In that way you can still have the same yaml file but the values will differ from which pipeline they are deployed.

Alternatively and easy way will be to maintain different values.yaml for different environment in the helm chart itself and pass them during helm install/upgrade from pipeline.

Upvotes: 1

Filip Nikolov
Filip Nikolov

Reputation: 1897

This is how we do it in the place I currently work.

We have our own generic Helm chart that is version controlled and hosted in our Artifactory, every parameter in that chart that may need changing is exposed in values.yaml.

The Artifactory gets added to helm as repository, then you only need separate a values.yaml for each microservice you want deployed as the chart gets sourced centrally.

helm install -f values.yaml microservice01 artifcatory/global-helm-chart

On top of that we use helmfile, but this is not necessary in order to achieve your goal.

The key points are:

  • make the chart generic
  • host it centrally
  • add the repository to helm.

Upvotes: 4

Related Questions