Skip to content

Proposal: move to chart-global templates, away from assumption of charts operating individually

Summary

Originally, there was the idea that we would design these charts in such a way that every sub-chart could be individually deployed from their sub-folder. Due to the rising complexity and level of integration between all charts at this time, we've come to a point where we are not maintaining DRY between _helpers.tpl instances. We've set a hard to maintain standard of replicating the templates between all the sub-charts.

Comments from @corey6 have made me think that it is time to re-evaluate this process.

Let us consider moving to a single source of truth in ./templates/_helpers.tpl, or at a minimum ./charts/gitlab/templates/_helpers.tpl. The idea would reduce complexity in maintenance of the various _helpers.tpl as well as reduce the likelihood that they drift apart.

Details

Currently, we have 17 different _helpers.tpl across the various charts, with 5 of those being from charts that we have forked, 1 in the global namespace, and 11 across the the gitlab sub-chart and below.

While I can't say that we should replace all of the _helpers.tpl from the forked charts (differentiating further from upstream), I do feel that it makes sense to change the previous assumption because individual sub-charts are now so intertwined that we can't reliably provision one without at least the logic from the others. While a user could deploy parts of the chart from the global space, deploying individual charts separately would result in quite the quagmire of options that need to be replicated to many different places. Moving all of the various gitlab sub-chart _helpers.tpl contents into a single point would be much easier for us to maintain. As a second value, it would be easier to tell a user "deploy x, y, and z" to A, then take the same properties and "deploy a, b, and c" to B with only a change in which sub-charts are set enabled: true.

Work items

If accepted:

  • Documentation to clearly state how to deploy sections of the chart vs others, with examples
  • Combine all _helpers.tpl into a select few.
    • Changes to the naming of the individual templates should also be made to reflect this.

Either way:

  • Update doc/architecture/decisions.md with the decision made here.

cc @corey6 @twk3 @marin @Ahmadposten @joshlambert