Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Table of Contents

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 semantic versioning 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

Drawio
bordertrue
diagramNameChart Dependency
simpleViewerfalse
width
linksauto
tbstyletop
lboxtrue
diagramWidth811revision21491
revision3

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/