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/