ONAP Helm chart dependencies
Current state
In ONAP components are constructed in Main charts and subcharts, which have dependencies to common templates.
All charts are managed in one project: https://git.onap.org/oom/
Chart dependencies are using wildcards (Main chart will include the latest version of a subchart or common charts)
All Charts are build (and stored in Nexus) after a merge
Currently "appVersion" is not used in the charts
Questions:
Use wildcards (e.g. ~13.x-0) in dependencies ?
in the standard setup "yes", but a project can decide to set a fixed version (e.g. 13.0.1)
Will we start with <rel>.0.0 every ONAP release (Montreal→ 13) for all charts ?
yes, but then the component versions can change.
When a "common" component (template, DB chart) is changed, will it be included automatically in a component chart ?
If new functionalty (e.g. extention/change of template) in the common chart is implemented, a new Chart version should be created
The new version of the chart is automatically added to the component chart (if wildcard is used)
A common chart has to be backward compatible to avoid breaking charts
Guidelines:
Component chart version update has to be done in a separate patch (not included in the implementation patch)
All component chart versions (Main + subchart) have to be updated
It is recommended to also set and maintain the "appVersion" in a chart
Merge Job
currently: common Job to create all ONAP charts
possible enhancement: Seperate jobs per component → to be investigated
Possible helpers
There are tools like dependabot and renovate.
There are used by Orange for example here: https://gitlab.com/Orange-OpenSource/lfn/ci_cd/docker-ansible-core/-/merge_requests/36
Renovate might help us for our Helm dependencies: https://docs.renovatebot.com/modules/manager/helmv3/