Task 1: Parse Feature Extension (may be converted to its own issue if required)
The builder has the parse_features tool. It provides core functionality that we need for the gl-oci project as well. Therefore, we should extract this tool to its own GitHub repository and make it available to both projects
parse_features must provide CLI as before, so it can be used as before by gardenlinux/builder
currently, the builder includes the parse_features script in the container with a COPY cmd like this.
Identify a good way to include the parse_features tool from a different repository (git clone, wget+checksum, apt packaging, pypi,...)
parse_features functions must be importable from gardenlinux/gl-oci python project
No subprocess calls, but direct includes of python functions
No need to publish to pypi, it is fine to include library with git+ syntax
Task 2: New feature for parse_features
parse_features must be extended with new feature to merge all info.yaml files of a given folder recursively to generate a single info.yaml which can be used as input for gl-oci
Input: cname, file path to gardenlinux repo
output: a merged info.yaml containing all features/*/info.yaml included by that cname
the merged info.yaml must contain a single oci_artifacts attribute that lists all included layers. This attribute will be added to the features/*/info.yaml files with gardenlinux/python-gardenlinux-lib#16
Attributes must be merged if possible, if it does not make sense to merge a given attribute, skip this attribute and document that it is skipped intentionally.
Other new unique yaml attributes can be added to the output info.yaml
example: full list or string of features included for the given cname (not required yet)
example: paths of all used info.yaml files (not required yet)
Task 1: Parse Feature Extension (may be converted to its own issue if required)
git+
syntaxTask 2: New feature for parse_features
info.yaml
containing allfeatures/*/info.yaml
included by that cnameinfo.yaml
must contain a singleoci_artifacts
attribute that lists all included layers. This attribute will be added to the features/*/info.yaml files with gardenlinux/python-gardenlinux-lib#16