![](/download/attachments/107839502/image2020-6-23_11-1-48.png?version=1&modificationDate=1592906570000&api=v2)
Usage of OCI Bundle Gen (1)
Rewrite these as User Stories
Used by operators
used in STB
expected to be on Cloud
Extendable architecture
Requirements (2)
- Read in OCI_Image
- Read in template for a target STB (format TBC)
- Output a minimal OCI bundle* suitable for execution on target STB
- FS system
- runtime Config.json
- Apply operator restrictions based
Summary
An overview of Bundle gen in context
draw.io Diagram |
---|
border | true |
---|
| |
---|
diagramName | OCI Bundle Gen |
---|
simpleViewer | false |
---|
width | |
---|
links | auto |
---|
tbstyle | top |
---|
lbox | true |
---|
diagramWidth | 691 |
---|
revision | 1 |
---|
|
STB Specific Template (3)
- Where does this come from?
- today its : /sys, /proc, /tmp, /lib, /bin, /sbin, /usr, /dev
- PLUS an manually generated optional file list - a list of additional files/devices/groups... i.e. psudeo FS nodes that are available
- PLUS an manually generated optional MAPPING file that maps any actual node from any of the above lists into the RDK-M namespace. i.e tells you what non standard nodes name are in RDK-M std terms. (e.g. XXx)
- What format is it in?
- tar of above directories
- the lists is JSON list
- the MAPPING is JSON tuple { expected path, actual path}
- Define REference ones for :
Operator Rules (3)
- What does it have:
- Meory, cpu, networking, resolutions, RDK services upported, ....
- What format:
- Where:
- Who :
OCI Image Spec (3)
Standard OCI image
plus RDK extensions to define application requirements
Overview processing steps (4)
A summary of the processing steps (re-order if it helps)
- Get OCI_Image
- Parse the subset of OCI_Image_config to get the DAC subsection
- Filter by architecture (remove all libs and bins that aren't for our arch.
- Lib matching: lib is in template then remove lib and put in bind mount
- Config App storage. Write the plugin for storage to oci_bundle_config. (AppID is unique across RDK-M.)
- Write the plugin ram FS to bundle config if needed
- Add the devices and bindmount to that required to output config (inc. networking)
- Copy across the layer for architecture independent assets (images, configs, certificates)
- Copy across the executable compiles to the correct architecture
- Translate the the remaining parts of OCI_Image_Config to OCI_Bundle_Config
Library matching
Options:
- https://en.wikipedia.org/wiki/Soname
- Full Name matching
- Base name matching, exclude version numbering
- Hash of the lib
- how to handle to handle compiler option diffs e.g. strip?
- Are LD commands to get version number?
/Dev Matching