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
draw.io Diagram | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
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/