2
0
mirror of https://github.com/xcat2/xcat-core.git synced 2026-08-28 17:46:40 +00:00

docs(genesis): document signed extension bundles

This commit is contained in:
Vinícius Ferrão
2026-08-21 00:00:14 -03:00
parent 59219181c9
commit f87b6be787
2 changed files with 38 additions and 3 deletions
@@ -207,6 +207,12 @@ Genesis verifies Ed25519 signatures before loading extensions with
site may build a restricted extension from an authorized private source
mirror when the vendor license forbids public redistribution.
The extension exporter binds the image, manifest, signature, public key, and
checksums into one directory. A site layer adds that directory to the
``xcat-genesis-extensions`` recipe and sets
``XCAT_GENESIS_EXTENSION_BUNDLE`` to its name. The signing key remains
outside both the bundle and the source repository.
Licensing and release records
-----------------------------
@@ -216,9 +222,9 @@ licenses and blocks recipes protected by ``LICENSE_FLAGS`` until the builder
accepts them explicitly.
Each release records source revisions, patches, configuration, artifact
checksums, licenses, and an SPDX software bill of materials. The build uses
the Yocto release key stored in this repository and verifies its fingerprint;
it does not contact a public keyserver.
checksums, licenses, an SPDX software bill of materials, and a VEX report.
The build uses the Yocto release key stored in this repository and verifies
its fingerprint; it does not contact a public keyserver.
xCAT server boundary
--------------------
+29
View File
@@ -45,6 +45,35 @@ mknb x86_64
`mknb` verifies the kernel and initramfs checksums before replacing the files
under the configured TFTP root.
### Signed extensions
Build an extension recipe with the same machine configuration as the Genesis
image. Then export it with the site's Ed25519 release key:
```sh
xCAT-genesis-builder/oe/export-extension x86_64 my-extension \
xCAT-genesis-builder/oe/.work/build/tmp/deploy \
/secure/genesis-extension.key /secure/genesis-extension.pub \
/tmp/my-extension-bundle
```
The private key stays outside the source tree. The exported bundle contains
the extension image, manifest, signature, public key, and checksums.
A site layer can include that directory in its Genesis image with a small
append file:
```bitbake
FILESEXTRAPATHS:prepend := "${THISDIR}/files:"
SRC_URI += "file://my-extension-bundle"
XCAT_GENESIS_EXTENSION_BUNDLE = "my-extension-bundle"
```
Place the exported directory below the append file's `files` directory.
Genesis verifies every bundled extension before registration and stops the
boot workflow if the image, manifest, signature, key, release, or architecture
does not match.
Genesis records registration time and memory use in `/run/xcat/metrics.env`.
After copying that file from a test VM, create a report with image sizes and
runtime measurements: