Provisioning-data
This page describes the json schema used by different systems to describe the "build artifacts" that are used to boot a system. It would be nice to make the different systems interoperable, so that one system could utilize the build artifacts of another system.
Contents
Fuego
Here is Tim's proposed json schema for provisioning data
{
"kernel_version": "5.5.0-3996-gb3a508222336", "kernel_image": "<path>/boot/vmlinuxz-5.5.0-3996-gb3a508222336", "kernel_config": "<path>/boot/config-5.5.0-3996-gb3a508222336", "system_map": "<path>/boot/System.map-5.5.0-3996-gb3a508222336", "initrd": "<path>/boot/initrd-5.5.0-3996-gb3a508222336", "kernel_dtb": "<path>/boot/dtb-5.5.0-3996-gb3a508222336", "kernel_modules": "<path>/lib/modules/5.5.0-3996-gb3a508222336"
}
This has not been published yet, and can still change in Fuego. Each item includes the URL, and the artifacts can come from different repositories (although in practice the only one of these that comes from somewhere else is the kernel_modules, which may have a different path on the local machine. Note that for most Fuego jobs, the path is a local path, not a remote URL. (That is, currently in Fuego the test server is also the build server.)
NOTES
Kernel CI
See https://storage.kernelci.org/arm64/for-kernelci/v5.5-rc5-28-gaef73191765a/arm64/allmodconfig/gcc-8/ (now getting a missing page error on this - these seem to rotate out of existence quickly) https://storage.kernelci.org/arm64/for-kernelci/v5.5-rc6-40-ge31626d443db/arm64/allmodconfig/gcc-8/
Directory contents:
Index of /arm64/for-kernelci/v5.5-rc6-40-ge31626d443db/arm64/allmodconfig/gcc-8/ File Name ↓ File Size ↓ Date ↓ Parent directory/ - - dtbs/ - 2020-Feb-18 19:58 Image 82.8 MiB 2020-Feb-18 19:59 System.map 6.7 MiB 2020-Feb-18 19:59 bmeta.json 1.3 KiB 2020-Feb-18 19:59 build.log 1.8 MiB 2020-Feb-18 19:59 dtbs.json 12.3 KiB 2020-Feb-18 19:59 kernel.config 283.8 KiB 2020-Feb-18 19:59 modules.tar.xz 165.0 MiB 2020-Feb-18 19:59
Content of bmeta.json:
{ "arch": "arm64", "build_environment": "gcc-8", "build_log": "build.log", "build_platform": [ "Linux", "f8f143da4156", "5.0.0-1023-azure", "#24~18.04.1-Ubuntu SMP Wed Oct 2 20:23:29 UTC 2019", "x86_64", "" ], "build_threads": 66, "build_time": 690.36, "compiler": "gcc", "compiler_version": "8", "compiler_version_full": "aarch64-linux-gnu-gcc (Debian 8.3.0-2) 8.3.0", "cross_compile": "aarch64-linux-gnu-", "defconfig": "allmodconfig", "defconfig_full": "allmodconfig", "dtb_dir": "dtbs", "file_server_resource": "arm64/for-kernelci/v5.5-rc6-40-ge31626d443db/arm64/allmodconfig/gcc-8", "git_branch": "for-kernelci", "git_commit": "e31626d443db6933723cf756816cd0af6c9b8d89", "git_describe": "v5.5-rc6-40-ge31626d443db", "git_describe_v": "v5.5-rc6-40-ge31626d443db", "git_url": "git://git.kernel.org/pub/scm/linux/kernel/git/arm64/linux.git", "job": "arm64", "kconfig_fragments": "", "kernel_config": "kernel.config", "kernel_image": "Image", "modules": "modules.tar.xz", "status": "PASS", "system_map": "System.map", "text_offset": "0x10125000", "vmlinux_bss_size": 30488992, "vmlinux_data_size": 16478584, "vmlinux_file_size": 93008592, "vmlinux_text_size": 23801704 }
OE/LKFT
Daniel provided this json description: https://storage.lkft.org/rootfs/oe-sumo/20200205/juno/bundle.json
Here's the example:
{ "kernel_config": "config", "dtb": "Image--5.5+git0+567f0ad8b0-r0-juno-r2-20200205143101-9.dtb", "kernel": "Image--5.5+git0+567f0ad8b0-r0-juno-20200205143101-9.bin", "rootfs": { "ext4gz": "rpb-console-image-lkft-juno-20200205143101-9.rootfs.ext4.gz", "tarxz": "rpb-console-image-lkft-juno-20200205143101-9.rootfs.tar.xz" }, "modules": "modules--5.5+git0+567f0ad8b0-r0-juno-20200205143101-9.tgz", "modules_compression": "targz" }
The artifacts sit in the same directory as the bundle.json file.