org.osbuild.ostree
WARNING: This stage is deprecated and shouldn't be used when defining new pipelines. Please use the individual ostree. stages instead.*
Initialize the sysroot and pull and deploy an OStree commit
Initializes a clean ostree based system root, pulls the given commit
and
creates a deployment from it using osname
as the new stateroot (see [1]).
Since OStree internally uses a hardlink farm to create the file system tree
for the deployment from the commit data, the mountpoints for the final image
need to be supplied via the mounts
option, as hardlinks must not span
across file systems and therefore the boundaries need to be known when doing
the deployment.
Creating a deployment also entails generating the Boot Loader Specification
entries to boot the system, which contain this the kernel command line.
The rootfs
option can be used to indicate the root file system, containing
the sysroot and the deployments. Additional kernel options can be passed via
kernel_opts
.
[1] https://ostree.readthedocs.io/en/latest/manual/deployment/
Schema 1
{}
Schema 2
{
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commit"
],
"properties": {
"commit": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"required": [
"osname"
],
"properties": {
"mounts": {
"description": "Mount points of the final file system",
"type": "array",
"items": {
"description": "Description of one mount point",
"type": "object",
"required": [
"path"
],
"properties": {
"path": {
"description": "The path of the mount point",
"type": "string"
},
"mode": {
"description": "The mode of the mount point",
"type": "integer",
"default": 493
}
}
}
},
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"kernel_opts": {
"description": "Additional kernel command line options",
"type": "array",
"items": {
"description": "A single kernel command line option",
"type": "string"
}
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"remotes": {
"description": "Configure remotes for the system repository",
"type": "array",
"items": {
"description": "Description of a remote",
"type": "object",
"required": [
"name",
"url"
],
"properties": {
"name": {
"description": "Identifier for the remote",
"type": "string"
},
"url": {
"description": "URL of the remote",
"type": "string"
},
"branches": {
"type": "array",
"items": {
"description": "Configured branches for the remote",
"type": "string"
}
},
"gpgkeys": {
"type": "array",
"items": {
"description": "GPG keys for the remote to verify commits",
"type": "string"
}
}
}
}
},
"rootfs": {
"description": "Identifier to locate the root file system",
"type": "object",
"oneOf": [
{
"required": [
"uuid"
]
},
{
"required": [
"label"
]
}
],
"properties": {
"label": {
"description": "Identify the root file system by label",
"type": "string"
},
"uuid": {
"description": "Identify the root file system by UUID",
"type": "string"
}
}
},
"populate_var": {
"description": "Populate $stateroot/var via systemd-tmpfiles",
"type": "boolean",
"default": false
}
}
}
}