We have a set of microservices stored in multiple repositories which we deploy on k8s. Currently we use a simple cicd which is triggered by commit to repo. The cicd then builds an image, places image tag to values.yaml, deploys same verion of helm chart with updated version of values.yaml. Thats it.

What I dont like about it is:

  • we dont have a build's version. we dont know what we test
  • we cannot revert to previous build because we simply dont have a concept of build
  • we cannot run integration tests on the build because we can only trigger tests on commit to specific repo, not "commit to a build"

How can we do it better?

A possible solution would be to work via parent helm charts, i.e. update version of parent helm chart and deploy and run integration tests only when that parent chart is updated. But how this should be implemented?

Below are my guess:

We can store helm chart in component's repo, build image once commit is done, update helm chart with a second commit with new version and image tag, WAIT until all child helm charts are updated, and then finally make a commit to parent helm chart to update it with new child helm charts version. Looks a bit burdensome.

Any other options?

  • One way is to use Reliza Hub - tool I'm working on - currently SaaS, but we will also introduce open-source community version later. Essentially, it can combine multiple components in a bundle with a single version. See here for how it can solve the use case you are describing - worklifenotes.com/2023/05/12/…
    – taleodor
    Sep 19, 2023 at 0:32


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Browse other questions tagged or ask your own question.