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.