Given a following scheme of services and their dependencies I would like to engineer a set of Helm charts.
API GatewaycallsService AandService CService AcallsService BService BcallsDatabaseService CcallsService BandService D
At the moment I see two alternatives:
Each of the 6 components in a diagram below is a single chart and each arrow in a diagram is a single dependency.

There's an
Umbrellachart that has a dependency on all other charts. TheDatabasechart is a dependency ofService Bchart.
Helm documentation suggest going with option 2. I am however more keen towards option 1 due to an ease of local development and CI/CD pipeline.
Example scenario: developer is refactoring Service C and he wants to run the code he changed and test it.
- Option 1. Developer installs a
Service Cchart only. - Option 2: Developer would have to either:
- install an
Umbrellachart which leads to waste of a CPU and memory resources because of running unneeded services likeService AorAPI Gateway, which doesn't scale well with the complexity of the system; - install
Service C, thenService Band thenService D, which also doesn't scale well with the complexity of the system because it requires to perform many manual actions and also require from developer to be faimiliar with the architecture of the system in order to know what charts needs to be installed.
- install an
I would like to make an educated decision on which alternative to take. I am more keen towards option 1, but Helm docs and also few examples I was able to find on the Internet (link) are also going with option 2, so I think I might be missing something.