Skip to main content

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
}
}
}
}