I'm currently building an application that is composed of 4 microservices (a, b, c, d). We would like to make Kubernetes Helm part of our CI/CD pipeline.
We are at the point where we're discussing how best to define the charts and was wondering was the advice from the community.
Our current options appear to be:
- a chart per microservice (so 4 charts)
- a chart per "application flow" (service a calls b, service c calls d, so 2 charts in total)
- a single chart that deploys all 4 microservices
- some combination of 1. and 3. where we leverage the dependencies feature of Helm
It might be worth calling out that:
- we currently don't have a requirement to deploy any microservice in isolation e.g. make it available to a separate application.
- it is likely that we will need to have the ability to scale any microservice independently i.e. not simply replicate all 4 services.
I'm mentioning these requirements because I feel that they may be relevant to the chart design.