stages: new bootc.install.config stage
New stage for writing a bootc-install-config with all the options currently supported. See bootc-install-config(5).
This commit is contained in:
parent
c3da95780a
commit
e94aef7dce
2 changed files with 107 additions and 0 deletions
29
stages/org.osbuild.bootc.install.config
Executable file
29
stages/org.osbuild.bootc.install.config
Executable file
|
|
@ -0,0 +1,29 @@
|
|||
#!/usr/bin/python3
|
||||
import pathlib
|
||||
import sys
|
||||
|
||||
try:
|
||||
import toml
|
||||
except ModuleNotFoundError:
|
||||
import pytoml as toml
|
||||
|
||||
import osbuild.api
|
||||
|
||||
|
||||
def main(tree, options):
|
||||
filename = options["filename"]
|
||||
config = options["config"]
|
||||
|
||||
path = pathlib.Path(tree) / "usr/lib/bootc/install" / filename
|
||||
path.parent.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
with open(path, "w", encoding="utf8") as config_file:
|
||||
toml.dump(config, config_file)
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = osbuild.api.arguments()
|
||||
r = main(args["tree"], args["options"])
|
||||
sys.exit(r)
|
||||
78
stages/org.osbuild.bootc.install.config.meta.json
Normal file
78
stages/org.osbuild.bootc.install.config.meta.json
Normal file
|
|
@ -0,0 +1,78 @@
|
|||
{
|
||||
"summary": "Write bootc-install-config(5) file",
|
||||
"description": [
|
||||
"The bootc install process supports some basic customization. This",
|
||||
"configuration file is in TOML format, and will be discovered by the",
|
||||
"installation process in via drop-in files in /usr/lib/bootc/install that",
|
||||
"are processed in alphanumerical order.",
|
||||
"The individual files are merged into a single final installation config, so",
|
||||
"it is supported for e.g. a container base image to provide a default root",
|
||||
"filesystem type, that can be overridden in a derived container image."
|
||||
],
|
||||
"schema": {
|
||||
"additionalProperties": false,
|
||||
"required": [
|
||||
"filename",
|
||||
"config"
|
||||
],
|
||||
"properties": {
|
||||
"filename": {
|
||||
"type": "string",
|
||||
"description": "name of the configuration file."
|
||||
},
|
||||
"config": {
|
||||
"additionalProperties": false,
|
||||
"type": "object",
|
||||
"minProperties": 1,
|
||||
"properties": {
|
||||
"install": {
|
||||
"type": "object",
|
||||
"additionalProperties": false,
|
||||
"minProperties": 1,
|
||||
"properties": {
|
||||
"filesystem": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"root"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"root": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type"
|
||||
],
|
||||
"additionalProperties": false,
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"kargs": {
|
||||
"type": "array",
|
||||
"description": "Append extra kernel arguments",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"block": {
|
||||
"type": "array",
|
||||
"description": "An array of supported to-disk backends enabled by this base container image; if not specified, this will just be direct.",
|
||||
"items": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"direct",
|
||||
"tmp2-luks"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue