At this point I feel like I might have a better understanding of Helm and thus might be able to return to my original problem of figuring out how to work with subcharts. Based on the Helm docs to provide values to subcharts one uses the chart name as root. Time to give it a spin.

dependencies:
  - name: stable/postgresql
    alias: pg-monolith

Hmm, helm fetch failed with Error: need at least one argument, url or repo/name of the chart. Hidden at the bottom references helm repo. Typing this in resulted in a magical table which divulges the repository.

NAME                    URL
stable                  https://kubernetes-charts.storage.googleapis.com

Or, ya know, helm fetch is not deigned to work with requirements.yaml. helm dependencies is the correct sub-command. helm dependencies build actually retrieves the dependencies. This correctly points out the correct expression for the repository is:

dependencies:
  - name: stable/postgresql
    alias: pg-monolith
    repository: "@stable"

However this still leaves the complaint regarding a version: Error: dependency "postgresql" has an invalid version/constraint format: improper constraint:. Rather unfortunate they require a specific version. According to StackOverflow we can use helm search -l stable/<some_chart> to list the versions. This yielded 3.15.0. Once added like the following it worked like a charm:

dependencies:
  - name: postgresql
    alias: pg-monolith
    repository: "@stable"
    version: 3.15.0

Alrighty then. A little helm package && helm upgrade legacy legacy-0.1.0.tgz and it works. Next up is getting the correct version of the database up and running. In theory this should be as easy as the following in the chart/values.yaml file:

pg-monolith:
  image:
    tag: 9.6

I made the assumption the image is postsgres however it’s actually bitnami/postgresql. The tags are significantly different. I will have to figure out the migrations some other time.