Closed gyliu513 closed 4 years ago
There are patterns for re-using dependencies, but Helm itself does not bake in support for that. The reason is because there is no way for us to determine that both the original dependency installer and the new dependency user agree that the dependency is a shared resource. For example, if I install the Wordpress chart with MySQL support, I get my own MySQL instance for my Wordpress. Now if you install Drupal with MySQL, under what conditions should Helm allow you to share my MySQL installation? It's not just you who should get to make that decision. It's both parties. Then there is the question of what we do when my Wordpress or your Drupal needs to peform a DB upgrade or some other maintenance task. Sharing the resource automatically could lead to some unpalatable upgrade stories. Helm currently doesn't have any way of indicating that both parties agree that a resource should be shared. So the solution is generally to install shared resources as their own thing (e.g. install a stand-alone MySQL chart) and then configure other sources (Wordpress and Drupal, respectively) to connect to the existing DB instead. This also lets Helm work with a service broker, which will provide, say, gateways to AWS RDB or Azure Database. To see the pattern in action, take a look at the official Drupal chart (particularly the externalDatabse vs MariaDB settings)
$ abc
def
abc