Complex Charts with Many Dependencies

Many of the charts in the official charts repositoryare “building blocks” for creating more advanced applications. But charts may beused to create instances of large-scale applications. In such cases, a singleumbrella chart may have multiple subcharts, each of which functions as a pieceof the whole.

The current best practice for composing a complex application from discrete partsis to create a top-level umbrella chart thatexposes the global configurations, and then use the charts/ subdirectory toembed each of the components.

Two strong design patterns are illustrated by these projects:

SAP’s Converged charts: These chartsinstall SAP Converged Cloud a full OpenStack IaaS on Kubernetes. All of the charts are collectedtogether in one GitHub repository, except for a few submodules.

Deis’s Workflow:This chart exposes the entire Deis PaaS system with one chart. But it’s differentfrom the SAP chart in that this umbrella chart is built from each component, andeach component is tracked in a different Git repository. Check out therequirements.yaml file to see how this chart is composed by their CI/CDpipeline.

Both of these charts illustrate proven techniques for standing up complex environmentsusing Helm.