stages: reformat meta.json files

Reformat all meta.json files for consistency.

Formatted with `jq --indent 2 .`
This commit is contained in:
Achilleas Koutsou 2024-03-25 17:58:27 +01:00 committed by Simon de Vlieger
parent fa7f26a229
commit fa0605b89f
148 changed files with 9643 additions and 9643 deletions

View file

@ -1,46 +1,46 @@
{
"summary": "Configure basic aspects of the anaconda installer",
"description": [
"Create an anaconda configuration file `90-osbuild.conf` in",
"the folder `/etc/anaconda/conf.d` to configure anaconda.",
"Currently only the list of enabled kickstart modules is",
"configurable via the `kickstart-modules` option."
],
"schema": {
"additionalProperties": true,
"properties": {
"kickstart-modules": {
"type": "array",
"description": "Kick start modules to enable",
"items": {
"type": "string"
},
"minItems": 1
},
"activatable-modules": {
"type": "array",
"description": "Kick start modules to activate",
"items": {
"type": "string"
},
"minItems": 1
},
"forbidden-modules": {
"type": "array",
"description": "Kick start modules to forbid",
"items": {
"type": "string"
},
"minItems": 1
},
"optional-modules": {
"type": "array",
"description": "Kick start modules to activate but are allowed to fail",
"items": {
"type": "string"
},
"minItems": 1
}
}
"summary": "Configure basic aspects of the anaconda installer",
"description": [
"Create an anaconda configuration file `90-osbuild.conf` in",
"the folder `/etc/anaconda/conf.d` to configure anaconda.",
"Currently only the list of enabled kickstart modules is",
"configurable via the `kickstart-modules` option."
],
"schema": {
"additionalProperties": true,
"properties": {
"kickstart-modules": {
"type": "array",
"description": "Kick start modules to enable",
"items": {
"type": "string"
},
"minItems": 1
},
"activatable-modules": {
"type": "array",
"description": "Kick start modules to activate",
"items": {
"type": "string"
},
"minItems": 1
},
"forbidden-modules": {
"type": "array",
"description": "Kick start modules to forbid",
"items": {
"type": "string"
},
"minItems": 1
},
"optional-modules": {
"type": "array",
"description": "Kick start modules to activate but are allowed to fail",
"items": {
"type": "string"
},
"minItems": 1
}
}
}
}

View file

@ -1,13 +1,13 @@
{
"summary": "Configure authentication sources using authconfig.",
"description": [
"Applies the default settings. Backups are cleared.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'authconfig' binary from the image in the chroot."
],
"schema": {
"additionalProperties": false,
"description": "Configure authentication sources."
}
"summary": "Configure authentication sources using authconfig.",
"description": [
"Applies the default settings. Backups are cleared.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'authconfig' binary from the image in the chroot."
],
"schema": {
"additionalProperties": false,
"description": "Configure authentication sources."
}
}

View file

@ -1,34 +1,34 @@
{
"summary": "Select system identity and authentication sources with authselect.",
"description": [
"Sets system identity and authentication sources.",
"The stage calls `authselect select` to set authselect profile to 'profile'.",
"Optionally a list of profile features to enable may be provided using 'features'",
"option. The list of available profile features can be obtained by running",
"`authselect list-features <profile>`.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'authselect' binary from the image in the chroot."
"summary": "Select system identity and authentication sources with authselect.",
"description": [
"Sets system identity and authentication sources.",
"The stage calls `authselect select` to set authselect profile to 'profile'.",
"Optionally a list of profile features to enable may be provided using 'features'",
"option. The list of available profile features can be obtained by running",
"`authselect list-features <profile>`.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'authselect' binary from the image in the chroot."
],
"schema": {
"additionalProperties": false,
"required": [
"profile"
],
"schema": {
"additionalProperties": false,
"required": [
"profile"
],
"description": "Select system identity and authentication sources.",
"properties": {
"profile": {
"type": "string",
"description": "Desired authselect profile to activate."
},
"features": {
"type": "array",
"description": "Features of the selected profile to activate.",
"minItems": 1,
"items": {
"type": "string"
}
}
"description": "Select system identity and authentication sources.",
"properties": {
"profile": {
"type": "string",
"description": "Desired authselect profile to activate."
},
"features": {
"type": "array",
"description": "Features of the selected profile to activate.",
"minItems": 1,
"items": {
"type": "string"
}
}
}
}
}

View file

@ -1,54 +1,54 @@
{
"summary": "Run bootc install to-filesystem",
"description": [
"Note that this needs the disk.img in the inputs as one continous",
"devices so that bootupd can install grub to the mbr. It also needs",
"all relevant mount points for booting (e.g. /boot, /boot/efi) in",
"mounted in the \"mounts\" path.",
"Buildhost commands used: bootc"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"properties": {
"root-ssh-authorized-keys": {
"description": "array of SSH Public Keys to add to roots authorized_keys",
"type": "array",
"items": {
"type": "string"
}
},
"kernel-args": {
"description": "array of additional kernel arguments",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
"summary": "Run bootc install to-filesystem",
"description": [
"Note that this needs the disk.img in the inputs as one continous",
"devices so that bootupd can install grub to the mbr. It also needs",
"all relevant mount points for booting (e.g. /boot, /boot/efi) in",
"mounted in the \"mounts\" path.",
"Buildhost commands used: bootc"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"properties": {
"root-ssh-authorized-keys": {
"description": "array of SSH Public Keys to add to roots authorized_keys",
"type": "array",
"items": {
"type": "string"
}
},
"kernel-args": {
"description": "array of additional kernel arguments",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,158 +1,158 @@
{
"summary": "Assemble a file system tree for a bootable iso",
"description": [
"This stage prepares a file system tree for a bootable ISO, like the",
"Anaconda installer. It follows the convention used by Lorax to",
"create the boot isos: It takes an input `rootfs`, which will serve",
"as the root file system. This is copied into a file with a `ext4`",
"file system which in turn will be made into a squashfs file system.",
"Options for controlling the root file-system creation can be given",
"via `rootfs`, like it size and the compression to be used.",
"The boot loader is configured via the `isolinux` and `efi` options.",
"Which combination makes sense depends on the targeted platform and",
"architecture.",
"The kernel and initrd are taken from the tree given via the `kernel`",
"input, or if that was not specified, from `rootfs`. In either case",
"it will look for the specified kernel in the `/boot` directory.",
"Additionally kernel command line flags can passed via `kernel_opts`.",
"This stage has the `.mono` suffix to indicate that is a monolithic",
"stage that could, and in the future will be, broken up into smaller",
"pieces."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel",
"isolabel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"type": "string"
},
"isolabel": {
"type": "string"
},
"efi": {
"type": "object",
"additionalProperties": false,
"required": [
"architectures",
"vendor"
],
"properties": {
"architectures": {
"type": "array",
"items": {
"type": "string"
}
},
"vendor": {
"type": "string"
}
}
},
"isolinux": {
"type": "object",
"additionalProperties": false,
"required": [
"enabled"
],
"properties": {
"enabled": {
"type": "boolean"
},
"debug": {
"type": "boolean"
}
}
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string"
},
"templates": {
"type": "string",
"default": "99-generic"
},
"rootfs": {
"type": "object",
"additionalProperties": false,
"properties": {
"compression": {
"type": "object",
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"gzip",
"xz",
"lz4"
]
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"bcj": {
"enum": [
"x86",
"arm",
"armthumb",
"powerpc",
"sparc",
"ia64"
]
}
}
}
}
},
"size": {
"type": "integer",
"description": "size in MB",
"default": 3072
}
}
}
"summary": "Assemble a file system tree for a bootable iso",
"description": [
"This stage prepares a file system tree for a bootable ISO, like the",
"Anaconda installer. It follows the convention used by Lorax to",
"create the boot isos: It takes an input `rootfs`, which will serve",
"as the root file system. This is copied into a file with a `ext4`",
"file system which in turn will be made into a squashfs file system.",
"Options for controlling the root file-system creation can be given",
"via `rootfs`, like it size and the compression to be used.",
"The boot loader is configured via the `isolinux` and `efi` options.",
"Which combination makes sense depends on the targeted platform and",
"architecture.",
"The kernel and initrd are taken from the tree given via the `kernel`",
"input, or if that was not specified, from `rootfs`. In either case",
"it will look for the specified kernel in the `/boot` directory.",
"Additionally kernel command line flags can passed via `kernel_opts`.",
"This stage has the `.mono` suffix to indicate that is a monolithic",
"stage that could, and in the future will be, broken up into smaller",
"pieces."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel",
"isolabel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"rootfs"
],
"properties": {
"rootfs": {
"type": "object",
"additionalProperties": true
},
"kernel": {
"type": "object",
"additionalProperties": true
}
"kernel": {
"type": "string"
},
"isolabel": {
"type": "string"
},
"efi": {
"type": "object",
"additionalProperties": false,
"required": [
"architectures",
"vendor"
],
"properties": {
"architectures": {
"type": "array",
"items": {
"type": "string"
}
},
"vendor": {
"type": "string"
}
}
},
"isolinux": {
"type": "object",
"additionalProperties": false,
"required": [
"enabled"
],
"properties": {
"enabled": {
"type": "boolean"
},
"debug": {
"type": "boolean"
}
}
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string"
},
"templates": {
"type": "string",
"default": "99-generic"
},
"rootfs": {
"type": "object",
"additionalProperties": false,
"properties": {
"compression": {
"type": "object",
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"gzip",
"xz",
"lz4"
]
},
"options": {
"type": "object",
"additionalProperties": false,
"properties": {
"bcj": {
"enum": [
"x86",
"arm",
"armthumb",
"powerpc",
"sparc",
"ia64"
]
}
}
}
}
},
"size": {
"type": "integer",
"description": "size in MB",
"default": 3072
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"rootfs"
],
"properties": {
"rootfs": {
"type": "object",
"additionalProperties": true
},
"kernel": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,15 +1,15 @@
{
"summary": "Transforms /usr/lib/ostree-boot into a bootupd-compatible update payload.",
"description": [
"Scrapes metadata (e.g. RPM versions) about shim/grub and puts them along with their component files in",
"`/usr/lib/bootupd/updates/`.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'bootupctl' binary from the image in the chroot."
],
"schema_2": {
"options": {
"additionalProperties": false
}
"summary": "Transforms /usr/lib/ostree-boot into a bootupd-compatible update payload.",
"description": [
"Scrapes metadata (e.g. RPM versions) about shim/grub and puts them along with their component files in",
"`/usr/lib/bootupd/updates/`.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'bootupctl' binary from the image in the chroot."
],
"schema_2": {
"options": {
"additionalProperties": false
}
}
}

View file

@ -1,111 +1,111 @@
{
"summary": "Install GRUB on both BIOS and UEFI systems,\nensuring that your bootloader stays up-to-date.",
"description": [
"Bootupd supports updating GRUB and shim for",
"UEFI firmware on x86_64 and aarch64,",
"and GRUB for BIOS firmware on x86_64.",
"The project is deployed in Fedora CoreOS and derivatives"
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
},
"options": {
"additionalProperties": false,
"properties": {
"deployment": {
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
},
"static-configs": {
"description": "Install the grub configs defined for Fedora CoreOS",
"type": "boolean"
},
"bios": {
"additionalProperties": false,
"type": "object",
"required": [
"device"
],
"properties": {
"device": {
"description": "Name of stage device to install GRUB for BIOS-based systems.",
"type": "string"
},
"partition": {
"description": "The partition on the stage device to install to, if installing to a partition",
"type": "number"
}
}
"summary": "Install GRUB on both BIOS and UEFI systems,\nensuring that your bootloader stays up-to-date.",
"description": [
"Bootupd supports updating GRUB and shim for",
"UEFI firmware on x86_64 and aarch64,",
"and GRUB for BIOS firmware on x86_64.",
"The project is deployed in Fedora CoreOS and derivatives"
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
},
"options": {
"additionalProperties": false,
"properties": {
"deployment": {
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
},
"static-configs": {
"description": "Install the grub configs defined for Fedora CoreOS",
"type": "boolean"
},
"bios": {
"additionalProperties": false,
"type": "object",
"required": [
"device"
],
"properties": {
"device": {
"description": "Name of stage device to install GRUB for BIOS-based systems.",
"type": "string"
},
"partition": {
"description": "The partition on the stage device to install to, if installing to a partition",
"type": "number"
}
}
}
}
}
}
}

View file

@ -1,36 +1,36 @@
{
"summary": "Create subvolumes on a mounted btrfs partition.",
"description": [
"See `btrfs`(8).",
"Buildhost commands used: `btrfs`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"subvolumes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
},
"devices": {
"summary": "Create subvolumes on a mounted btrfs partition.",
"description": [
"See `btrfs`(8).",
"Buildhost commands used: `btrfs`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"subvolumes": {
"type": "array",
"items": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,41 +1,41 @@
{
"summary": "Create a /.buildstamp file describing the system",
"description": [
"This will create a './buildstamp' with the specified parameters."
"summary": "Create a /.buildstamp file describing the system",
"description": [
"This will create a './buildstamp' with the specified parameters."
],
"schema": {
"additionalProperties": true,
"required": [
"arch",
"product",
"version",
"final"
],
"schema": {
"additionalProperties": true,
"required": [
"arch",
"product",
"version",
"final"
],
"properties": {
"arch": {
"description": "Build architecture.",
"type": "string"
},
"product": {
"description": "The product name.",
"type": "string"
},
"version": {
"description": "The version .",
"type": "string"
},
"final": {
"description": "The product.",
"type": "boolean"
},
"variant": {
"description": "The variant of the product.",
"type": "string"
},
"bugurl": {
"description": "The bugurl of the product.",
"type": "string"
}
}
"properties": {
"arch": {
"description": "Build architecture.",
"type": "string"
},
"product": {
"description": "The product name.",
"type": "string"
},
"version": {
"description": "The version .",
"type": "string"
},
"final": {
"description": "The product.",
"type": "boolean"
},
"variant": {
"description": "The variant of the product.",
"type": "string"
},
"bugurl": {
"description": "The bugurl of the product.",
"type": "string"
}
}
}
}

View file

@ -1,37 +1,37 @@
{
"summary": "Runs `chattr` to set file/directory attributes.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^mount://[^/]+/|^tree:///": {
"type": "object",
"required": [
"immutable"
],
"properties": {
"immutable": {
"type": "boolean",
"description": "Make the file/directory immutable",
"default": true
}
}
}
}
"summary": "Runs `chattr` to set file/directory attributes.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^mount://[^/]+/|^tree:///": {
"type": "object",
"required": [
"immutable"
],
"properties": {
"immutable": {
"type": "boolean",
"description": "Make the file/directory immutable",
"default": true
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,36 +1,36 @@
{
"summary": "Change file mode bits",
"description": [
"Change the file mode bits of one or more files or directories inside the tree."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"description": "Symbolic or numeric octal mode"
},
"recursive": {
"type": "boolean",
"description": "Change modes recursively",
"default": false
}
}
}
}
"summary": "Change file mode bits",
"description": [
"Change the file mode bits of one or more files or directories inside the tree."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object",
"required": [
"mode"
],
"properties": {
"mode": {
"type": "string",
"description": "Symbolic or numeric octal mode"
},
"recursive": {
"type": "boolean",
"description": "Change modes recursively",
"default": false
}
}
}
}
}
}
}
}
}

View file

@ -1,70 +1,70 @@
{
"summary": "Change file owner and group",
"description": [
"Change the file user and/or group ownership of one or more files or directories inside the tree.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'chown' binary from the image in the chroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object",
"anyOf": [
{
"required": [
"user"
]
},
{
"required": [
"group"
]
}
],
"properties": {
"user": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_.][A-Za-z0-9_.-]{0,31}$"
},
{
"type": "number",
"minimum": 0
}
],
"description": "User name or UID"
},
"group": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$"
},
{
"type": "number",
"minimum": 0
}
],
"description": "Group name or GID"
},
"recursive": {
"type": "boolean",
"default": false,
"description": "Change ownership recursively"
}
}
}
}
"summary": "Change file owner and group",
"description": [
"Change the file user and/or group ownership of one or more files or directories inside the tree.",
"Notes:",
" - Requires 'chroot' in the buildroot.",
" - Runs the 'chown' binary from the image in the chroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"items": {
"type": "object",
"additionalProperties": false,
"patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object",
"anyOf": [
{
"required": [
"user"
]
},
{
"required": [
"group"
]
}
],
"properties": {
"user": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_.][A-Za-z0-9_.-]{0,31}$"
},
{
"type": "number",
"minimum": 0
}
],
"description": "User name or UID"
},
"group": {
"oneOf": [
{
"type": "string",
"pattern": "^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$"
},
{
"type": "number",
"minimum": 0
}
],
"description": "Group name or GID"
},
"recursive": {
"type": "boolean",
"default": false,
"description": "Change ownership recursively"
}
}
}
}
}
}
}
}
}

View file

@ -1,96 +1,96 @@
{
"summary": "Configure chrony to set system time from the network.",
"description": [
"Configures `chrony` by modifying `/etc/chrony.conf`.",
"Before new values are added to the chrony configuration, all lines starting with",
"\"server\", \"pool\" or \"peer\" are removed.",
"The 'timeservers' option provides a very high-level way of configuring chronyd",
"with specific timeservers. Its value is a list of strings representing the",
"hostname or IP address of the timeserver. For each list item, the following",
"line will be added to the configuration:",
"`server <HOSTNAME/IP> iburst`",
"The 'servers' option provides a direct mapping to the `server` directive from",
"chrony configuration. Its value is a list of dictionaries representing each",
"timeserver which should be added to the configuration. For each list item,",
"a `server` directive will be added the configuration. Currently supported",
"subset of options which can be specified for each timeserver item:",
" - 'hostname' (REQUIRED)",
" - 'minpoll'",
" - 'maxpoll'",
" - 'iburst' (defaults to true)",
" - 'prefer' (defaults to false)",
"The 'leapsectz' option configures chrony behavior related to automatic checking",
"of the next occurrence of the leap second, using the provided timezone. Its",
"value is a string representing a timezone from the system tz database (e.g.",
"'right/UTC'). If an empty string is provided, then all occurrences of",
"'leapsectz' directive are removed from the configuration.",
"Constraints:",
" - Exactly one of 'timeservers' or 'servers' options must be provided."
"summary": "Configure chrony to set system time from the network.",
"description": [
"Configures `chrony` by modifying `/etc/chrony.conf`.",
"Before new values are added to the chrony configuration, all lines starting with",
"\"server\", \"pool\" or \"peer\" are removed.",
"The 'timeservers' option provides a very high-level way of configuring chronyd",
"with specific timeservers. Its value is a list of strings representing the",
"hostname or IP address of the timeserver. For each list item, the following",
"line will be added to the configuration:",
"`server <HOSTNAME/IP> iburst`",
"The 'servers' option provides a direct mapping to the `server` directive from",
"chrony configuration. Its value is a list of dictionaries representing each",
"timeserver which should be added to the configuration. For each list item,",
"a `server` directive will be added the configuration. Currently supported",
"subset of options which can be specified for each timeserver item:",
" - 'hostname' (REQUIRED)",
" - 'minpoll'",
" - 'maxpoll'",
" - 'iburst' (defaults to true)",
" - 'prefer' (defaults to false)",
"The 'leapsectz' option configures chrony behavior related to automatic checking",
"of the next occurrence of the leap second, using the provided timezone. Its",
"value is a string representing a timezone from the system tz database (e.g.",
"'right/UTC'). If an empty string is provided, then all occurrences of",
"'leapsectz' directive are removed from the configuration.",
"Constraints:",
" - Exactly one of 'timeservers' or 'servers' options must be provided."
],
"schema": {
"additionalProperties": false,
"oneOf": [
{
"required": [
"timeservers"
]
},
{
"required": [
"servers"
]
}
],
"schema": {
"additionalProperties": false,
"oneOf": [
{
"required": [
"timeservers"
]
"properties": {
"timeservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of NTP server addresses."
},
"servers": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"required": [
"hostname"
],
"properties": {
"hostname": {
"type": "string",
"description": "Hostname or IP address of a NTP server."
},
{
"required": [
"servers"
]
}
],
"properties": {
"timeservers": {
"type": "array",
"items": {
"type": "string"
},
"description": "Array of NTP server addresses."
},
"servers": {
"type": "array",
"items": {
"additionalProperties": false,
"type": "object",
"required": [
"hostname"
],
"properties": {
"hostname": {
"type": "string",
"description": "Hostname or IP address of a NTP server."
},
"minpoll": {
"type": "integer",
"description": "Specifies the minimum interval between requests sent to the server as a power of 2 in seconds.",
"minimum": -6,
"maximum": 24
},
"maxpoll": {
"type": "integer",
"description": "Specifies the maximum interval between requests sent to the server as a power of 2 in seconds.",
"minimum": -6,
"maximum": 24
},
"iburst": {
"type": "boolean",
"default": true,
"description": "Configures chronyd behavior related to burst requests on startup."
},
"prefer": {
"type": "boolean",
"default": false,
"description": "Prefer this source over sources without the prefer option."
}
}
}
},
"leapsectz": {
"type": "string",
"description": "Timezone used by chronyd to determine when will the next leap second occur. Empty value will remove the option."
"minpoll": {
"type": "integer",
"description": "Specifies the minimum interval between requests sent to the server as a power of 2 in seconds.",
"minimum": -6,
"maximum": 24
},
"maxpoll": {
"type": "integer",
"description": "Specifies the maximum interval between requests sent to the server as a power of 2 in seconds.",
"minimum": -6,
"maximum": 24
},
"iburst": {
"type": "boolean",
"default": true,
"description": "Configures chronyd behavior related to burst requests on startup."
},
"prefer": {
"type": "boolean",
"default": false,
"description": "Prefer this source over sources without the prefer option."
}
}
}
},
"leapsectz": {
"type": "string",
"description": "Timezone used by chronyd to determine when will the next leap second occur. Empty value will remove the option."
}
}
}
}

View file

@ -1,43 +1,43 @@
{
"summary": "Bind a LUKS device using the specified policy.",
"description": [
"Buildhost commands used: `clevis`, `clevis-luks`, `clevis-pin-*`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase",
"pin",
"policy"
],
"properties": {
"passphrase": {
"description": "Passphrase to unlock the container",
"type": "string"
},
"pin": {
"description": "The pin to use",
"type": "string"
},
"policy": {
"description": "Policy to use with the given pin",
"type": "string"
}
}
"summary": "Bind a LUKS device using the specified policy.",
"description": [
"Buildhost commands used: `clevis`, `clevis-luks`, `clevis-pin-*`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase",
"pin",
"policy"
],
"properties": {
"passphrase": {
"description": "Passphrase to unlock the container",
"type": "string"
},
"pin": {
"description": "The pin to use",
"type": "string"
},
"policy": {
"description": "Policy to use with the given pin",
"type": "string"
}
}
}
}
}

View file

@ -1,142 +1,142 @@
{
"summary": "Configure cloud-init",
"description": [
"The 'config' option allows to configure cloud-init by creating a",
"configuration file under `/etc/cloud/cloud.cfg.d` with the name",
"specified by `filename`.",
"Constrains:",
" - Each configuration file definition must contain at least one configuration",
"Currently supported subset of cloud-init configuration:",
" - 'system_info' section",
" - 'default_user' section",
" - 'name' option"
"summary": "Configure cloud-init",
"description": [
"The 'config' option allows to configure cloud-init by creating a",
"configuration file under `/etc/cloud/cloud.cfg.d` with the name",
"specified by `filename`.",
"Constrains:",
" - Each configuration file definition must contain at least one configuration",
"Currently supported subset of cloud-init configuration:",
" - 'system_info' section",
" - 'default_user' section",
" - 'name' option"
],
"schema": {
"definitions": {
"reporting_handlers": {
"type": "string",
"enum": [
"log",
"print",
"webhook",
"hyperv"
]
}
},
"additionalProperties": false,
"required": [
"config",
"filename"
],
"schema": {
"definitions": {
"reporting_handlers": {
"type": "string",
"enum": [
"log",
"print",
"webhook",
"hyperv"
]
}
},
"properties": {
"filename": {
"type": "string",
"description": "Name of the cloud-init configuration file.",
"pattern": "^[\\w.-]{1,251}\\.cfg$"
},
"config": {
"additionalProperties": false,
"required": [
"config",
"filename"
],
"type": "object",
"description": "cloud-init configuration",
"minProperties": 1,
"properties": {
"filename": {
"type": "string",
"description": "Name of the cloud-init configuration file.",
"pattern": "^[\\w.-]{1,251}\\.cfg$"
},
"config": {
"system_info": {
"additionalProperties": false,
"type": "object",
"description": "'system_info' configuration section.",
"minProperties": 1,
"properties": {
"default_user": {
"additionalProperties": false,
"type": "object",
"description": "cloud-init configuration",
"description": "Configuration of the 'default' user created by cloud-init.",
"minProperties": 1,
"properties": {
"system_info": {
"additionalProperties": false,
"type": "object",
"description": "'system_info' configuration section.",
"minProperties": 1,
"properties": {
"default_user": {
"additionalProperties": false,
"type": "object",
"description": "Configuration of the 'default' user created by cloud-init.",
"minProperties": 1,
"properties": {
"name": {
"type": "string",
"description": "username of the 'default' user."
}
}
}
}
},
"reporting": {
"type": "object",
"additionalProperties": false,
"description": "Define reporting endpoints.",
"minProperties": 1,
"properties": {
"logging": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"$ref": "#/definitions/reporting_handlers"
}
}
},
"telemetry": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"$ref": "#/definitions/reporting_handlers"
}
}
}
}
},
"datasource_list": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Azure"
]
}
},
"datasource": {
"type": "object",
"description": "Sources of configuration data for cloud-init.",
"minProperties": 1,
"properties": {
"Azure": {
"type": "object",
"minProperties": 1,
"properties": {
"apply_network_config": {
"type": "boolean",
"description": "Whether to use network configuration described by Azure\u2019s IMDS endpoint",
"default": true
}
}
}
}
},
"output": {
"type": "object",
"minProperties": 1,
"properties": {
"init": {
"description": "Redirect the output of the init stage",
"type": "string"
},
"config": {
"description": "Redirect the output of the config stage",
"type": "string"
},
"final": {
"description": "Redirect the output of the final stage",
"type": "string"
},
"all": {
"description": "Redirect the output of all stages",
"type": "string"
}
}
}
"name": {
"type": "string",
"description": "username of the 'default' user."
}
}
}
}
},
"reporting": {
"type": "object",
"additionalProperties": false,
"description": "Define reporting endpoints.",
"minProperties": 1,
"properties": {
"logging": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"$ref": "#/definitions/reporting_handlers"
}
}
},
"telemetry": {
"type": "object",
"additionalProperties": false,
"properties": {
"type": {
"$ref": "#/definitions/reporting_handlers"
}
}
}
}
},
"datasource_list": {
"type": "array",
"items": {
"type": "string",
"enum": [
"Azure"
]
}
},
"datasource": {
"type": "object",
"description": "Sources of configuration data for cloud-init.",
"minProperties": 1,
"properties": {
"Azure": {
"type": "object",
"minProperties": 1,
"properties": {
"apply_network_config": {
"type": "boolean",
"description": "Whether to use network configuration described by Azures IMDS endpoint",
"default": true
}
}
}
}
},
"output": {
"type": "object",
"minProperties": 1,
"properties": {
"init": {
"description": "Redirect the output of the init stage",
"type": "string"
},
"config": {
"description": "Redirect the output of the config stage",
"type": "string"
},
"final": {
"description": "Redirect the output of the final stage",
"type": "string"
},
"all": {
"description": "Redirect the output of all stages",
"type": "string"
}
}
}
}
}
}
}
}

View file

@ -1,34 +1,34 @@
{
"summary": "Deploy a container.",
"description": [
"Buildhost commands used: podman skopeo"
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"properties": {
"exclude": {
"type": "array",
"description": "Exclude paths from the deployment",
"minItems": 1,
"items": {
"type": "string"
}
}
}
"summary": "Deploy a container.",
"description": [
"Buildhost commands used: podman skopeo"
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"properties": {
"exclude": {
"type": "array",
"description": "Exclude paths from the deployment",
"minItems": 1,
"items": {
"type": "string"
}
}
}
}
}
}

View file

@ -1,139 +1,139 @@
{
"summary": "Edit containers-storage.conf(5) files.",
"description": [
"This stage can be used to create or modify `containers-storage.conf`",
"configuration files. The default strategy is to merge the specified",
"options with the existing options."
],
"schema": {
"definitions": {
"storage": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"driver": {
"description": "container storage driver.",
"type": "string",
"enum": [
"overlay",
"vfs",
"devmapper",
"aufs",
"btrfs",
"zfs"
]
},
"graphroot": {
"description": "container storage graph directory.",
"type": "string"
},
"runroot": {
"description": "container storage run directory.",
"type": "string"
},
"transient_store": {
"description": "Make the container store not persist across reboot.",
"type": "boolean"
},
"options": {
"$ref": "#/definitions/storage-options"
}
}
},
"storage-options": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"additionalimagestores": {
"type": "array",
"items": {
"type": "string"
}
},
"pull_options": {
"$ref": "#/definitions/storage-options-pulloptions"
},
"overlay": {
"$ref": "#/definitions/storage-options-overlay"
}
}
},
"storage-options-pulloptions": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"enable_partial_images": {
"type": "string",
"enum": [
"true",
"false"
]
},
"use_hard_links": {
"type": "string",
"enum": [
"true",
"false"
]
},
"convert_images": {
"type": "string",
"enum": [
"true",
"false"
]
}
}
},
"storage-options-overlay": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"mountopt": {
"type": "string"
}
}
}
},
"summary": "Edit containers-storage.conf(5) files.",
"description": [
"This stage can be used to create or modify `containers-storage.conf`",
"configuration files. The default strategy is to merge the specified",
"options with the existing options."
],
"schema": {
"definitions": {
"storage": {
"type": "object",
"additionalProperties": false,
"required": [
"config"
],
"minProperties": 1,
"properties": {
"filename": {
"type": "string",
"description": "location of the configuration file.",
"default": "/etc/containers/storage.conf",
"enum": [
"/etc/containers/storage.conf",
"/usr/share/containers/storage.conf"
]
},
"filebase": {
"type": "string",
"description": "Read the base configuration from this file."
},
"comment": {
"type": "array",
"items": {
"type": "string"
}
},
"config": {
"additionalProperties": false,
"type": "object",
"description": "storage configuration",
"minProperties": 1,
"properties": {
"storage": {
"$ref": "#/definitions/storage"
}
}
}
"driver": {
"description": "container storage driver.",
"type": "string",
"enum": [
"overlay",
"vfs",
"devmapper",
"aufs",
"btrfs",
"zfs"
]
},
"graphroot": {
"description": "container storage graph directory.",
"type": "string"
},
"runroot": {
"description": "container storage run directory.",
"type": "string"
},
"transient_store": {
"description": "Make the container store not persist across reboot.",
"type": "boolean"
},
"options": {
"$ref": "#/definitions/storage-options"
}
}
},
"storage-options": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"additionalimagestores": {
"type": "array",
"items": {
"type": "string"
}
},
"pull_options": {
"$ref": "#/definitions/storage-options-pulloptions"
},
"overlay": {
"$ref": "#/definitions/storage-options-overlay"
}
}
},
"storage-options-pulloptions": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"enable_partial_images": {
"type": "string",
"enum": [
"true",
"false"
]
},
"use_hard_links": {
"type": "string",
"enum": [
"true",
"false"
]
},
"convert_images": {
"type": "string",
"enum": [
"true",
"false"
]
}
}
},
"storage-options-overlay": {
"type": "object",
"additionalProperties": false,
"minProperties": 1,
"properties": {
"mountopt": {
"type": "string"
}
}
}
},
"additionalProperties": false,
"required": [
"config"
],
"properties": {
"filename": {
"type": "string",
"description": "location of the configuration file.",
"default": "/etc/containers/storage.conf",
"enum": [
"/etc/containers/storage.conf",
"/usr/share/containers/storage.conf"
]
},
"filebase": {
"type": "string",
"description": "Read the base configuration from this file."
},
"comment": {
"type": "array",
"items": {
"type": "string"
}
},
"config": {
"additionalProperties": false,
"type": "object",
"description": "storage configuration",
"minProperties": 1,
"properties": {
"storage": {
"$ref": "#/definitions/storage"
}
}
}
}
}
}

View file

@ -1,96 +1,96 @@
{
"summary": "Copy items",
"description": [
"Stage to copy items, that is files or trees, from inputs to mount",
"points or the tree. Multiple items can be copied. The source and",
"destination is an url. Supported locations ('schemes') are `tree`,",
"`mount` and `input`.",
"The path format follows the rsync convention that if the paths",
"ends with a slash `/` the content of that directory is copied not",
"the directory itself.",
"Note that the stage by default does not remove the destination",
"before copying. As a result, if the destination is an existing",
"symlink to a file, then this file will be overwritten, instead of",
"the symlink being replaced. If you want to replace the symlink",
"with a file, you need to set the `remove_destination` option to",
"`true`. This option works only for files, not directories or",
"symlinks to directories."
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"summary": "Copy items",
"description": [
"Stage to copy items, that is files or trees, from inputs to mount",
"points or the tree. Multiple items can be copied. The source and",
"destination is an url. Supported locations ('schemes') are `tree`,",
"`mount` and `input`.",
"The path format follows the rsync convention that if the paths",
"ends with a slash `/` the content of that directory is copied not",
"the directory itself.",
"Note that the stage by default does not remove the destination",
"before copying. As a result, if the destination is an existing",
"symlink to a file, then this file will be overwritten, instead of",
"the symlink being replaced. If you want to replace the symlink",
"with a file, you need to set the `remove_destination` option to",
"`true`. This option works only for files, not directories or",
"symlinks to directories."
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"paths"
],
"properties": {
"paths": {
"description": "Array of items to copy",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"paths"
"from",
"to"
],
"properties": {
"paths": {
"description": "Array of items to copy",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"from",
"to"
],
"properties": {
"from": {
"oneOf": [
{
"type": "string",
"description": "The source, if an input",
"pattern": "^input://[^/]+/"
},
{
"type": "string",
"description": "The source, if a mount",
"pattern": "^mount://[^/]+/"
},
{
"type": "string",
"description": "The source, if the tree",
"pattern": "^tree:///"
}
]
},
"to": {
"oneOf": [
{
"type": "string",
"description": "The destination, if a mount",
"pattern": "^mount://[^/]+/"
},
{
"type": "string",
"description": "The destination, if the tree",
"pattern": "^tree:///"
}
]
},
"remove_destination": {
"type": "boolean",
"description": "Remove the destination before copying. Works only for files, not directories.",
"default": false
}
}
}
}
"from": {
"oneOf": [
{
"type": "string",
"description": "The source, if an input",
"pattern": "^input://[^/]+/"
},
{
"type": "string",
"description": "The source, if a mount",
"pattern": "^mount://[^/]+/"
},
{
"type": "string",
"description": "The source, if the tree",
"pattern": "^tree:///"
}
]
},
"to": {
"oneOf": [
{
"type": "string",
"description": "The destination, if a mount",
"pattern": "^mount://[^/]+/"
},
{
"type": "string",
"description": "The destination, if the tree",
"pattern": "^tree:///"
}
]
},
"remove_destination": {
"type": "boolean",
"description": "Remove the destination before copying. Works only for files, not directories.",
"default": false
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
},
"inputs": {
"type": "object",
"additionalProperties": true
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
},
"inputs": {
"type": "object",
"additionalProperties": true
}
}
}

View file

@ -1,42 +1,42 @@
{
"summary": "Setup a CoreOS platform",
"description": [
"In CoreOS we have the concept of a platform (i.e. AWS, GCP, Metal, QEMU)",
"where each platform has its own provided disk image with slightly",
"differing settings/behavior. This stage will perform the necessary",
"configuration for the given platform. This configuration boils down to",
"a few steps:",
"1. Locate the source of platform specific information that is provided",
" in the CoreOS filesystem tree already (the platforms.json).",
"2. Copy the platforms.json file into the /boot/ partition, which is",
" sometimes used by coreos-installer.",
"3. Read the platforms.json to fetch and platform specific kernel",
" arguments or grub configuration to set. These arguments/config",
" are primarily console settings.",
"4. Apply any platform specific kernel arguments along with the",
" `ignition.platform.id={platform-name}` kernel argument.",
"5. Create the grub console.cfg file and apply any platform",
" specific grub console configuration.",
"This stage is highly CoreOS specific and subject to change in the",
"future if/when we change the way platform specific information is",
"defined in our broader efforts to share more defaults with OSBuild."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"platform": {
"description": "The target platform name/ID",
"type": "string"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
"summary": "Setup a CoreOS platform",
"description": [
"In CoreOS we have the concept of a platform (i.e. AWS, GCP, Metal, QEMU)",
"where each platform has its own provided disk image with slightly",
"differing settings/behavior. This stage will perform the necessary",
"configuration for the given platform. This configuration boils down to",
"a few steps:",
"1. Locate the source of platform specific information that is provided",
" in the CoreOS filesystem tree already (the platforms.json).",
"2. Copy the platforms.json file into the /boot/ partition, which is",
" sometimes used by coreos-installer.",
"3. Read the platforms.json to fetch and platform specific kernel",
" arguments or grub configuration to set. These arguments/config",
" are primarily console settings.",
"4. Apply any platform specific kernel arguments along with the",
" `ignition.platform.id={platform-name}` kernel argument.",
"5. Create the grub console.cfg file and apply any platform",
" specific grub console configuration.",
"This stage is highly CoreOS specific and subject to change in the",
"future if/when we change the way platform specific information is",
"defined in our broader efforts to share more defaults with OSBuild."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"platform": {
"description": "The target platform name/ID",
"type": "string"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,84 +1,84 @@
{
"summary": "Assembles the tree into a CPIO archive.",
"description": [
"Uses the buildhost's `cpio` command, to create an archive",
"at `filename` with the contents of the input `tree`. If",
"`append` is `true`, its files will be added to an existing",
"archive. The default format is `newc` , the \"new (SVR4)",
"portable format\", which is also used by `dracut`(8).",
"Buildhost commands used: `cpio`"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename for tar archive",
"type": "string"
},
"append": {
"type": "boolean",
"description": "Append to an existing archive.",
"default": false
},
"format": {
"description": "Archive format to use",
"type": "string",
"enum": [
"bin",
"odc",
"newc",
"crc",
"tar",
"ustar"
],
"default": "newc"
},
"root-node": {
"description": "How to handle the root node: include or omit",
"enum": [
"include",
"omit"
],
"default": "include"
},
"reproducible": {
"type": "boolean",
"description": "Produce device-independent, reproducible archives.",
"default": true
},
"owner": {
"type": "object",
"additionalProperties": false,
"required": [
"user"
],
"properties": {
"user": {
"type": "string"
},
"group": {
"type": "string"
}
}
}
}
"summary": "Assembles the tree into a CPIO archive.",
"description": [
"Uses the buildhost's `cpio` command, to create an archive",
"at `filename` with the contents of the input `tree`. If",
"`append` is `true`, its files will be added to an existing",
"archive. The default format is `newc` , the \"new (SVR4)",
"portable format\", which is also used by `dracut`(8).",
"Buildhost commands used: `cpio`"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename for tar archive",
"type": "string"
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
"append": {
"type": "boolean",
"description": "Append to an existing archive.",
"default": false
},
"format": {
"description": "Archive format to use",
"type": "string",
"enum": [
"bin",
"odc",
"newc",
"crc",
"tar",
"ustar"
],
"default": "newc"
},
"root-node": {
"description": "How to handle the root node: include or omit",
"enum": [
"include",
"omit"
],
"default": "include"
},
"reproducible": {
"type": "boolean",
"description": "Produce device-independent, reproducible archives.",
"default": true
},
"owner": {
"type": "object",
"additionalProperties": false,
"required": [
"user"
],
"properties": {
"user": {
"type": "string"
},
"group": {
"type": "string"
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,61 +1,61 @@
{
"summary": "Run a script at regular intervals.",
"description": [
"Execute a script at regular intervals. This uses the cron drop-in",
"directories in etc, which correspond to the supported intervals:",
" `cron.hourly/`, `cron.daily/`, `cron.weekly/`, `cron.monthly/`",
"NB: Does itself not create the directories so they must be created",
"via the package that provides the facility, like `cronie` or on",
"older systems `crontabs`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"interval",
"filename"
],
"oneOf": [
{
"required": [
"simple"
]
}
],
"properties": {
"interval": {
"type": "string",
"enum": [
"hourly",
"daily",
"weekly",
"monthly"
]
},
"filename": {
"type": "string",
"description": "Name of the cron script",
"pattern": "^[\\w.-]{1,255}$"
},
"simple": {
"type": "object",
"description": "A simple command to run.",
"required": [
"command"
],
"properties": {
"comment": {
"type": "array",
"items": {
"type": "string"
}
},
"command": {
"type": "string"
}
}
}
}
"summary": "Run a script at regular intervals.",
"description": [
"Execute a script at regular intervals. This uses the cron drop-in",
"directories in etc, which correspond to the supported intervals:",
" `cron.hourly/`, `cron.daily/`, `cron.weekly/`, `cron.monthly/`",
"NB: Does itself not create the directories so they must be created",
"via the package that provides the facility, like `cronie` or on",
"older systems `crontabs`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"interval",
"filename"
],
"oneOf": [
{
"required": [
"simple"
]
}
],
"properties": {
"interval": {
"type": "string",
"enum": [
"hourly",
"daily",
"weekly",
"monthly"
]
},
"filename": {
"type": "string",
"description": "Name of the cron script",
"pattern": "^[\\w.-]{1,255}$"
},
"simple": {
"type": "object",
"description": "A simple command to run.",
"required": [
"command"
],
"properties": {
"comment": {
"type": "array",
"items": {
"type": "string"
}
},
"command": {
"type": "string"
}
}
}
}
}
}
}

View file

@ -1,66 +1,66 @@
{
"summary": "Create /etc/crypttab entries for encrypted block devices",
"description": [
"See crypttab(5) for a detailed description of the format but in brief:",
"each item in the list of `volumes` describes an encrypted block device",
"and how it should it should be setup. The block device is identified",
"either by `uuid` or by `path` (device node path). The volume will be",
"named as `volume`, i.e. made available as `/dev/mapper/$volume`.",
"Additionally, a keyfile can (optionally) be specified via `keyfile`.",
"Specific device options can be specified via `options`.",
"This stage replaces /etc/crypttab, removing any existing entries."
"summary": "Create /etc/crypttab entries for encrypted block devices",
"description": [
"See crypttab(5) for a detailed description of the format but in brief:",
"each item in the list of `volumes` describes an encrypted block device",
"and how it should it should be setup. The block device is identified",
"either by `uuid` or by `path` (device node path). The volume will be",
"named as `volume`, i.e. made available as `/dev/mapper/$volume`.",
"Additionally, a keyfile can (optionally) be specified via `keyfile`.",
"Specific device options can be specified via `options`.",
"This stage replaces /etc/crypttab, removing any existing entries."
],
"schema": {
"additionalProperties": false,
"required": [
"volumes"
],
"schema": {
"additionalProperties": false,
"required": [
"volumes"
],
"properties": {
"volumes": {
"type": "array",
"description": "array of volume objects",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"uuid",
"volume"
]
},
{
"required": [
"path",
"volume"
]
}
],
"properties": {
"volume": {
"description": "volume mountpoint",
"type": "string"
},
"uuid": {
"description": "device UUID",
"type": "string"
},
"path": {
"description": "device path",
"type": "string"
},
"keyfile": {
"description": "",
"type": "string",
"default": "none"
},
"options": {
"description": "options (comma-separated)",
"type": "string",
"default": ""
}
}
}
"properties": {
"volumes": {
"type": "array",
"description": "array of volume objects",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"uuid",
"volume"
]
},
{
"required": [
"path",
"volume"
]
}
],
"properties": {
"volume": {
"description": "volume mountpoint",
"type": "string"
},
"uuid": {
"description": "device UUID",
"type": "string"
},
"path": {
"description": "device path",
"type": "string"
},
"keyfile": {
"description": "",
"type": "string",
"default": "none"
},
"options": {
"description": "options (comma-separated)",
"type": "string",
"default": ""
}
}
}
}
}
}
}

View file

@ -1,20 +1,20 @@
{
"summary": "Set up an early root shell on a certain tty",
"description": [
"Creates a systemd unit file at /etc/systemd/system/osbuild-debug-shell.service",
"which starts an early-boot root shell on the given `tty`.",
"Also symlinks the service file into /etc/systemd/system/sysinit.target.wants/."
"summary": "Set up an early root shell on a certain tty",
"description": [
"Creates a systemd unit file at /etc/systemd/system/osbuild-debug-shell.service",
"which starts an early-boot root shell on the given `tty`.",
"Also symlinks the service file into /etc/systemd/system/sysinit.target.wants/."
],
"schema": {
"additionalProperties": false,
"required": [
"tty"
],
"schema": {
"additionalProperties": false,
"required": [
"tty"
],
"properties": {
"tty": {
"type": "string",
"description": "Absolute path of the tty device to start a root shell on."
}
}
"properties": {
"tty": {
"type": "string",
"description": "Absolute path of the tty device to start a root shell on."
}
}
}
}

View file

@ -1,23 +1,23 @@
{
"summary": "Create a `.discinfo` file describing disk",
"description": [
"This will create a `.discinfo` file with the specified parameters."
"summary": "Create a `.discinfo` file describing disk",
"description": [
"This will create a `.discinfo` file with the specified parameters."
],
"schema": {
"additionalProperties": true,
"required": [
"basearch",
"release"
],
"schema": {
"additionalProperties": true,
"required": [
"basearch",
"release"
],
"properties": {
"basearch": {
"description": "Build architecture.",
"type": "string"
},
"release": {
"description": "The product name.",
"type": "string"
}
}
"properties": {
"basearch": {
"description": "Build architecture.",
"type": "string"
},
"release": {
"description": "The product name.",
"type": "string"
}
}
}
}

View file

@ -1,47 +1,47 @@
{
"summary": "Change DNF Automatic configuration.",
"description": [
"The stage changes persistent DNF Automatic configuration. Currently, only",
"a subset of options can be set:",
" - 'commands' section",
" - apply_updates",
" - upgrade_type"
],
"schema": {
"definitions": {
"commands": {
"type": "object",
"additionalProperties": false,
"description": "'commands' configuration section.",
"properties": {
"apply_updates": {
"type": "boolean",
"description": "Whether packages comprising the available updates should be installed."
},
"upgrade_type": {
"type": "string",
"description": "What kind of upgrades to look at.",
"enum": [
"default",
"security"
]
}
}
}
},
"summary": "Change DNF Automatic configuration.",
"description": [
"The stage changes persistent DNF Automatic configuration. Currently, only",
"a subset of options can be set:",
" - 'commands' section",
" - apply_updates",
" - upgrade_type"
],
"schema": {
"definitions": {
"commands": {
"type": "object",
"additionalProperties": false,
"description": "DNF Automatic configuration.",
"description": "'commands' configuration section.",
"properties": {
"config": {
"type": "object",
"additionalProperties": false,
"description": "configuration definition.",
"properties": {
"commands": {
"$ref": "#/definitions/commands"
}
}
}
"apply_updates": {
"type": "boolean",
"description": "Whether packages comprising the available updates should be installed."
},
"upgrade_type": {
"type": "string",
"description": "What kind of upgrades to look at.",
"enum": [
"default",
"security"
]
}
}
}
},
"additionalProperties": false,
"description": "DNF Automatic configuration.",
"properties": {
"config": {
"type": "object",
"additionalProperties": false,
"description": "configuration definition.",
"properties": {
"commands": {
"$ref": "#/definitions/commands"
}
}
}
}
}
}

View file

@ -1,90 +1,90 @@
{
"summary": "Change DNF configuration.",
"description": [
"The stage changes persistent DNF configuration on the filesystem.",
"Allows defining dnf variables via the `variables` option and",
"specific configuration options via the `config` option. The",
"latter will be saved in `/etc/dnf/dnf.conf`. See `dnf.conf(5)`",
"for details about the configuration options."
],
"schema": {
"definitions": {
"variable": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"value"
],
"description": "DNF variable to configure persistently.",
"properties": {
"name": {
"type": "string",
"pattern": "^[a-z0-9_]+$",
"description": "Name of the variable."
},
"value": {
"type": "string",
"description": "Value of the variable."
}
}
},
"config_main": {
"type": "object",
"additionalProperties": false,
"properties": {
"ip_resolve": {
"type": "string",
"enum": [
"4",
"IPv4",
"6",
"IPv6"
],
"description": "Determines how DNF resolves host names."
},
"tsflags": {
"type": "array",
"description": "Extra flags for the RPM transaction.",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"noscripts",
"test",
"notriggers",
"nodocs",
"justdb",
"nocontexts",
"nocaps",
"nocrypto"
]
}
}
}
}
},
"summary": "Change DNF configuration.",
"description": [
"The stage changes persistent DNF configuration on the filesystem.",
"Allows defining dnf variables via the `variables` option and",
"specific configuration options via the `config` option. The",
"latter will be saved in `/etc/dnf/dnf.conf`. See `dnf.conf(5)`",
"for details about the configuration options."
],
"schema": {
"definitions": {
"variable": {
"type": "object",
"additionalProperties": false,
"description": "DNF configuration.",
"required": [
"name",
"value"
],
"description": "DNF variable to configure persistently.",
"properties": {
"variables": {
"type": "array",
"description": "DNF variables to configure persistently.",
"items": {
"$ref": "#/definitions/variable"
}
},
"config": {
"additionalProperties": false,
"type": "object",
"description": "DNF global configuration.",
"properties": {
"main": {
"$ref": "#/definitions/config_main"
}
}
}
"name": {
"type": "string",
"pattern": "^[a-z0-9_]+$",
"description": "Name of the variable."
},
"value": {
"type": "string",
"description": "Value of the variable."
}
}
},
"config_main": {
"type": "object",
"additionalProperties": false,
"properties": {
"ip_resolve": {
"type": "string",
"enum": [
"4",
"IPv4",
"6",
"IPv6"
],
"description": "Determines how DNF resolves host names."
},
"tsflags": {
"type": "array",
"description": "Extra flags for the RPM transaction.",
"minItems": 1,
"uniqueItems": true,
"items": {
"type": "string",
"enum": [
"noscripts",
"test",
"notriggers",
"nodocs",
"justdb",
"nocontexts",
"nocaps",
"nocrypto"
]
}
}
}
}
},
"additionalProperties": false,
"description": "DNF configuration.",
"properties": {
"variables": {
"type": "array",
"description": "DNF variables to configure persistently.",
"items": {
"$ref": "#/definitions/variable"
}
},
"config": {
"additionalProperties": false,
"type": "object",
"description": "DNF global configuration.",
"properties": {
"main": {
"$ref": "#/definitions/config_main"
}
}
}
}
}
}

View file

@ -1,38 +1,38 @@
{
"summary": "Mark packages in the DNF state database.",
"description": [],
"schema_2": {
"options": {
"summary": "Mark packages in the DNF state database.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"packages": {
"type": "array",
"minItems": 1,
"description": "Packages and their marks.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"mark"
],
"properties": {
"packages": {
"type": "array",
"minItems": 1,
"description": "Packages and their marks.",
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"mark"
],
"properties": {
"name": {
"type": "string",
"description": "Package name."
},
"mark": {
"type": "string",
"enum": [
"install",
"group"
],
"description": "Package mark."
}
}
}
}
"name": {
"type": "string",
"description": "Package name."
},
"mark": {
"type": "string",
"enum": [
"install",
"group"
],
"description": "Package mark."
}
}
}
}
}
}
}
}

View file

@ -1,130 +1,130 @@
{
"summary": "Configure dracut.",
"description": [
"The 'config' option allows to create a dracut configuration file under",
"`/usr/lib/dracut/dracut.conf.d/` with the name `filename`. Only a subset",
"of configuration options is supported, with the intention to provide",
"functional parity with `org.osbuild.dracut` stage.",
"Constrains:",
" - At least one configuration option must be specified for each configuration",
"Supported configuration options:",
" - compress",
" - dracutmodules",
" - add_dracutmodules",
" - omit_dracutmodules",
" - drivers",
" - add_drivers",
" - omit_drivers",
" - force_drivers",
" - filesystems",
" - install_items",
" - early_microcode",
" - reproducible"
"summary": "Configure dracut.",
"description": [
"The 'config' option allows to create a dracut configuration file under",
"`/usr/lib/dracut/dracut.conf.d/` with the name `filename`. Only a subset",
"of configuration options is supported, with the intention to provide",
"functional parity with `org.osbuild.dracut` stage.",
"Constrains:",
" - At least one configuration option must be specified for each configuration",
"Supported configuration options:",
" - compress",
" - dracutmodules",
" - add_dracutmodules",
" - omit_dracutmodules",
" - drivers",
" - add_drivers",
" - omit_drivers",
" - force_drivers",
" - filesystems",
" - install_items",
" - early_microcode",
" - reproducible"
],
"schema": {
"additionalProperties": false,
"required": [
"config",
"filename"
],
"schema": {
"properties": {
"filename": {
"type": "string",
"description": "Name of the dracut configuration file.",
"pattern": "^[\\w.-]{1,250}\\.conf$"
},
"config": {
"additionalProperties": false,
"required": [
"config",
"filename"
],
"type": "object",
"description": "dracut configuration.",
"minProperties": 1,
"properties": {
"filename": {
"type": "string",
"description": "Name of the dracut configuration file.",
"pattern": "^[\\w.-]{1,250}\\.conf$"
},
"config": {
"additionalProperties": false,
"type": "object",
"description": "dracut configuration.",
"minProperties": 1,
"properties": {
"compress": {
"description": "Compress the generated initramfs using the passed compression program.",
"type": "string"
},
"dracutmodules": {
"description": "Exact list of dracut modules to use.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"add_dracutmodules": {
"description": "Additional dracut modules to include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"omit_dracutmodules": {
"description": "Dracut modules to not include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"drivers": {
"description": "Kernel modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"add_drivers": {
"description": "Add a specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"omit_drivers": {
"description": "Omit specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"force_drivers": {
"description": "Add driver and ensure that they are tried to be loaded.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"filesystems": {
"description": "Kernel filesystem modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"install_items": {
"description": "Install the specified files.",
"type": "array",
"items": {
"type": "string",
"description": "Specify additional files to include in the initramfs."
}
},
"early_microcode": {
"description": "Combine early microcode with the initramfs.",
"type": "boolean"
},
"reproducible": {
"description": "Create reproducible images.",
"type": "boolean"
}
}
"compress": {
"description": "Compress the generated initramfs using the passed compression program.",
"type": "string"
},
"dracutmodules": {
"description": "Exact list of dracut modules to use.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"add_dracutmodules": {
"description": "Additional dracut modules to include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"omit_dracutmodules": {
"description": "Dracut modules to not include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"drivers": {
"description": "Kernel modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"add_drivers": {
"description": "Add a specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"omit_drivers": {
"description": "Omit specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"force_drivers": {
"description": "Add driver and ensure that they are tried to be loaded.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"filesystems": {
"description": "Kernel filesystem modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"install_items": {
"description": "Install the specified files.",
"type": "array",
"items": {
"type": "string",
"description": "Specify additional files to include in the initramfs."
}
},
"early_microcode": {
"description": "Combine early microcode with the initramfs.",
"type": "boolean"
},
"reproducible": {
"description": "Create reproducible images.",
"type": "boolean"
}
}
}
}
}
}

View file

@ -1,131 +1,131 @@
{
"summary": "Create (re-create) the initial RAM file-system",
"description": [
"Uses `dracut` to re-create the initial RAM filesystem, see man dracut(8).",
"The kernels for which the initramfs should be generated need to be provided",
"via `kernel` matching their name on the disk, like \"5.6.6-300.fc32.x86_64\".",
"Supports most options also found in `dracut`(8). See the respective man",
"page and schema for this stage.",
"NB: needs chroot for now as well as `strip` for stripping the initrfams."
"summary": "Create (re-create) the initial RAM file-system",
"description": [
"Uses `dracut` to re-create the initial RAM filesystem, see man dracut(8).",
"The kernels for which the initramfs should be generated need to be provided",
"via `kernel` matching their name on the disk, like \"5.6.6-300.fc32.x86_64\".",
"Supports most options also found in `dracut`(8). See the respective man",
"page and schema for this stage.",
"NB: needs chroot for now as well as `strip` for stripping the initrfams."
],
"schema": {
"required": [
"kernel"
],
"schema": {
"required": [
"kernel"
],
"properties": {
"kernel": {
"description": "List of target kernel versions",
"type": "array",
"items": {
"type": "string",
"description": "A kernel version"
}
},
"compress": {
"description": "Compress the initramfs, passed via `--compress`",
"type": "string"
},
"modules": {
"description": "Exact list of dracut modules to use.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"add_modules": {
"description": "Additional dracut modules to include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"omit_modules": {
"description": "Dracut modules to not include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"drivers": {
"description": "Kernel modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"add_drivers": {
"description": "Add a specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"omit_drivers": {
"description": "Omit specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"force_drivers": {
"description": "Add driver and ensure that they are tried to be loaded.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"filesystems": {
"description": "Kernel filesystem modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"include": {
"description": "Add custom files to the initramfs.",
"type": "array",
"items": {
"type": "object",
"description": "What (keys) to include where (values)"
}
},
"install": {
"description": "Install the specified files.",
"type": "array",
"items": {
"type": "string"
}
},
"early_microcode": {
"description": "Combine early microcode with the initramfs.",
"type": "boolean",
"default": false
},
"reproducible": {
"description": "Create reproducible images.",
"type": "boolean"
},
"initoverlayfs": {
"description": "Use initoverlayfs rather than initramfs, requires initoverlayfs rpm to be installed",
"type": "boolean",
"default": false
},
"extra": {
"description": "Extra arguments to directly pass to dracut",
"type": "array",
"items": {
"type": "string",
"description": "Individual extra arguments"
}
}
"properties": {
"kernel": {
"description": "List of target kernel versions",
"type": "array",
"items": {
"type": "string",
"description": "A kernel version"
}
},
"compress": {
"description": "Compress the initramfs, passed via `--compress`",
"type": "string"
},
"modules": {
"description": "Exact list of dracut modules to use.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"add_modules": {
"description": "Additional dracut modules to include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"omit_modules": {
"description": "Dracut modules to not include.",
"type": "array",
"items": {
"type": "string",
"description": "A dracut module, e.g. base, nfs, network ..."
}
},
"drivers": {
"description": "Kernel modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"add_drivers": {
"description": "Add a specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"omit_drivers": {
"description": "Omit specific kernel modules.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension."
}
},
"force_drivers": {
"description": "Add driver and ensure that they are tried to be loaded.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"filesystems": {
"description": "Kernel filesystem modules to exclusively include.",
"type": "array",
"items": {
"type": "string",
"description": "A kernel module without the .ko extension"
}
},
"include": {
"description": "Add custom files to the initramfs.",
"type": "array",
"items": {
"type": "object",
"description": "What (keys) to include where (values)"
}
},
"install": {
"description": "Install the specified files.",
"type": "array",
"items": {
"type": "string"
}
},
"early_microcode": {
"description": "Combine early microcode with the initramfs.",
"type": "boolean",
"default": false
},
"reproducible": {
"description": "Create reproducible images.",
"type": "boolean"
},
"initoverlayfs": {
"description": "Use initoverlayfs rather than initramfs, requires initoverlayfs rpm to be installed",
"type": "boolean",
"default": false
},
"extra": {
"description": "Extra arguments to directly pass to dracut",
"type": "array",
"items": {
"type": "string",
"description": "Individual extra arguments"
}
}
}
}
}

View file

@ -1,74 +1,74 @@
{
"summary": "Create a file containing an erofs filesystem named `filename`.",
"description": [
"See https://en.wikipedia.org/wiki/EROFS for details about the",
"filesystem.",
"Buildhost commands used: `mkfs.erofs`"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename for the output",
"type": "string"
},
"compression": {
"type": "object",
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"description": "Compression method",
"enum": [
"lz4",
"lz4hc",
"lzma"
]
},
"level": {
"description": "Compression level. Note that different methods support different levels. See mkfs.erofs(1) for more details",
"type": "number"
}
}
},
"options": {
"description": "Extended options for the filesystem, see mkfs.erofs(1)",
"type": "array",
"minItems": 1,
"items:": {
"enum": [
"all-fragments",
"dedupe",
"force-inode-compact",
"force-inode-extended",
"force-inode-blockmap",
"force-chunk-indexes",
"fragments",
"noinline_data",
"ztailpacking"
]
}
}
}
"summary": "Create a file containing an erofs filesystem named `filename`.",
"description": [
"See https://en.wikipedia.org/wiki/EROFS for details about the",
"filesystem.",
"Buildhost commands used: `mkfs.erofs`"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename for the output",
"type": "string"
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
"compression": {
"type": "object",
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"description": "Compression method",
"enum": [
"lz4",
"lz4hc",
"lzma"
]
},
"level": {
"description": "Compression level. Note that different methods support different levels. See mkfs.erofs(1) for more details",
"type": "number"
}
}
},
"options": {
"description": "Extended options for the filesystem, see mkfs.erofs(1)",
"type": "array",
"minItems": 1,
"items:": {
"enum": [
"all-fragments",
"dedupe",
"force-inode-compact",
"force-inode-extended",
"force-inode-blockmap",
"force-chunk-indexes",
"fragments",
"noinline_data",
"ztailpacking"
]
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,17 +1,17 @@
{
"summary": "Return an error",
"description": [
"Error stage. Return the given error. Useful for testing, debugging, and",
"wasting time."
],
"schema": {
"additionalProperties": false,
"properties": {
"returncode": {
"description": "What to return code to use",
"type": "number",
"default": 255
}
}
"summary": "Return an error",
"description": [
"Error stage. Return the given error. Useful for testing, debugging, and",
"wasting time."
],
"schema": {
"additionalProperties": false,
"properties": {
"returncode": {
"description": "What to return code to use",
"type": "number",
"default": 255
}
}
}
}

View file

@ -1,45 +1,45 @@
{
"summary": "Change OSTree configuration experimental options",
"description": [
"NOTE: This stage is experimental and subject to changes",
"Change the configuration for an OSTree repository.",
"Currently only the following values are supported:",
" - `integrity.composefs`",
"See `ostree.repo-config(5)` for more information."
"summary": "Change OSTree configuration experimental options",
"description": [
"NOTE: This stage is experimental and subject to changes",
"Change the configuration for an OSTree repository.",
"Currently only the following values are supported:",
" - `integrity.composefs`",
"See `ostree.repo-config(5)` for more information."
],
"schema": {
"additionalProperties": false,
"required": [
"repo"
],
"schema": {
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"config": {
"type": "object",
"additionalProperties": false,
"required": [
"repo"
],
"description": "OSTree configuration groups",
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"config": {
"type": "object",
"additionalProperties": false,
"description": "OSTree configuration groups",
"properties": {
"integrity": {
"type": "object",
"additionalProperties": false,
"description": "Options concerning the sysroot",
"properties": {
"composefs": {
"description": "Enable composefs image generation on deploy.",
"type": "string",
"enum": [
"true",
"false",
"maybe"
]
}
}
}
}
"integrity": {
"type": "object",
"additionalProperties": false,
"description": "Options concerning the sysroot",
"properties": {
"composefs": {
"description": "Enable composefs image generation on deploy.",
"type": "string",
"enum": [
"true",
"false",
"maybe"
]
}
}
}
}
}
}
}
}

View file

@ -1,27 +1,27 @@
{
"summary": "FDO initial DIUN certificates",
"description": [
"FDO stage to write down the initial DIUN pub key root certificates",
"to be read by the manufacturer client",
"This will create a '/fdo_diun_root_certs.pem' with content",
"specified via the `rootcerts` input."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"rootcerts"
],
"properties": {
"rootcerts": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false
"summary": "FDO initial DIUN certificates",
"description": [
"FDO stage to write down the initial DIUN pub key root certificates",
"to be read by the manufacturer client",
"This will create a '/fdo_diun_root_certs.pem' with content",
"specified via the `rootcerts` input."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"rootcerts"
],
"properties": {
"rootcerts": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false
}
}
}

View file

@ -1,85 +1,85 @@
{
"summary": "Configure firewall",
"description": [
"Configure firewalld using the `firewall-offline-cmd` from inside the target.",
"This stage adds each of the given `ports` and `enabled_services` to the default",
"firewall zone using the `--port` and `--service` options, then removes the",
"services listed in `disabled_services` with `--remove-service`.",
"Ports should be specified as \"portid:protocol\" or \"portid-portid:protocol\",",
"where \"portid\" is a number (or a port name from `/etc/services`, like \"ssh\" or",
"\"echo\") and \"protocol\" is one of \"tcp\", \"udp\", \"sctp\", or \"dccp\".",
"Enabling or disabling a service that is already enabled or disabled will not",
"cause an error.",
"Attempting to enable/disable an unknown service name will cause this stage to",
"fail. Known service names are determined by the contents of firewalld's",
"configuration directories, usually `/{lib,etc}/firewalld/services/*.xml`, and",
"may vary from release to release.",
"WARNING: this stage uses `chroot` to run `firewall-offline-cmd` inside the",
"target tree, which means it may fail unexpectedly when the buildhost and target",
"are different arches or OSes."
],
"schema": {
"additionalProperties": false,
"properties": {
"ports": {
"description": "Ports (or port ranges) to open",
"type": "array",
"items": {
"type": "string",
"description": "A port or port range: 'portid[-portid]:protocol'",
"pattern": ".:(tcp|udp|sctp|dccp)$"
}
},
"enabled_services": {
"description": "Network services to allow in the default firewall zone",
"type": "array",
"items": {
"type": "string",
"description": "Service name (from /{lib,etc}/firewalld/services/*.xml)"
}
},
"disabled_services": {
"description": "Network services to remove from the default firewall zone",
"type": "array",
"items": {
"type": "string",
"description": "Service name (from /{lib,etc}/firewalld/services/*.xml)"
}
},
"default_zone": {
"description": "Set default zone for connections and interfaces where no zone has been selected.",
"type": "string"
},
"zones": {
"description": "Bind a list of network sources to a zone to restrict traffic from those sources based on the settings of the zone.",
"type": "array",
"minItems": 1,
"items": {
"additionalProperties": false,
"type": "object",
"description": "configuration for each zone",
"required": [
"name",
"sources"
],
"properties": {
"name": {
"type": "string",
"description": "name of the zone, if left empty the sources will apply to the default zone.",
"pattern": "^[a-zA-Z0-9_-]+$"
},
"sources": {
"type": "array",
"description": "list of sources for the zone",
"items": {
"additionalProperties": false,
"type": "string",
"description": "A source: <source>[/<mask>]|<MAC>|ipset:<ipset>"
}
}
}
}
}
"summary": "Configure firewall",
"description": [
"Configure firewalld using the `firewall-offline-cmd` from inside the target.",
"This stage adds each of the given `ports` and `enabled_services` to the default",
"firewall zone using the `--port` and `--service` options, then removes the",
"services listed in `disabled_services` with `--remove-service`.",
"Ports should be specified as \"portid:protocol\" or \"portid-portid:protocol\",",
"where \"portid\" is a number (or a port name from `/etc/services`, like \"ssh\" or",
"\"echo\") and \"protocol\" is one of \"tcp\", \"udp\", \"sctp\", or \"dccp\".",
"Enabling or disabling a service that is already enabled or disabled will not",
"cause an error.",
"Attempting to enable/disable an unknown service name will cause this stage to",
"fail. Known service names are determined by the contents of firewalld's",
"configuration directories, usually `/{lib,etc}/firewalld/services/*.xml`, and",
"may vary from release to release.",
"WARNING: this stage uses `chroot` to run `firewall-offline-cmd` inside the",
"target tree, which means it may fail unexpectedly when the buildhost and target",
"are different arches or OSes."
],
"schema": {
"additionalProperties": false,
"properties": {
"ports": {
"description": "Ports (or port ranges) to open",
"type": "array",
"items": {
"type": "string",
"description": "A port or port range: 'portid[-portid]:protocol'",
"pattern": ".:(tcp|udp|sctp|dccp)$"
}
},
"enabled_services": {
"description": "Network services to allow in the default firewall zone",
"type": "array",
"items": {
"type": "string",
"description": "Service name (from /{lib,etc}/firewalld/services/*.xml)"
}
},
"disabled_services": {
"description": "Network services to remove from the default firewall zone",
"type": "array",
"items": {
"type": "string",
"description": "Service name (from /{lib,etc}/firewalld/services/*.xml)"
}
},
"default_zone": {
"description": "Set default zone for connections and interfaces where no zone has been selected.",
"type": "string"
},
"zones": {
"description": "Bind a list of network sources to a zone to restrict traffic from those sources based on the settings of the zone.",
"type": "array",
"minItems": 1,
"items": {
"additionalProperties": false,
"type": "object",
"description": "configuration for each zone",
"required": [
"name",
"sources"
],
"properties": {
"name": {
"type": "string",
"description": "name of the zone, if left empty the sources will apply to the default zone.",
"pattern": "^[a-zA-Z0-9_-]+$"
},
"sources": {
"type": "array",
"description": "list of sources for the zone",
"items": {
"additionalProperties": false,
"type": "string",
"description": "A source: <source>[/<mask>]|<MAC>|ipset:<ipset>"
}
}
}
}
}
}
}
}

View file

@ -1,33 +1,33 @@
{
"summary": "Execute commands on first-boot",
"description": [
"Sequentially execute a list of commands on first-boot / instantiation.",
"This stage uses a logic similar to systemd's first-boot to execute a given",
"script only the first time the image is booted.",
"An empty flag file /etc/osbuild-first-boot is written to /etc and a systemd",
"service is enabled that is only run when the file exits, and will remove it",
"before executing the given commands.",
"If the flag-file cannot be removed, the service fails without executing",
"any further first-boot commands."
"summary": "Execute commands on first-boot",
"description": [
"Sequentially execute a list of commands on first-boot / instantiation.",
"This stage uses a logic similar to systemd's first-boot to execute a given",
"script only the first time the image is booted.",
"An empty flag file /etc/osbuild-first-boot is written to /etc and a systemd",
"service is enabled that is only run when the file exits, and will remove it",
"before executing the given commands.",
"If the flag-file cannot be removed, the service fails without executing",
"any further first-boot commands."
],
"schema": {
"additionalProperties": false,
"required": [
"commands"
],
"schema": {
"additionalProperties": false,
"required": [
"commands"
],
"properties": {
"commands": {
"type": "array",
"description": "The command lines to execute",
"items": {
"type": "string"
}
},
"wait_for_network": {
"type": "boolean",
"description": "Wait for the network to be up before executing",
"default": false
}
"properties": {
"commands": {
"type": "array",
"description": "The command lines to execute",
"items": {
"type": "string"
}
},
"wait_for_network": {
"type": "boolean",
"description": "Wait for the network to be up before executing",
"default": false
}
}
}
}

View file

@ -1,25 +1,25 @@
{
"summary": "Fix paths in /boot/loader/entries",
"description": [
"Fixes paths in /boot/loader/entries that have incorrect paths for /boot.",
"This happens because some boot loader config tools (e.g. grub2-mkrelpath)",
"examine /proc/self/mountinfo to find the \"real\" path to /boot, and find the",
"path to the osbuild tree - which won't be valid at boot time for this image.",
"The paths in the Bootloader Specification are relative to the partition",
"they are located on, i.e. `/boot/loader/...` if `/boot` is on the root",
"file-system partition. If `/boot` is on a separate partition, the correct",
"path would be `/loader/.../` The `prefix` can be used to adjust for that.",
"By default it is `/boot`, i.e. assumes `/boot` is on the root file-system.",
"This stage reads and (re)writes all .conf files in /boot/loader/entries."
],
"schema": {
"additionalProperties": false,
"properties": {
"prefix": {
"description": "Prefix to use, normally `/boot`",
"type": "string",
"default": "/boot"
}
}
"summary": "Fix paths in /boot/loader/entries",
"description": [
"Fixes paths in /boot/loader/entries that have incorrect paths for /boot.",
"This happens because some boot loader config tools (e.g. grub2-mkrelpath)",
"examine /proc/self/mountinfo to find the \"real\" path to /boot, and find the",
"path to the osbuild tree - which won't be valid at boot time for this image.",
"The paths in the Bootloader Specification are relative to the partition",
"they are located on, i.e. `/boot/loader/...` if `/boot` is on the root",
"file-system partition. If `/boot` is on a separate partition, the correct",
"path would be `/loader/.../` The `prefix` can be used to adjust for that.",
"By default it is `/boot`, i.e. assumes `/boot` is on the root file-system.",
"This stage reads and (re)writes all .conf files in /boot/loader/entries."
],
"schema": {
"additionalProperties": false,
"properties": {
"prefix": {
"description": "Prefix to use, normally `/boot`",
"type": "string",
"default": "/boot"
}
}
}
}

View file

@ -1,169 +1,169 @@
{
"summary": "Create /etc/fstab entries for filesystems",
"description": [
"Each filesystem item must have at least the fs_spec, i.e `uuid`,",
"`label`, `partlabel` or `device` and a `path` (mount point).",
"This stage replaces /etc/fstab, removing any existing entries.",
"NB: The ostree configuration options are experimental and might",
"be replaced with a different mechanism in the near future."
"summary": "Create /etc/fstab entries for filesystems",
"description": [
"Each filesystem item must have at least the fs_spec, i.e `uuid`,",
"`label`, `partlabel` or `device` and a `path` (mount point).",
"This stage replaces /etc/fstab, removing any existing entries.",
"NB: The ostree configuration options are experimental and might",
"be replaced with a different mechanism in the near future."
],
"schema": {
"additionalProperties": false,
"required": [
"filesystems"
],
"schema": {
"properties": {
"ostree": {
"type": "object",
"additionalProperties": false,
"required": [
"filesystems"
"deployment"
],
"properties": {
"ostree": {
"type": "object",
"additionalProperties": false,
"required": [
"deployment"
],
"deployment": {
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"properties": {
"deployment": {
"type": "object",
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
}
},
"filesystems": {
"type": "array",
"description": "array of filesystem objects",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"device",
"path"
]
},
{
"required": [
"uuid",
"path"
]
},
{
"required": [
"label",
"path"
]
},
{
"required": [
"partlabel",
"path"
]
}
],
"properties": {
"device": {
"description": "Device node",
"type": "string"
},
"uuid": {
"description": "Filesystem UUID",
"type": "string"
},
"label": {
"description": "Filesystem label",
"type": "string"
},
"partlabel": {
"description": "Partition label.",
"type": "string"
},
"path": {
"description": "Filesystem mountpoint",
"type": "string"
},
"vfs_type": {
"description": "Filesystem type",
"type": "string",
"default": "none"
},
"options": {
"description": "Filesystem options (comma-separated)",
"type": "string",
"default": "defaults"
},
"freq": {
"description": "dump(8) period in days",
"type": "number",
"default": 0
},
"passno": {
"description": "pass number on parallel fsck(8)",
"type": "number",
"default": 0
}
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
}
},
"filesystems": {
"type": "array",
"description": "array of filesystem objects",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"device",
"path"
]
},
{
"required": [
"uuid",
"path"
]
},
{
"required": [
"label",
"path"
]
},
{
"required": [
"partlabel",
"path"
]
}
],
"properties": {
"device": {
"description": "Device node",
"type": "string"
},
"uuid": {
"description": "Filesystem UUID",
"type": "string"
},
"label": {
"description": "Filesystem label",
"type": "string"
},
"partlabel": {
"description": "Partition label.",
"type": "string"
},
"path": {
"description": "Filesystem mountpoint",
"type": "string"
},
"vfs_type": {
"description": "Filesystem type",
"type": "string",
"default": "none"
},
"options": {
"description": "Filesystem options (comma-separated)",
"type": "string",
"default": "defaults"
},
"freq": {
"description": "dump(8) period in days",
"type": "number",
"default": 0
},
"passno": {
"description": "pass number on parallel fsck(8)",
"type": "number",
"default": 0
}
}
}
}
}
}
}

View file

@ -1,213 +1,213 @@
{
"summary": "Create or modify the GCP guest-agent config",
"description": [
"Create or modify the GCP guest-agent config, depending on the",
"scope either at:",
" /etc/default/instance_configs.cfg.distro or",
" /etc/default/instance_configs.cfg",
"Configuration sections and options may contain any of these values:",
"https://github.com/GoogleCloudPlatform/guest-agent#configuration"
],
"schema": {
"definitions": {
"Accounts": {
"type": "object",
"additionalProperties": false,
"description": "Accounts section.",
"minProperties": 1,
"properties": {
"deprovision_remove": {
"type": "boolean",
"description": "Makes deprovisioning a user destructive."
},
"groups": {
"type": "array",
"description": "List of groups for newly provisioned users."
},
"useradd_cmd": {
"type": "string",
"description": "Command string to create a new user."
},
"userdel_cmd": {
"type": "string",
"description": "Command string to delete a user."
},
"usermod_cmd": {
"type": "string",
"description": "Command string to modify a user's groups."
},
"gpasswd_add_cmd": {
"type": "string",
"description": "Command string to add a user to a group."
},
"gpasswd_remove_cmd": {
"type": "string",
"description": "Command string to remove a user from a group."
},
"groupadd_cmd": {
"type": "string",
"description": "Command string to create a new group."
}
}
},
"Daemons": {
"type": "object",
"additionalProperties": false,
"description": "Daemons section.",
"minProperties": 1,
"properties": {
"accounts_daemon": {
"type": "boolean",
"description": "Disables the accounts daemon."
},
"clock_skew_daemon": {
"type": "boolean",
"description": "Disables the clock skew daemon."
},
"network_daemon": {
"type": "boolean",
"description": "Disables the network daemon."
}
}
},
"InstanceSetup": {
"type": "object",
"additionalProperties": false,
"description": "InstanceSetup section.",
"minProperties": 1,
"properties": {
"host_key_types": {
"type": "array",
"description": "List of host key types to generate."
},
"optimize_local_ssd": {
"type": "boolean",
"description": "Prevents optimizing for local SSD."
},
"network_enabled": {
"type": "boolean",
"description": "Skips instance setup functions that require metadata."
},
"set_boto_config": {
"type": "boolean",
"description": "Skip setting up a boto config."
},
"set_host_keys": {
"type": "boolean",
"description": "Skips generating host keys on first boot."
},
"set_multiqueue": {
"type": "boolean",
"description": "Skips multiqueue driver support."
}
}
},
"IpForwarding": {
"type": "object",
"additionalProperties": false,
"description": "IpForwarding section.",
"minProperties": 1,
"properties": {
"ethernet_proto_id": {
"type": "string",
"description": "Protocol ID string for daemon added routes."
},
"ip_aliases": {
"type": "boolean",
"description": "Disables setting up alias IP routes."
},
"target_instance_ips": {
"type": "boolean",
"description": "Disables internal IP address load balancing."
}
}
},
"MetadataScripts": {
"type": "object",
"additionalProperties": false,
"description": "MetadataScripts section.",
"minProperties": 1,
"properties": {
"default_shell": {
"type": "string",
"description": "String with the default shell to execute scripts."
},
"run_dir": {
"type": "string",
"description": "String base directory where metadata scripts are executed."
},
"startup": {
"type": "boolean",
"description": "Disables startup script execution."
},
"shutdown": {
"type": "boolean",
"description": "Disables shutdown script execution."
}
}
},
"NetworkInterfaces": {
"type": "object",
"additionalProperties": false,
"description": "NetworkInterfaces section.",
"minProperties": 1,
"properties": {
"setup": {
"type": "boolean",
"description": "Skips network interface setup."
},
"ip_forwarding": {
"type": "boolean",
"description": "Skips IP forwarding."
},
"dhcp_command": {
"type": "string",
"description": "Path for alternate dhcp executable used to enable network interfaces."
}
}
}
},
"summary": "Create or modify the GCP guest-agent config",
"description": [
"Create or modify the GCP guest-agent config, depending on the",
"scope either at:",
" /etc/default/instance_configs.cfg.distro or",
" /etc/default/instance_configs.cfg",
"Configuration sections and options may contain any of these values:",
"https://github.com/GoogleCloudPlatform/guest-agent#configuration"
],
"schema": {
"definitions": {
"Accounts": {
"type": "object",
"additionalProperties": false,
"required": [
"config"
],
"description": "Configure GCP guest-agent.",
"description": "Accounts section.",
"minProperties": 1,
"properties": {
"config_scope": {
"type": "string",
"description": "Create distro-wide or instance-specific configuration.",
"enum": [
"distro",
"instance"
],
"default": "distro"
},
"config": {
"type": "object",
"additionalProperties": false,
"description": "GCP guest-agent configuration.",
"minProperties": 1,
"properties": {
"Accounts": {
"$ref": "#/definitions/Accounts"
},
"Daemons": {
"$ref": "#/definitions/Daemons"
},
"InstanceSetup": {
"$ref": "#/definitions/InstanceSetup"
},
"IpForwarding": {
"$ref": "#/definitions/IpForwarding"
},
"MetadataScripts": {
"$ref": "#/definitions/MetadataScripts"
},
"NetworkInterfaces": {
"$ref": "#/definitions/NetworkInterfaces"
}
}
}
"deprovision_remove": {
"type": "boolean",
"description": "Makes deprovisioning a user destructive."
},
"groups": {
"type": "array",
"description": "List of groups for newly provisioned users."
},
"useradd_cmd": {
"type": "string",
"description": "Command string to create a new user."
},
"userdel_cmd": {
"type": "string",
"description": "Command string to delete a user."
},
"usermod_cmd": {
"type": "string",
"description": "Command string to modify a user's groups."
},
"gpasswd_add_cmd": {
"type": "string",
"description": "Command string to add a user to a group."
},
"gpasswd_remove_cmd": {
"type": "string",
"description": "Command string to remove a user from a group."
},
"groupadd_cmd": {
"type": "string",
"description": "Command string to create a new group."
}
}
},
"Daemons": {
"type": "object",
"additionalProperties": false,
"description": "Daemons section.",
"minProperties": 1,
"properties": {
"accounts_daemon": {
"type": "boolean",
"description": "Disables the accounts daemon."
},
"clock_skew_daemon": {
"type": "boolean",
"description": "Disables the clock skew daemon."
},
"network_daemon": {
"type": "boolean",
"description": "Disables the network daemon."
}
}
},
"InstanceSetup": {
"type": "object",
"additionalProperties": false,
"description": "InstanceSetup section.",
"minProperties": 1,
"properties": {
"host_key_types": {
"type": "array",
"description": "List of host key types to generate."
},
"optimize_local_ssd": {
"type": "boolean",
"description": "Prevents optimizing for local SSD."
},
"network_enabled": {
"type": "boolean",
"description": "Skips instance setup functions that require metadata."
},
"set_boto_config": {
"type": "boolean",
"description": "Skip setting up a boto config."
},
"set_host_keys": {
"type": "boolean",
"description": "Skips generating host keys on first boot."
},
"set_multiqueue": {
"type": "boolean",
"description": "Skips multiqueue driver support."
}
}
},
"IpForwarding": {
"type": "object",
"additionalProperties": false,
"description": "IpForwarding section.",
"minProperties": 1,
"properties": {
"ethernet_proto_id": {
"type": "string",
"description": "Protocol ID string for daemon added routes."
},
"ip_aliases": {
"type": "boolean",
"description": "Disables setting up alias IP routes."
},
"target_instance_ips": {
"type": "boolean",
"description": "Disables internal IP address load balancing."
}
}
},
"MetadataScripts": {
"type": "object",
"additionalProperties": false,
"description": "MetadataScripts section.",
"minProperties": 1,
"properties": {
"default_shell": {
"type": "string",
"description": "String with the default shell to execute scripts."
},
"run_dir": {
"type": "string",
"description": "String base directory where metadata scripts are executed."
},
"startup": {
"type": "boolean",
"description": "Disables startup script execution."
},
"shutdown": {
"type": "boolean",
"description": "Disables shutdown script execution."
}
}
},
"NetworkInterfaces": {
"type": "object",
"additionalProperties": false,
"description": "NetworkInterfaces section.",
"minProperties": 1,
"properties": {
"setup": {
"type": "boolean",
"description": "Skips network interface setup."
},
"ip_forwarding": {
"type": "boolean",
"description": "Skips IP forwarding."
},
"dhcp_command": {
"type": "string",
"description": "Path for alternate dhcp executable used to enable network interfaces."
}
}
}
},
"additionalProperties": false,
"required": [
"config"
],
"description": "Configure GCP guest-agent.",
"properties": {
"config_scope": {
"type": "string",
"description": "Create distro-wide or instance-specific configuration.",
"enum": [
"distro",
"instance"
],
"default": "distro"
},
"config": {
"type": "object",
"additionalProperties": false,
"description": "GCP guest-agent configuration.",
"minProperties": 1,
"properties": {
"Accounts": {
"$ref": "#/definitions/Accounts"
},
"Daemons": {
"$ref": "#/definitions/Daemons"
},
"InstanceSetup": {
"$ref": "#/definitions/InstanceSetup"
},
"IpForwarding": {
"$ref": "#/definitions/IpForwarding"
},
"MetadataScripts": {
"$ref": "#/definitions/MetadataScripts"
},
"NetworkInterfaces": {
"$ref": "#/definitions/NetworkInterfaces"
}
}
}
}
}
}

View file

@ -1,27 +1,27 @@
{
"summary": "Configure greenboot",
"description": [
"Update configuration of greenboot in /etc/greenboot/greenbot.conf."
"summary": "Configure greenboot",
"description": [
"Update configuration of greenboot in /etc/greenboot/greenbot.conf."
],
"schema": {
"additionalProperties": false,
"required": [
"config"
],
"schema": {
"properties": {
"config": {
"additionalProperties": false,
"required": [
"config"
],
"description": "greenboot config options",
"type": "object",
"properties": {
"config": {
"additionalProperties": false,
"description": "greenboot config options",
"type": "object",
"properties": {
"monitor_services": {
"type": "array",
"items": {
"type": "string"
}
}
}
"monitor_services": {
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}
}

View file

@ -1,30 +1,30 @@
{
"summary": "Create group accounts",
"description": [
"Create group accounts, optionally assigning them static GIDs.",
"Runs `groupadd` from the buildhost to create the groups listed in `groups`.",
"If no `gid` is given, `groupadd` will choose one.",
"If the specified group name or GID is already in use, this stage will fail."
],
"schema": {
"summary": "Create group accounts",
"description": [
"Create group accounts, optionally assigning them static GIDs.",
"Runs `groupadd` from the buildhost to create the groups listed in `groups`.",
"If no `gid` is given, `groupadd` will choose one.",
"If the specified group name or GID is already in use, this stage will fail."
],
"schema": {
"additionalProperties": false,
"properties": {
"groups": {
"type": "object",
"additionalProperties": false,
"properties": {
"groups": {
"type": "object",
"additionalProperties": false,
"description": "Keys are group names, values are objects with group info",
"patternProperties": {
"^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$": {
"type": "object",
"properties": {
"gid": {
"type": "number",
"description": "GID for this group"
}
}
}
}
"description": "Keys are group names, values are objects with group info",
"patternProperties": {
"^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$": {
"type": "object",
"properties": {
"gid": {
"type": "number",
"description": "GID for this group"
}
}
}
}
}
}
}
}

View file

@ -1,151 +1,151 @@
{
"summary": "Install the grub2 boot loader for non-UEFI systems or hybrid boot",
"description": [
"This stage can be used to generate a grub2 core image and install",
"it to the correct location to enable booting of non-UEFI systems,",
"i.e. x86 legacy and PPC64LE (Open Firmware).",
"On x86, the core image can be installed into the MBR gap or to a",
"dedicated BIOS boot partition when the partition label is GTP. On",
"ppc64le with Open Firmware a dedicated 'PrEP partition' is used.",
"x86 / MBR gap:",
" For historic and performance reasons the first partition",
" is aligned to a specific sector number (used to be 64,",
" now it is 2048), which leaves a gap between it and the MBR,",
" where the core image can be embedded in",
"x86 / BIOS boot:",
" A dedicated partition with a specific GUID[1] is used.",
"ppc64le / Open Firmware:",
" A dedicated partition with a specified GUID[2] is used.",
" On ppc64le with Open Firmware a special partition called",
" 'PrEP partition' is used the store the grub2 core; the",
" firmware looks for this partition and directly loads and",
" executes the core form it.",
"On x86, a \"boot image\", aka grub stage 1, is installed into the",
"master boot record (MBR) of the partition (even in the case the",
"partition layout is GPT). It main purpose is to load the second",
"stage (core image). Therefore the location of the core image is",
"patched into the boot image.",
"On ppc64le, the firmware itself directly loads the complete core",
"image and transfers control to it.",
"[1] 21686148-6449-6E6F-744E-656564454649",
"[2] 9E1A2D38-C612-4316-AA26-8B49521E5A8B"
],
"schema": {
"definitions": {
"core-mkimage": {
"type": "object",
"description": "Generate the core image via grub-mkimage",
"additionalProperties": false,
"required": [
"type",
"partlabel",
"filesystem"
],
"properties": {
"type": {
"enum": [
"mkimage"
]
},
"partlabel": {
"type": "string",
"enum": [
"gpt",
"dos"
]
},
"filesystem": {
"type": "string",
"enum": [
"ext4",
"xfs",
"btrfs"
]
},
"binary": {
"description": "grub-mkimage binary name",
"type": "string",
"default": "grub2-mkimage"
}
}
},
"prefix-partition": {
"type": "object",
"description": "Grub2 config on a specific partition, e.g. (,gpt3)/boot",
"additionalProperties": false,
"required": [
"type",
"partlabel",
"number",
"path"
],
"properties": {
"type": {
"enum": [
"partition"
]
},
"partlabel": {
"type": "string",
"enum": [
"gpt",
"dos"
]
},
"number": {
"description": "The partition number, starting at zero",
"type": "number"
},
"path": {
"description": "location of grub config inside the partition",
"type": "string",
"pattern": "/.*"
}
}
}
},
"summary": "Install the grub2 boot loader for non-UEFI systems or hybrid boot",
"description": [
"This stage can be used to generate a grub2 core image and install",
"it to the correct location to enable booting of non-UEFI systems,",
"i.e. x86 legacy and PPC64LE (Open Firmware).",
"On x86, the core image can be installed into the MBR gap or to a",
"dedicated BIOS boot partition when the partition label is GTP. On",
"ppc64le with Open Firmware a dedicated 'PrEP partition' is used.",
"x86 / MBR gap:",
" For historic and performance reasons the first partition",
" is aligned to a specific sector number (used to be 64,",
" now it is 2048), which leaves a gap between it and the MBR,",
" where the core image can be embedded in",
"x86 / BIOS boot:",
" A dedicated partition with a specific GUID[1] is used.",
"ppc64le / Open Firmware:",
" A dedicated partition with a specified GUID[2] is used.",
" On ppc64le with Open Firmware a special partition called",
" 'PrEP partition' is used the store the grub2 core; the",
" firmware looks for this partition and directly loads and",
" executes the core form it.",
"On x86, a \"boot image\", aka grub stage 1, is installed into the",
"master boot record (MBR) of the partition (even in the case the",
"partition layout is GPT). It main purpose is to load the second",
"stage (core image). Therefore the location of the core image is",
"patched into the boot image.",
"On ppc64le, the firmware itself directly loads the complete core",
"image and transfers control to it.",
"[1] 21686148-6449-6E6F-744E-656564454649",
"[2] 9E1A2D38-C612-4316-AA26-8B49521E5A8B"
],
"schema": {
"definitions": {
"core-mkimage": {
"type": "object",
"description": "Generate the core image via grub-mkimage",
"additionalProperties": false,
"required": [
"filename",
"platform",
"location",
"core",
"prefix"
"type",
"partlabel",
"filesystem"
],
"properties": {
"filename": {
"type": "string",
"description": "filename of the disk image"
},
"platform": {
"type": "string",
"description": "Platform of the target system"
},
"location": {
"type": "integer",
"description": "Location of the stage 2 (in sectors)"
},
"core": {
"description": "How to obtain the GRUB core image",
"oneOf": [
{
"$ref": "#/definitions/core-mkimage"
}
]
},
"prefix": {
"description": "location of grub config",
"oneOf": [
{
"$ref": "#/definitions/prefix-partition"
}
]
},
"sector-size": {
"type": "number",
"description": "Sector size (in bytes)",
"default": 512
}
"type": {
"enum": [
"mkimage"
]
},
"partlabel": {
"type": "string",
"enum": [
"gpt",
"dos"
]
},
"filesystem": {
"type": "string",
"enum": [
"ext4",
"xfs",
"btrfs"
]
},
"binary": {
"description": "grub-mkimage binary name",
"type": "string",
"default": "grub2-mkimage"
}
}
},
"prefix-partition": {
"type": "object",
"description": "Grub2 config on a specific partition, e.g. (,gpt3)/boot",
"additionalProperties": false,
"required": [
"type",
"partlabel",
"number",
"path"
],
"properties": {
"type": {
"enum": [
"partition"
]
},
"partlabel": {
"type": "string",
"enum": [
"gpt",
"dos"
]
},
"number": {
"description": "The partition number, starting at zero",
"type": "number"
},
"path": {
"description": "location of grub config inside the partition",
"type": "string",
"pattern": "/.*"
}
}
}
},
"additionalProperties": false,
"required": [
"filename",
"platform",
"location",
"core",
"prefix"
],
"properties": {
"filename": {
"type": "string",
"description": "filename of the disk image"
},
"platform": {
"type": "string",
"description": "Platform of the target system"
},
"location": {
"type": "integer",
"description": "Location of the stage 2 (in sectors)"
},
"core": {
"description": "How to obtain the GRUB core image",
"oneOf": [
{
"$ref": "#/definitions/core-mkimage"
}
]
},
"prefix": {
"description": "location of grub config",
"oneOf": [
{
"$ref": "#/definitions/prefix-partition"
}
]
},
"sector-size": {
"type": "number",
"description": "Sector size (in bytes)",
"default": 512
}
}
}
}

View file

@ -1,75 +1,75 @@
{
"summary": "Create a boot filesystem tree, can be consumed to create\nan efiboot.img.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel",
"isolabel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"type": "object",
"required": [
"dir"
],
"properties": {
"dir": {
"type": "string"
},
"opts": {
"description": "Array of group names for this user",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"isolabel": {
"type": "string"
},
"architectures": {
"type": "array",
"items": {
"type": "string"
}
},
"vendor": {
"type": "string"
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 60
}
}
}
"summary": "Create a boot filesystem tree, can be consumed to create\nan efiboot.img.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel",
"isolabel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"type": "object",
"required": [
"dir"
],
"properties": {
"dir": {
"type": "string"
},
"opts": {
"description": "Array of group names for this user",
"type": "array",
"items": {
"type": "string"
}
}
}
},
"isolabel": {
"type": "string"
},
"architectures": {
"type": "array",
"items": {
"type": "string"
}
},
"vendor": {
"type": "string"
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 60
}
}
}
}
}
}
}

View file

@ -1,261 +1,261 @@
{
"summary": "Configure GRUB2 bootloader and set boot options (legacy, i.e. non-BLS)",
"description": [
"This stage creates traditional menu entries for systems that are not",
"capable of using the Booloader Specific (BLS).",
"Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via",
" - uuid (`{\"uuid\": \"<uuid>\"}`)",
" - label (`{\"label\": \"<label>\"}`)",
" - device (`{\"device\": \"<device>\"}`, only for the root file system)",
"The kernel boot argument will be composed of the root file system id",
"and additional options specified in `config.cmdline`, if any.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`;",
"leading directories will be created if not present.",
"The stage supports configuring grub for BIOS boot and UEFI systems:",
"If BIOS boot support is requested via `bios` this stage will also",
"overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file",
"NB: with bios support enabled, this stage will fail if the buildhost",
"doesn't have `/usr/lib/grub/$platform/` and `/usr/share/grub/unicode.pf2`.",
"If UEFI support is enabled via `uefi: {\"vendor\": \"<vendor>\"}` this stage will",
"also write the `grub.cfg` to `boot/efi/EFI/<vendor>/grub.cfg`. EFI binaries",
"and accompanying data can be installed from the built root via `uefi.install`.",
"Both UEFI and Legacy can be specified at the same time (hybrid boot)."
],
"schema": {
"definitions": {
"filesystem": {
"description": "Description of how to locate a file system",
"type": "object",
"oneOf": [
{
"required": [
"uuid"
]
},
{
"required": [
"label"
]
},
{
"required": [
"device"
]
}
],
"properties": {
"device": {
"description": "Identify the file system by device node",
"type": "string"
},
"label": {
"description": "Identify the file system by label",
"type": "string"
},
"uuid": {
"description": "Identify the file system by UUID",
"type": "string",
"oneOf": [
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
}
}
},
"terminal": {
"description": "Terminal device",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"rootfs",
"entries"
],
"anyOf": [
{
"required": [
"bios"
]
},
{
"required": [
"uefi"
]
}
"summary": "Configure GRUB2 bootloader and set boot options (legacy, i.e. non-BLS)",
"description": [
"This stage creates traditional menu entries for systems that are not",
"capable of using the Booloader Specific (BLS).",
"Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via",
" - uuid (`{\"uuid\": \"<uuid>\"}`)",
" - label (`{\"label\": \"<label>\"}`)",
" - device (`{\"device\": \"<device>\"}`, only for the root file system)",
"The kernel boot argument will be composed of the root file system id",
"and additional options specified in `config.cmdline`, if any.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`;",
"leading directories will be created if not present.",
"The stage supports configuring grub for BIOS boot and UEFI systems:",
"If BIOS boot support is requested via `bios` this stage will also",
"overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file",
"NB: with bios support enabled, this stage will fail if the buildhost",
"doesn't have `/usr/lib/grub/$platform/` and `/usr/share/grub/unicode.pf2`.",
"If UEFI support is enabled via `uefi: {\"vendor\": \"<vendor>\"}` this stage will",
"also write the `grub.cfg` to `boot/efi/EFI/<vendor>/grub.cfg`. EFI binaries",
"and accompanying data can be installed from the built root via `uefi.install`.",
"Both UEFI and Legacy can be specified at the same time (hybrid boot)."
],
"schema": {
"definitions": {
"filesystem": {
"description": "Description of how to locate a file system",
"type": "object",
"oneOf": [
{
"required": [
"uuid"
]
},
{
"required": [
"label"
]
},
{
"required": [
"device"
]
}
],
"properties": {
"rootfs": {
"$ref": "#/definitions/filesystem"
},
"bootfs": {
"$ref": "#/definitions/filesystem"
},
"bios": {
"description": "Include bios boot support",
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"type": "string",
"enum": [
"i386-pc",
"powerpc-ieee1275"
]
}
}
},
"uefi": {
"description": "Include UEFI boot support",
"type": "object",
"required": [
"vendor"
],
"properties": {
"vendor": {
"type": "string",
"description": "The vendor of the UEFI binaries (this is us)",
"examples": [
"fedora"
],
"pattern": "^(.+)$"
},
"install": {
"description": "Install EFI binaries and data from the build root",
"type": "boolean",
"default": false
}
}
},
"write_defaults": {
"description": "Whether to write /etc/defaults/grub",
"type": "boolean",
"default": true
},
"entries": {
"description": "List of entries to add to the boot menu",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"product",
"kernel"
],
"properties": {
"default": {
"type": "boolean",
"description": "Make this entry the default entry"
},
"id": {
"description": "UUID for the entry (grub uses the root fs uuid)",
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"nick": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"description": "The kernel (EVRA)",
"type": "string"
}
}
}
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"cmdline": {
"description": "Additional kernel command line options",
"type": "string"
},
"default": {
"description": "Default boot entry",
"type": "string",
"default": "saved"
},
"disable_recovery": {
"type": "boolean",
"default": true
},
"disable_submenu": {
"type": "boolean",
"default": true
},
"distributor": {
"description": "Name of the distributor",
"type": "string"
},
"terminal": {
"$ref": "#/definitions/terminal"
},
"terminal_input": {
"$ref": "#/definitions/terminal"
},
"terminal_output": {
"$ref": "#/definitions/terminal"
},
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 0
},
"timeout_style": {
"type": "string",
"enum": [
"hidden",
"menu",
"countdown"
],
"default": "countdown"
},
"serial": {
"description": "The command to configure the serial console",
"type": "string"
}
}
}
"device": {
"description": "Identify the file system by device node",
"type": "string"
},
"label": {
"description": "Identify the file system by label",
"type": "string"
},
"uuid": {
"description": "Identify the file system by UUID",
"type": "string",
"oneOf": [
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
}
}
},
"terminal": {
"description": "Terminal device",
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false,
"required": [
"rootfs",
"entries"
],
"anyOf": [
{
"required": [
"bios"
]
},
{
"required": [
"uefi"
]
}
],
"properties": {
"rootfs": {
"$ref": "#/definitions/filesystem"
},
"bootfs": {
"$ref": "#/definitions/filesystem"
},
"bios": {
"description": "Include bios boot support",
"type": "object",
"required": [
"platform"
],
"properties": {
"platform": {
"type": "string",
"enum": [
"i386-pc",
"powerpc-ieee1275"
]
}
}
},
"uefi": {
"description": "Include UEFI boot support",
"type": "object",
"required": [
"vendor"
],
"properties": {
"vendor": {
"type": "string",
"description": "The vendor of the UEFI binaries (this is us)",
"examples": [
"fedora"
],
"pattern": "^(.+)$"
},
"install": {
"description": "Install EFI binaries and data from the build root",
"type": "boolean",
"default": false
}
}
},
"write_defaults": {
"description": "Whether to write /etc/defaults/grub",
"type": "boolean",
"default": true
},
"entries": {
"description": "List of entries to add to the boot menu",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"id",
"product",
"kernel"
],
"properties": {
"default": {
"type": "boolean",
"description": "Make this entry the default entry"
},
"id": {
"description": "UUID for the entry (grub uses the root fs uuid)",
"type": "string"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"nick": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"description": "The kernel (EVRA)",
"type": "string"
}
}
}
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"cmdline": {
"description": "Additional kernel command line options",
"type": "string"
},
"default": {
"description": "Default boot entry",
"type": "string",
"default": "saved"
},
"disable_recovery": {
"type": "boolean",
"default": true
},
"disable_submenu": {
"type": "boolean",
"default": true
},
"distributor": {
"description": "Name of the distributor",
"type": "string"
},
"terminal": {
"$ref": "#/definitions/terminal"
},
"terminal_input": {
"$ref": "#/definitions/terminal"
},
"terminal_output": {
"$ref": "#/definitions/terminal"
},
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 0
},
"timeout_style": {
"type": "string",
"enum": [
"hidden",
"menu",
"countdown"
],
"default": "countdown"
},
"serial": {
"description": "The command to configure the serial console",
"type": "string"
}
}
}
}
}
}

View file

@ -1,266 +1,266 @@
{
"summary": "Configure GRUB2 bootloader and set boot options",
"description": [
"Configure the system to use GRUB2 as the bootloader, and set boot options.",
"Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via uuid (`{\"uuid\": \"<uuid>\"}`) or label",
"(`{\"label\": \"<label>\"}`). The kernel boot argument will be composed",
"of the root file system id and additional options specified in",
"`{kernel_opts}`, if any.",
"Configures GRUB2 to boot via the Boot Loader Specification",
"(https://systemd.io/BOOT_LOADER_SPECIFICATION), which is the default",
"behavior in Fedora 30 and later.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`, and",
"`/boot/grub2/grub.cfg`. (Leading directories will be created if not present.)",
"If Legacy boot support is requested via `legacy` this stage will also",
"overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file",
"The $platform variable (default: i386-pc) refers to target platform",
"that grub2 is mean to ran on (see grub-install(1)'s `--target`)",
"NB: with legacy support enabled, this stage will fail if the buildhost",
"doesn't have `/usr/lib/grub/$platform/` and `/usr/share/grub/unicode.pf2`.",
"If UEFI support is enabled via `uefi: {\"vendor\": \"<vendor>\"}` this stage will",
"also write the `grub.cfg` to `boot/efi/EFI/<vendor>/grub.cfg`. EFI binaries",
"and accompanying data can be installed from the built root via `uefi.install`.",
"Both UEFI and Legacy can be specified at the same time (hybrid boot).",
"If `uefi.unified` is specified or hybrid boot is enabled, the main grub config",
"will be written to `boot/grub2/grub.cfg` and a redirect config will be placed",
"in the EFI directory.",
"If the `saved_entry` option is present it will result in an entry in the",
"`grubenv` file of the same name. The grub config file contains logic so",
"that this variable will be used to select the next boot entry. This will",
"also make grub2-reboot and grub2-set-default tools work. It will also",
"prevent newly installed non-default kernels (like e.g. the debug kernel)",
"to be selected as default. The contents of variable needs to match the",
"corresponding loader entry, which currently is a combination of the",
"machine id and kernel NVRA, like e.g.:",
" `ffffffffffffffffffffffffffffffff-5.6.6-300.fc32.x86_64`",
"If `saved_entry` is set it is advisable to set `config.default` to",
"`saved` so that any re-creation of the grub configuration by the",
"user will preserve that functionality.",
"Support for \"greenboot\" can be turned on via the `greenboot` option.",
"Greenboot is the idea of automatically rolling back bad updates,",
"i.e. updates that do not boot successfully. The implementation",
"is split between the boot loader and a user space component.",
"The latter sets two variables `boot_counter`, which indicates",
"the maximum number of boot attempts and `boot_success` which",
"tells the boot laoder if a previous boot was successful. The",
"bootloader on the other hand will decrement the counter variable",
"and reset the success indicator one.",
"An implementation of the user space component for rpm-ostree is",
"called `greenboot`.",
"Support for ignition (https://github.com/coreos/ignition) can be turned",
"on via the `ignition` option. If enabled, a 'ignition_firstboot' variable",
"will be created, which is meant to be included in the kernel command line.",
"The grub.cfg will then contain the necessary code to detect and source",
"the '/boot/ignition.firstboot' file and configure said 'ignition_firstboot'",
"variable appropriately. See the 'org.osbuild.ignition' stage for more",
"information on that file."
"summary": "Configure GRUB2 bootloader and set boot options",
"description": [
"Configure the system to use GRUB2 as the bootloader, and set boot options.",
"Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via uuid (`{\"uuid\": \"<uuid>\"}`) or label",
"(`{\"label\": \"<label>\"}`). The kernel boot argument will be composed",
"of the root file system id and additional options specified in",
"`{kernel_opts}`, if any.",
"Configures GRUB2 to boot via the Boot Loader Specification",
"(https://systemd.io/BOOT_LOADER_SPECIFICATION), which is the default",
"behavior in Fedora 30 and later.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`, and",
"`/boot/grub2/grub.cfg`. (Leading directories will be created if not present.)",
"If Legacy boot support is requested via `legacy` this stage will also",
"overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file",
"The $platform variable (default: i386-pc) refers to target platform",
"that grub2 is mean to ran on (see grub-install(1)'s `--target`)",
"NB: with legacy support enabled, this stage will fail if the buildhost",
"doesn't have `/usr/lib/grub/$platform/` and `/usr/share/grub/unicode.pf2`.",
"If UEFI support is enabled via `uefi: {\"vendor\": \"<vendor>\"}` this stage will",
"also write the `grub.cfg` to `boot/efi/EFI/<vendor>/grub.cfg`. EFI binaries",
"and accompanying data can be installed from the built root via `uefi.install`.",
"Both UEFI and Legacy can be specified at the same time (hybrid boot).",
"If `uefi.unified` is specified or hybrid boot is enabled, the main grub config",
"will be written to `boot/grub2/grub.cfg` and a redirect config will be placed",
"in the EFI directory.",
"If the `saved_entry` option is present it will result in an entry in the",
"`grubenv` file of the same name. The grub config file contains logic so",
"that this variable will be used to select the next boot entry. This will",
"also make grub2-reboot and grub2-set-default tools work. It will also",
"prevent newly installed non-default kernels (like e.g. the debug kernel)",
"to be selected as default. The contents of variable needs to match the",
"corresponding loader entry, which currently is a combination of the",
"machine id and kernel NVRA, like e.g.:",
" `ffffffffffffffffffffffffffffffff-5.6.6-300.fc32.x86_64`",
"If `saved_entry` is set it is advisable to set `config.default` to",
"`saved` so that any re-creation of the grub configuration by the",
"user will preserve that functionality.",
"Support for \"greenboot\" can be turned on via the `greenboot` option.",
"Greenboot is the idea of automatically rolling back bad updates,",
"i.e. updates that do not boot successfully. The implementation",
"is split between the boot loader and a user space component.",
"The latter sets two variables `boot_counter`, which indicates",
"the maximum number of boot attempts and `boot_success` which",
"tells the boot laoder if a previous boot was successful. The",
"bootloader on the other hand will decrement the counter variable",
"and reset the success indicator one.",
"An implementation of the user space component for rpm-ostree is",
"called `greenboot`.",
"Support for ignition (https://github.com/coreos/ignition) can be turned",
"on via the `ignition` option. If enabled, a 'ignition_firstboot' variable",
"will be created, which is meant to be included in the kernel command line.",
"The grub.cfg will then contain the necessary code to detect and source",
"the '/boot/ignition.firstboot' file and configure said 'ignition_firstboot'",
"variable appropriately. See the 'org.osbuild.ignition' stage for more",
"information on that file."
],
"schema": {
"additionalProperties": false,
"oneOf": [
{
"required": [
"root_fs_uuid"
]
},
{
"required": [
"rootfs"
]
}
],
"schema": {
"additionalProperties": false,
"definitions": {
"uuid": {
"description": "Identify the file system by UUID",
"type": "string",
"oneOf": [
{
"required": [
"root_fs_uuid"
]
},
{
"required": [
"rootfs"
]
}
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
},
"filesystem": {
"description": "Description of how to locate a file system",
"type": "object",
"oneOf": [
{
"required": [
"uuid"
]
},
{
"required": [
"label"
]
}
],
"definitions": {
"uuid": {
"description": "Identify the file system by UUID",
"type": "string",
"oneOf": [
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
},
"filesystem": {
"description": "Description of how to locate a file system",
"type": "object",
"oneOf": [
{
"required": [
"uuid"
]
},
{
"required": [
"label"
]
}
],
"properties": {
"label": {
"description": "Identify the file system by label",
"type": "string"
},
"uuid": {
"$ref": "#/definitions/uuid"
}
}
},
"terminal": {
"description": "Terminal device",
"type": "array",
"items": {
"type": "string"
}
}
},
"properties": {
"rootfs": {
"$ref": "#/definitions/filesystem"
},
"bootfs": {
"$ref": "#/definitions/filesystem"
},
"root_fs_uuid": {
"$ref": "#/definitions/uuid"
},
"boot_fs_uuid": {
"$ref": "#/definitions/uuid"
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string",
"default": ""
},
"legacy": {
"description": "Include legacy boot support",
"oneOf": [
{
"type": "boolean",
"default": false
},
{
"type": "string"
}
]
},
"uefi": {
"description": "Include UEFI boot support",
"type": "object",
"required": [
"vendor"
],
"properties": {
"vendor": {
"type": "string",
"description": "The vendor of the UEFI binaries (this is us)",
"examples": [
"fedora"
],
"pattern": "^(.+)$"
},
"efi_src_dir": {
"type": "string",
"description": "The source path to use for the EFI/ binaries when installing is set to True",
"default": "/boot/efi/EFI"
},
"install": {
"description": "Install EFI binaries and data from the build root",
"type": "boolean",
"default": false
},
"unified": {
"description": "Main grub config in 'boot/grub2/grub.cfg'",
"type": "boolean",
"default": false
}
}
},
"saved_entry": {
"description": "Set the variable of the same name in `grubenv`.",
"type": "string"
},
"write_defaults": {
"description": "Whether to write /etc/defaults/grub",
"type": "boolean",
"default": true
},
"write_cmdline": {
"description": "Include the kernel command line in `grubenv`",
"type": "boolean",
"default": true
},
"ignition": {
"description": "Include ignition support in the grub.cfg",
"type": "boolean",
"default": false
},
"greenboot": {
"description": "Include support for fallback counting",
"type": "boolean",
"default": false
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"default": {
"description": "Default boot entry",
"type": "string"
},
"disable_recovery": {
"type": "boolean"
},
"disable_submenu": {
"type": "boolean"
},
"distributor": {
"description": "Name of the distributor",
"type": "string"
},
"terminal": {
"$ref": "#/definitions/terminal"
},
"terminal_input": {
"$ref": "#/definitions/terminal"
},
"terminal_output": {
"$ref": "#/definitions/terminal"
},
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 0
},
"timeout_style": {
"type": "string",
"enum": [
"hidden",
"menu",
"countdown"
]
},
"serial": {
"description": "The command to configure the serial console",
"type": "string"
}
}
}
"label": {
"description": "Identify the file system by label",
"type": "string"
},
"uuid": {
"$ref": "#/definitions/uuid"
}
}
},
"terminal": {
"description": "Terminal device",
"type": "array",
"items": {
"type": "string"
}
}
},
"properties": {
"rootfs": {
"$ref": "#/definitions/filesystem"
},
"bootfs": {
"$ref": "#/definitions/filesystem"
},
"root_fs_uuid": {
"$ref": "#/definitions/uuid"
},
"boot_fs_uuid": {
"$ref": "#/definitions/uuid"
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string",
"default": ""
},
"legacy": {
"description": "Include legacy boot support",
"oneOf": [
{
"type": "boolean",
"default": false
},
{
"type": "string"
}
]
},
"uefi": {
"description": "Include UEFI boot support",
"type": "object",
"required": [
"vendor"
],
"properties": {
"vendor": {
"type": "string",
"description": "The vendor of the UEFI binaries (this is us)",
"examples": [
"fedora"
],
"pattern": "^(.+)$"
},
"efi_src_dir": {
"type": "string",
"description": "The source path to use for the EFI/ binaries when installing is set to True",
"default": "/boot/efi/EFI"
},
"install": {
"description": "Install EFI binaries and data from the build root",
"type": "boolean",
"default": false
},
"unified": {
"description": "Main grub config in 'boot/grub2/grub.cfg'",
"type": "boolean",
"default": false
}
}
},
"saved_entry": {
"description": "Set the variable of the same name in `grubenv`.",
"type": "string"
},
"write_defaults": {
"description": "Whether to write /etc/defaults/grub",
"type": "boolean",
"default": true
},
"write_cmdline": {
"description": "Include the kernel command line in `grubenv`",
"type": "boolean",
"default": true
},
"ignition": {
"description": "Include ignition support in the grub.cfg",
"type": "boolean",
"default": false
},
"greenboot": {
"description": "Include support for fallback counting",
"type": "boolean",
"default": false
},
"config": {
"description": "Configuration options for grub itself",
"type": "object",
"additionalProperties": false,
"properties": {
"default": {
"description": "Default boot entry",
"type": "string"
},
"disable_recovery": {
"type": "boolean"
},
"disable_submenu": {
"type": "boolean"
},
"distributor": {
"description": "Name of the distributor",
"type": "string"
},
"terminal": {
"$ref": "#/definitions/terminal"
},
"terminal_input": {
"$ref": "#/definitions/terminal"
},
"terminal_output": {
"$ref": "#/definitions/terminal"
},
"timeout": {
"description": "Timeout in seconds",
"type": "integer",
"minimum": 0,
"default": 0
},
"timeout_style": {
"type": "string",
"enum": [
"hidden",
"menu",
"countdown"
]
},
"serial": {
"description": "The command to configure the serial console",
"type": "string"
}
}
}
}
}
}

View file

@ -1,33 +1,33 @@
{
"summary": "Extract a gzipped file",
"description": [
"Buildhost commands used: `gunzip`."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"file"
],
"properties": {
"file": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"description": "Unzip here.",
"type": "string"
}
}
"summary": "Extract a gzipped file",
"description": [
"Buildhost commands used: `gunzip`."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"file"
],
"properties": {
"file": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"description": "Unzip here.",
"type": "string"
}
}
}
}
}

View file

@ -1,40 +1,40 @@
{
"summary": "Compress a file using gzip",
"description": [
"Buildhost commands used: `gzip`."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"file"
],
"properties": {
"file": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename to use for the compressed file",
"type": "string"
},
"level": {
"description": "Compression level",
"type": "integer",
"minimum": 1,
"maximum": 9,
"default": 1
}
}
"summary": "Compress a file using gzip",
"description": [
"Buildhost commands used: `gzip`."
],
"schema_2": {
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"file"
],
"properties": {
"file": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Filename to use for the compressed file",
"type": "string"
},
"level": {
"description": "Compression level",
"type": "integer",
"minimum": 1,
"maximum": 9,
"default": 1
}
}
}
}
}

View file

@ -1,21 +1,21 @@
{
"summary": "Set system hostname",
"description": [
"Sets system hostname.",
"Deletes /etc/hostname if present, then runs `systemd-firstboot` from the",
"buildhost with `--hostname={hostname}`, which checks the validity of the",
"hostname and writes it to /etc/hostname."
"summary": "Set system hostname",
"description": [
"Sets system hostname.",
"Deletes /etc/hostname if present, then runs `systemd-firstboot` from the",
"buildhost with `--hostname={hostname}`, which checks the validity of the",
"hostname and writes it to /etc/hostname."
],
"schema": {
"additionalProperties": false,
"required": [
"hostname"
],
"schema": {
"additionalProperties": false,
"required": [
"hostname"
],
"properties": {
"hostname": {
"type": "string",
"description": "hostname for the target system"
}
}
"properties": {
"hostname": {
"type": "string",
"description": "hostname for the target system"
}
}
}
}

View file

@ -1,28 +1,28 @@
{
"summary": "Setup ignition so it will be triggered on first boot.",
"description": [
"Create the file '/boot/ignition.firstboot' that will be used by grub,",
"if the necessary ignition support is enabled, to create a variable to",
"be used in the kernel command line ('ignition_firstboot'). Via this",
"variable, if included in the actual kernel command line, the run of",
"ignition during early boot can be controlled: if grub detects the",
"aforementioned file to be present it will set 'ignition_firstboot'",
"to \"ignition.firstboot\" which is the trigger for ignition to run.",
"The \"ignition-firstboot-complete.service\" will remove said file and",
"thus preventing ignition to be run on the next boot.",
"The `network` option can be used to overwrite the default network",
"configuration, in case that ignition is run."
],
"schema": {
"additionalProperties": false,
"properties": {
"network": {
"type": "array",
"description": "Overwrite default network connection",
"items": {
"type": "string"
}
}
"summary": "Setup ignition so it will be triggered on first boot.",
"description": [
"Create the file '/boot/ignition.firstboot' that will be used by grub,",
"if the necessary ignition support is enabled, to create a variable to",
"be used in the kernel command line ('ignition_firstboot'). Via this",
"variable, if included in the actual kernel command line, the run of",
"ignition during early boot can be controlled: if grub detects the",
"aforementioned file to be present it will set 'ignition_firstboot'",
"to \"ignition.firstboot\" which is the trigger for ignition to run.",
"The \"ignition-firstboot-complete.service\" will remove said file and",
"thus preventing ignition to be run on the next boot.",
"The `network` option can be used to overwrite the default network",
"configuration, in case that ignition is run."
],
"schema": {
"additionalProperties": false,
"properties": {
"network": {
"type": "array",
"description": "Overwrite default network connection",
"items": {
"type": "string"
}
}
}
}
}

View file

@ -1,19 +1,19 @@
{
"summary": "Implant an MD5 checksum in an ISO9660 image",
"description": [
"This stage is using implantisomd5(1) to implant MD5 checksums into an iso",
"image. This is needed for the check media feature used in the installer."
"summary": "Implant an MD5 checksum in an ISO9660 image",
"description": [
"This stage is using implantisomd5(1) to implant MD5 checksums into an iso",
"image. This is needed for the check media feature used in the installer."
],
"schema": {
"additionalProperties": false,
"required": [
"filename"
],
"schema": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"type": "string",
"description": "Path to where the iso to implant md5s is located."
}
}
"properties": {
"filename": {
"type": "string",
"description": "Path to where the iso to implant md5s is located."
}
}
}
}

View file

@ -1,62 +1,62 @@
{
"summary": "Create an isolinux bootloader",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"kernel": {
"type": "object",
"required": [
"dir"
],
"properties": {
"dir": {
"type": "string"
},
"opts": {
"description": "Array of group names for this user",
"type": "array",
"items": {
"type": "string"
}
}
}
}
"summary": "Create an isolinux bootloader",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"product",
"kernel"
],
"properties": {
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"version"
],
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": true
}
"kernel": {
"type": "object",
"required": [
"dir"
],
"properties": {
"dir": {
"type": "string"
},
"opts": {
"description": "Array of group names for this user",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"data"
],
"properties": {
"data": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,42 +1,42 @@
{
"summary": "Add kernel command line parameters to a BLS [1] config either in\nthe tree or in a mount.",
"description": [
"[1] https://freedesktop.org/wiki/Specifications/BootLoaderSpec/"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"kernel_opts"
],
"properties": {
"kernel_opts": {
"description": "Additional kernel command line options",
"type": "array",
"items": {
"description": "A single kernel command line option",
"type": "string"
}
},
"bootpath": {
"type": "string",
"description": "The mounted location of the boot filesystem tree where the BLS entries will be under ./loader/entries/*.conf",
"pattern": "^(mount|tree):///",
"examples": [
"tree:///boot",
"mount:///",
"mount:///boot"
],
"default": "tree:///boot"
}
}
"summary": "Add kernel command line parameters to a BLS [1] config either in\nthe tree or in a mount.",
"description": [
"[1] https://freedesktop.org/wiki/Specifications/BootLoaderSpec/"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"kernel_opts"
],
"properties": {
"kernel_opts": {
"description": "Additional kernel command line options",
"type": "array",
"items": {
"description": "A single kernel command line option",
"type": "string"
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
"bootpath": {
"type": "string",
"description": "The mounted location of the boot filesystem tree where the BLS entries will be under ./loader/entries/*.conf",
"pattern": "^(mount|tree):///",
"examples": [
"tree:///boot",
"mount:///",
"mount:///boot"
],
"default": "tree:///boot"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,36 +1,36 @@
{
"summary": "Configure the kernel command-line parameters",
"description": [
"Configures the kernel boot parameters, also known as the kernel",
"command line.",
"https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html"
],
"schema": {
"additionalProperties": false,
"properties": {
"root_fs_uuid": {
"description": "UUID of the root filesystem image",
"type": "string",
"oneOf": [
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string",
"default": ""
}
}
"summary": "Configure the kernel command-line parameters",
"description": [
"Configures the kernel boot parameters, also known as the kernel",
"command line.",
"https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html"
],
"schema": {
"additionalProperties": false,
"properties": {
"root_fs_uuid": {
"description": "UUID of the root filesystem image",
"type": "string",
"oneOf": [
{
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d"
]
},
{
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [
"6699-AFB5"
]
}
]
},
"kernel_opts": {
"description": "Additional kernel boot options",
"type": "string",
"default": ""
}
}
}
}
}

View file

@ -1,51 +1,51 @@
{
"summary": "Set image's default keymap for vconsole and X11 keyboard.",
"description": [
"The 'keymap' option sets the default console keyboard layout for vconsole.",
"Its value is a keymap, such as 'us' or 'de-latin1'.",
"Removes any existing /etc/vconsole.conf, then runs `systemd-firstboot` with the",
"`--keymap` option, which sets KEYMAP in /etc/vconsole.conf. If `font` is given",
"will additionally set the FONT attribute.",
"The 'x11-keymap' option configures the X11 keyboard settings. The value of",
"the option is a dictionary with keys representing settings which can be",
"configured. Currently, only the 'layouts' setting can be configured. Its value",
"is a list of strings, representing the specific layouts, which should",
"be configured for the X11 keyboard.",
"Valid keymaps are generally found in /lib/kbd/keymaps."
"summary": "Set image's default keymap for vconsole and X11 keyboard.",
"description": [
"The 'keymap' option sets the default console keyboard layout for vconsole.",
"Its value is a keymap, such as 'us' or 'de-latin1'.",
"Removes any existing /etc/vconsole.conf, then runs `systemd-firstboot` with the",
"`--keymap` option, which sets KEYMAP in /etc/vconsole.conf. If `font` is given",
"will additionally set the FONT attribute.",
"The 'x11-keymap' option configures the X11 keyboard settings. The value of",
"the option is a dictionary with keys representing settings which can be",
"configured. Currently, only the 'layouts' setting can be configured. Its value",
"is a list of strings, representing the specific layouts, which should",
"be configured for the X11 keyboard.",
"Valid keymaps are generally found in /lib/kbd/keymaps."
],
"schema": {
"additionalProperties": false,
"required": [
"keymap"
],
"schema": {
"properties": {
"keymap": {
"type": "string",
"description": "Name of keymap to use for vconsole."
},
"x11-keymap": {
"additionalProperties": false,
"type": "object",
"description": "Configure X11 keyboard.",
"required": [
"keymap"
"layouts"
],
"properties": {
"keymap": {
"type": "string",
"description": "Name of keymap to use for vconsole."
},
"x11-keymap": {
"additionalProperties": false,
"type": "object",
"description": "Configure X11 keyboard.",
"required": [
"layouts"
],
"properties": {
"layouts": {
"type": "array",
"description": "List of keyboard mappings to configure.",
"minItems": 1,
"items": {
"type": "string",
"minLength": 2
}
}
}
},
"font": {
"type": "string",
"description": "Configures the console font."
"layouts": {
"type": "array",
"description": "List of keyboard mappings to configure.",
"minItems": 1,
"items": {
"type": "string",
"minLength": 2
}
}
}
},
"font": {
"type": "string",
"description": "Configures the console font."
}
}
}
}

File diff suppressed because it is too large Load diff

View file

@ -1,18 +1,18 @@
{
"summary": "Configure basic aspects of the `/etc/sysconfig/livesys` file, necessary for\nlive installations.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"livesys_session"
],
"properties": {
"livesys_session": {
"type": "string",
"description": "Livesys session to use"
}
}
"summary": "Configure basic aspects of the `/etc/sysconfig/livesys` file, necessary for\nlive installations.",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"livesys_session"
],
"properties": {
"livesys_session": {
"type": "string",
"description": "Livesys session to use"
}
}
}
}
}

View file

@ -1,22 +1,22 @@
{
"summary": "Set system language.",
"description": [
"Sets the system language to the given `language`, which must be a valid locale",
"identifier, like \"en_US.UTF-8\".",
"Removes `/etc/locale.conf` and then uses `systemd-firstboot` from the buildhost,",
"with the `--locale` flag, which will write a new `/etc/locale.conf` in the",
"target system with `LANG={language}`."
"summary": "Set system language.",
"description": [
"Sets the system language to the given `language`, which must be a valid locale",
"identifier, like \"en_US.UTF-8\".",
"Removes `/etc/locale.conf` and then uses `systemd-firstboot` from the buildhost,",
"with the `--locale` flag, which will write a new `/etc/locale.conf` in the",
"target system with `LANG={language}`."
],
"schema": {
"additionalProperties": false,
"required": [
"language"
],
"schema": {
"additionalProperties": false,
"required": [
"language"
],
"properties": {
"language": {
"type": "string",
"description": "Locale identifier (like 'en_US.UTF-8') for system LANG"
}
}
"properties": {
"language": {
"type": "string",
"description": "Locale identifier (like 'en_US.UTF-8') for system LANG"
}
}
}
}

View file

@ -1,47 +1,47 @@
{
"summary": "Run a lorax template script on the tree",
"description": [
"This stage can be use to run a lorax template script on the tree.",
"The location that is specified in `path` will be interpreted to be",
"relative to `/usr/share/lorax/templates.d` on the build root.",
"The use case for this stage is primarily to run the post install",
"scripts to create bootable isos, provided by Lorax. Depending on",
"the script, `basearch`, `product` or both have to be specified.",
"The stage uses the `osbuild.utils.lorax` helpers internally, so all",
"operations supported by the helpers are supported by this stage.",
"NB: This is only a subset of the Lorax ones, i.e. it is missing the",
"commands to create disks and images."
"summary": "Run a lorax template script on the tree",
"description": [
"This stage can be use to run a lorax template script on the tree.",
"The location that is specified in `path` will be interpreted to be",
"relative to `/usr/share/lorax/templates.d` on the build root.",
"The use case for this stage is primarily to run the post install",
"scripts to create bootable isos, provided by Lorax. Depending on",
"the script, `basearch`, `product` or both have to be specified.",
"The stage uses the `osbuild.utils.lorax` helpers internally, so all",
"operations supported by the helpers are supported by this stage.",
"NB: This is only a subset of the Lorax ones, i.e. it is missing the",
"commands to create disks and images."
],
"schema": {
"additionalProperties": false,
"required": [
"path"
],
"schema": {
"properties": {
"path": {
"type": "string"
},
"basearch": {
"type": "string",
"default": "x86_64",
"description": "The basic architecture param to supply to the template"
},
"product": {
"type": "object",
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"type": "string"
},
"basearch": {
"type": "string",
"default": "x86_64",
"description": "The basic architecture param to supply to the template"
},
"product": {
"type": "object",
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"libdir": {
"type": "string",
"default": "lib64"
}
}
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"libdir": {
"type": "string",
"default": "lib64"
}
}
}
}
}

View file

@ -1,135 +1,135 @@
{
"summary": "Create an LUKS2 container via `cryptsetup`.",
"description": [
"This stage formats the given `device` to be a Linux Unified Key Setup,",
"LUKS version 2, container and set the key to be `passphrase`. The uuid",
"of the container must be specified via the coressponding option.",
"Use the corresponding `org.osbuild.luks2` device to open the container",
"during build.",
"Buildhost commands used: `cryptsetup`."
],
"schema_2": {
"definitions": {
"pbkdf2": {
"description": "pbkdf2 PBKDF parameters",
"type": "object",
"additionalProperties": false,
"required": [
"method",
"iterations"
],
"properties": {
"method": {
"enum": [
"pbkdf2"
]
},
"iterations": {
"description": "Iterations cost",
"type": "integer",
"minimum": 1000,
"maximum": 4294967295
}
}
},
"argon2i_d": {
"description": "argon2i and argon2id PBKDF parameters",
"type": "object",
"additionalProperties": false,
"required": [
"method",
"iterations"
],
"properties": {
"method": {
"enum": [
"argon2i",
"argon2id"
]
},
"memory": {
"description": "Memory cost in kilobytes",
"type": "integer",
"minimum": 32,
"maximum": 4194304
},
"iterations": {
"description": "Iterations cost",
"type": "integer",
"minimum": 4,
"maximum": 4294967295
},
"parallelism": {
"description": "Parallel cost",
"type": "integer",
"minimum": 1,
"maximum": 4
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase",
"uuid",
"pbkdf"
],
"properties": {
"passphrase": {
"description": "Passphrase to use",
"type": "string"
},
"uuid": {
"description": "UUID for the LUKS device to use",
"type": "string"
},
"cipher": {
"description": "Cipher to use",
"type": "string"
},
"pbkdf": {
"description": "Password-Based Key Derivation Function parameters",
"oneOf": [
{
"$ref": "#/definitions/pbkdf2"
},
{
"$ref": "#/definitions/argon2i_d"
}
]
},
"label": {
"description": "Label to use",
"type": "string"
},
"subsystem": {
"description": "Additional label",
"type": "string"
},
"sector-size": {
"description": "Sector size to use",
"type": "integer"
},
"integrity": {
"enum": [
"hmac-sha256"
]
}
}
"summary": "Create an LUKS2 container via `cryptsetup`.",
"description": [
"This stage formats the given `device` to be a Linux Unified Key Setup,",
"LUKS version 2, container and set the key to be `passphrase`. The uuid",
"of the container must be specified via the coressponding option.",
"Use the corresponding `org.osbuild.luks2` device to open the container",
"during build.",
"Buildhost commands used: `cryptsetup`."
],
"schema_2": {
"definitions": {
"pbkdf2": {
"description": "pbkdf2 PBKDF parameters",
"type": "object",
"additionalProperties": false,
"required": [
"method",
"iterations"
],
"properties": {
"method": {
"enum": [
"pbkdf2"
]
},
"iterations": {
"description": "Iterations cost",
"type": "integer",
"minimum": 1000,
"maximum": 4294967295
}
}
},
"argon2i_d": {
"description": "argon2i and argon2id PBKDF parameters",
"type": "object",
"additionalProperties": false,
"required": [
"method",
"iterations"
],
"properties": {
"method": {
"enum": [
"argon2i",
"argon2id"
]
},
"memory": {
"description": "Memory cost in kilobytes",
"type": "integer",
"minimum": 32,
"maximum": 4194304
},
"iterations": {
"description": "Iterations cost",
"type": "integer",
"minimum": 4,
"maximum": 4294967295
},
"parallelism": {
"description": "Parallel cost",
"type": "integer",
"minimum": 1,
"maximum": 4
}
}
}
},
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase",
"uuid",
"pbkdf"
],
"properties": {
"passphrase": {
"description": "Passphrase to use",
"type": "string"
},
"uuid": {
"description": "UUID for the LUKS device to use",
"type": "string"
},
"cipher": {
"description": "Cipher to use",
"type": "string"
},
"pbkdf": {
"description": "Password-Based Key Derivation Function parameters",
"oneOf": [
{
"$ref": "#/definitions/pbkdf2"
},
{
"$ref": "#/definitions/argon2i_d"
}
]
},
"label": {
"description": "Label to use",
"type": "string"
},
"subsystem": {
"description": "Additional label",
"type": "string"
},
"sector-size": {
"description": "Sector size to use",
"type": "integer"
},
"integrity": {
"enum": [
"hmac-sha256"
]
}
}
}
}
}

View file

@ -1,33 +1,33 @@
{
"summary": "Removes the supplied passphrase from the LUKS device.",
"description": [
"Buildhost commands used: `cryptsetup`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase"
],
"properties": {
"passphrase": {
"description": "Passphrase to remove",
"type": "string"
}
}
"summary": "Removes the supplied passphrase from the LUKS device.",
"description": [
"Buildhost commands used: `cryptsetup`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase"
],
"properties": {
"passphrase": {
"description": "Passphrase to remove",
"type": "string"
}
}
}
}
}

View file

@ -1,72 +1,72 @@
{
"summary": "Create LVM2 physical volumes, volume groups and logical volumes",
"description": [
"For the logical volumes `name` and `size` need to be provided.",
"NB: The name of the volume group is chosen at random and should",
"be changed via the `org.osbuild.lvm2.metadata` stage after the",
"image has been completely assembled."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": true,
"required": [
"volumes"
],
"properties": {
"volumes": {
"type": "array",
"minItems": 1,
"items": {
"description": "Logical volume",
"type": "object",
"required": [
"name"
],
"oneOf": [
{
"required": [
"size"
]
},
{
"required": [
"extents"
]
}
],
"properties": {
"name": {
"description": "The logical volume name",
"type": "string",
"pattern": "[a-zA-Z09+_.][a-zA-Z0-9+_.-]*"
},
"extents": {
"description": "The logical extents of the volume",
"type": "string",
"pattern": "[1-9][0-9]*(%(VG|PVS|FREE|ORIGIN))?"
},
"size": {
"description": "The size of the logical volume",
"type": "string",
"pattern": "[1-9][0-9]*[bBsSkKmMgGtTpPeE]?"
}
}
}
}
}
"summary": "Create LVM2 physical volumes, volume groups and logical volumes",
"description": [
"For the logical volumes `name` and `size` need to be provided.",
"NB: The name of the volume group is chosen at random and should",
"be changed via the `org.osbuild.lvm2.metadata` stage after the",
"image has been completely assembled."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": true,
"required": [
"volumes"
],
"properties": {
"volumes": {
"type": "array",
"minItems": 1,
"items": {
"description": "Logical volume",
"type": "object",
"required": [
"name"
],
"oneOf": [
{
"required": [
"size"
]
},
{
"required": [
"extents"
]
}
],
"properties": {
"name": {
"description": "The logical volume name",
"type": "string",
"pattern": "[a-zA-Z09+_.][a-zA-Z0-9+_.-]*"
},
"extents": {
"description": "The logical extents of the volume",
"type": "string",
"pattern": "[1-9][0-9]*(%(VG|PVS|FREE|ORIGIN))?"
},
"size": {
"description": "The size of the logical volume",
"type": "string",
"pattern": "[1-9][0-9]*[bBsSkKmMgGtTpPeE]?"
}
}
}
}
}
}
}
}

View file

@ -1,51 +1,51 @@
{
"summary": "Set LVM2 volume group metadata",
"description": [
"This stage allows you to modify the LVM2 volume group",
"metadata. This data describes various properties about",
"the volume group, physical volume and logical volumes.",
"Most importantly it contains the volume group name, so",
"this stage can be used to rename the volume group."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": true,
"required": [
"vg_name"
],
"properties": {
"creation_host": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"creation_time": {
"type": "string",
"pattern": "[0-9]+",
"description": "Creation time (uint64 represented as string)"
},
"description": {
"type": "string",
"minLength": 1
},
"vg_name": {
"type": "string",
"pattern": "[a-zA-Z0-9+_.][a-zA-Z0-9+_.-]*"
}
}
"summary": "Set LVM2 volume group metadata",
"description": [
"This stage allows you to modify the LVM2 volume group",
"metadata. This data describes various properties about",
"the volume group, physical volume and logical volumes.",
"Most importantly it contains the volume group name, so",
"this stage can be used to rename the volume group."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": true,
"required": [
"vg_name"
],
"properties": {
"creation_host": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"creation_time": {
"type": "string",
"pattern": "[0-9]+",
"description": "Creation time (uint64 represented as string)"
},
"description": {
"type": "string",
"minLength": 1
},
"vg_name": {
"type": "string",
"pattern": "[a-zA-Z0-9+_.][a-zA-Z0-9+_.-]*"
}
}
}
}
}

View file

@ -1,29 +1,29 @@
{
"summary": "Deal with /etc/machine-id",
"description": [
"Explicitly define the state to /etc/machine-id. The possible values for",
"first-boot are:",
"- yes: This sets the machine-id to \"uninitialized\" and this will trigger",
" ContidionFirstBoot in systemd",
"- no: This creates an empty machine-id. It will trigger the generation",
" of a new machine-id but *not* the ConditionFirstBoot",
"- preserve: Leave the existing machine-id in place. Not having a machine-id",
" with that set is an error."
"summary": "Deal with /etc/machine-id",
"description": [
"Explicitly define the state to /etc/machine-id. The possible values for",
"first-boot are:",
"- yes: This sets the machine-id to \"uninitialized\" and this will trigger",
" ContidionFirstBoot in systemd",
"- no: This creates an empty machine-id. It will trigger the generation",
" of a new machine-id but *not* the ConditionFirstBoot",
"- preserve: Leave the existing machine-id in place. Not having a machine-id",
" with that set is an error."
],
"schema": {
"additionalProperties": false,
"required": [
"first-boot"
],
"schema": {
"additionalProperties": false,
"required": [
"first-boot"
"properties": {
"first-boot": {
"enum": [
"yes",
"no",
"preserve"
],
"properties": {
"first-boot": {
"enum": [
"yes",
"no",
"preserve"
],
"description": "Set the first boot behavior of the /etc/machine-id file in the tree"
}
}
"description": "Set the first boot behavior of the /etc/machine-id file in the tree"
}
}
}
}

View file

@ -1,57 +1,57 @@
{
"summary": "Create directories within the tree.",
"description": [
"Can create one or more directories, optionally also the",
"intermediate directories. The stage can gracefully handle",
"directories that already exist.",
"Please note that the stage won't change the mode of existing",
"directories. If you want to change the mode of an existing",
"directory, you need to use the `org.osbuild.chmod` stage.",
"Mode is applied only to newly created directories and umask",
"value is taken into account.",
"In the initial version of this stage, there was a bug that caused",
"the stage to accept relative paths. This behaviour is kept for",
"backward compatibility, thus the following paths are equal:",
"/path/to/directory",
"path/to/directory",
"However, using relative paths is strongly discouraged."
],
"schema_2": {
"options": {
"summary": "Create directories within the tree.",
"description": [
"Can create one or more directories, optionally also the",
"intermediate directories. The stage can gracefully handle",
"directories that already exist.",
"Please note that the stage won't change the mode of existing",
"directories. If you want to change the mode of an existing",
"directory, you need to use the `org.osbuild.chmod` stage.",
"Mode is applied only to newly created directories and umask",
"value is taken into account.",
"In the initial version of this stage, there was a bug that caused",
"the stage to accept relative paths. This behaviour is kept for",
"backward compatibility, thus the following paths are equal:",
"/path/to/directory",
"path/to/directory",
"However, using relative paths is strongly discouraged."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"paths": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"paths": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"type": "string",
"pattern": "^\\/?(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"mode": {
"type": "number",
"description": "Numeric octal mode"
},
"parents": {
"type": "boolean",
"description": "Create intermediate directories",
"default": false
},
"exist_ok": {
"type": "boolean",
"description": "Do not fail if the directory already exists",
"default": false
}
}
}
}
"path": {
"type": "string",
"pattern": "^\\/?(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"mode": {
"type": "number",
"description": "Numeric octal mode"
},
"parents": {
"type": "boolean",
"description": "Create intermediate directories",
"default": false
},
"exist_ok": {
"type": "boolean",
"description": "Do not fail if the directory already exists",
"default": false
}
}
}
}
}
}
}
}

View file

@ -1,48 +1,48 @@
{
"summary": "Construct an btrfs file-system via mkfs.btrfs(8)",
"description": [
"Construct a btrfs file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mkfs.btrfs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 256
},
"metadata": {
"description": "Profile for the metadata block groups",
"type": "string",
"enum": [
"single",
"dup"
]
}
}
"summary": "Construct an btrfs file-system via mkfs.btrfs(8)",
"description": [
"Construct a btrfs file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mkfs.btrfs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 256
},
"metadata": {
"description": "Profile for the metadata block groups",
"type": "string",
"enum": [
"single",
"dup"
]
}
}
}
}
}

View file

@ -1,52 +1,52 @@
{
"summary": "Construct an ext4 file-system via mkfs.ext4(8)",
"description": [
"Construct a ext4 file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mke2fs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 16
},
"metadata_csum_seed": {
"description": "Enable metadata_csum_seed support",
"type": "boolean"
},
"orphan_file": {
"description": "Enable orphan_file support",
"type": "boolean"
},
"verity": {
"description": "Enable fs-verity support",
"type": "boolean"
}
}
"summary": "Construct an ext4 file-system via mkfs.ext4(8)",
"description": [
"Construct a ext4 file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mke2fs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 16
},
"metadata_csum_seed": {
"description": "Enable metadata_csum_seed support",
"type": "boolean"
},
"orphan_file": {
"description": "Enable orphan_file support",
"type": "boolean"
},
"verity": {
"description": "Enable fs-verity support",
"type": "boolean"
}
}
}
}
}

View file

@ -1,71 +1,71 @@
{
"summary": "Construct an FAT file-system via mkfs.fat(8)",
"description": [
"Construct a FAT file-system with the given options at the device",
"specified via `device`.",
"NB: `mkfs.fat` is called via `-I` to ignore existing partitions",
"on the device. This should also prevent the situation where",
"the partition table information on a (loop-)device is outdated.",
"Buildhost commands used: `mkfs.fat`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"volid"
],
"properties": {
"volid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 11
},
"fat-size": {
"description": "Label for the file system",
"type": "integer",
"enum": [
12,
16,
32
]
},
"geometry": {
"description": "Disk Geometry for the file system",
"type": "object",
"additionalProperties": false,
"required": [
"heads",
"sectors-per-track"
],
"properties": {
"heads": {
"description": "Number of Heads",
"type": "integer"
},
"sectors-per-track": {
"description": "Number of Sectors per Track",
"type": "integer"
}
}
}
}
"summary": "Construct an FAT file-system via mkfs.fat(8)",
"description": [
"Construct a FAT file-system with the given options at the device",
"specified via `device`.",
"NB: `mkfs.fat` is called via `-I` to ignore existing partitions",
"on the device. This should also prevent the situation where",
"the partition table information on a (loop-)device is outdated.",
"Buildhost commands used: `mkfs.fat`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"volid"
],
"properties": {
"volid": {
"description": "Volume identifier",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 11
},
"fat-size": {
"description": "Label for the file system",
"type": "integer",
"enum": [
12,
16,
32
]
},
"geometry": {
"description": "Disk Geometry for the file system",
"type": "object",
"additionalProperties": false,
"required": [
"heads",
"sectors-per-track"
],
"properties": {
"heads": {
"description": "Number of Heads",
"type": "integer"
},
"sectors-per-track": {
"description": "Number of Sectors per Track",
"type": "integer"
}
}
}
}
}
}
}

View file

@ -1,40 +1,40 @@
{
"summary": "Construct an XFS file-system via mkfs.xfs(8)",
"description": [
"Construct a XFS file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mkfs.xfs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "UUID for the file system",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 12
}
}
"summary": "Construct an XFS file-system via mkfs.xfs(8)",
"description": [
"Construct a XFS file-system with the given options at the device",
"specified via `device`.",
"Buildhost commands used: `mkfs.xfs`."
],
"schema_2": {
"devices": {
"type": "object",
"additionalProperties": true,
"required": [
"device"
],
"properties": {
"device": {
"type": "object",
"additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"uuid"
],
"properties": {
"uuid": {
"description": "UUID for the file system",
"type": "string"
},
"label": {
"description": "Label for the file system",
"type": "string",
"maxLength": 12
}
}
}
}
}

View file

@ -1,17 +1,17 @@
{
"summary": "Run mkinitcpio for Arch based distributions",
"description": [
"WARNING: This stage uses chroot() to run the `mkinitcpio` binary",
"from inside the tree."
],
"schema": {
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"description": "mkinitcpio preset file to use",
"default": "linux"
}
}
"summary": "Run mkinitcpio for Arch based distributions",
"description": [
"WARNING: This stage uses chroot() to run the `mkinitcpio` binary",
"from inside the tree."
],
"schema": {
"additionalProperties": false,
"properties": {
"preset": {
"type": "string",
"description": "mkinitcpio preset file to use",
"default": "linux"
}
}
}
}

View file

@ -1,92 +1,92 @@
{
"summary": "Configure modprobe",
"description": [
"The 'config' option allows the creation of a `.conf` configuration",
"file for modprobe in `/usr/lib/modprobe.d` with the name `filename`.",
"Currently supported \"command\" objects are:",
" - for 'blacklist' command",
" - 'command' property value: \"blacklist\"",
" - 'modulename' property value: a non-empty string with the name of a module",
" - for 'install' command",
" - 'command' property value: \"install\"",
" - 'modulename' property value: a non-empty string with the name of a module",
" - 'cmdline' property value: a non-empty string representing the command to",
" run instead of inserting the specified module."
"summary": "Configure modprobe",
"description": [
"The 'config' option allows the creation of a `.conf` configuration",
"file for modprobe in `/usr/lib/modprobe.d` with the name `filename`.",
"Currently supported \"command\" objects are:",
" - for 'blacklist' command",
" - 'command' property value: \"blacklist\"",
" - 'modulename' property value: a non-empty string with the name of a module",
" - for 'install' command",
" - 'command' property value: \"install\"",
" - 'modulename' property value: a non-empty string with the name of a module",
" - 'cmdline' property value: a non-empty string representing the command to",
" run instead of inserting the specified module."
],
"schema": {
"additionalProperties": false,
"required": [
"commands",
"filename"
],
"schema": {
"properties": {
"filename": {
"type": "string",
"description": "Name of the modprobe configuration file.",
"pattern": "^[\\w.-]{1,250}\\.conf$"
},
"commands": {
"additionalProperties": false,
"required": [
"commands",
"filename"
],
"properties": {
"filename": {
"type": "string",
"description": "Name of the modprobe configuration file.",
"pattern": "^[\\w.-]{1,250}\\.conf$"
},
"commands": {
"additionalProperties": false,
"type": "array",
"description": "Array of modprobe commands",
"minLength": 1,
"items": {
"anyOf": [
{
"additionalProperties": false,
"type": "object",
"description": "'blacklist' command",
"required": [
"command",
"modulename"
],
"properties": {
"command": {
"type": "string",
"enum": [
"blacklist"
],
"description": "modprobe command."
},
"modulename": {
"type": "string",
"minLength": 1,
"description": "name of the module to blacklist."
}
}
},
{
"additionalProperties": false,
"type": "object",
"description": "'install' command",
"required": [
"command",
"modulename",
"cmdline"
],
"properties": {
"command": {
"type": "string",
"enum": [
"install"
],
"description": "modprobe command."
},
"modulename": {
"type": "string",
"minLength": 1,
"description": "name of the module to blacklis."
},
"cmdline": {
"type": "string",
"minLength": 1,
"description": "command to run instead of inserting the specified module as normal."
}
}
}
]
"type": "array",
"description": "Array of modprobe commands",
"minLength": 1,
"items": {
"anyOf": [
{
"additionalProperties": false,
"type": "object",
"description": "'blacklist' command",
"required": [
"command",
"modulename"
],
"properties": {
"command": {
"type": "string",
"enum": [
"blacklist"
],
"description": "modprobe command."
},
"modulename": {
"type": "string",
"minLength": 1,
"description": "name of the module to blacklist."
}
}
},
{
"additionalProperties": false,
"type": "object",
"description": "'install' command",
"required": [
"command",
"modulename",
"cmdline"
],
"properties": {
"command": {
"type": "string",
"enum": [
"install"
],
"description": "modprobe command."
},
"modulename": {
"type": "string",
"minLength": 1,
"description": "name of the module to blacklis."
},
"cmdline": {
"type": "string",
"minLength": 1,
"description": "command to run instead of inserting the specified module as normal."
}
}
}
]
}
}
}
}
}

View file

@ -1,42 +1,42 @@
{
"summary": "Write nginx configuration",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "Config file location",
"default": "/etc/nginx/nginx.conf",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"config": {
"type": "object",
"properties": {
"listen": {
"type": "string",
"description": "The address and/or port on which the server will accept requests",
"default": "*:80"
},
"root": {
"type": "string",
"description": "The root directory for requests",
"default": "/usr/share/nginx/html"
},
"pid": {
"type": "string",
"description": "File that will store the process ID of the main process",
"default": "/run/nginx.pid"
},
"daemon": {
"type": "boolean",
"description": "Whether nginx should become a daemon",
"default": true
}
}
}
"summary": "Write nginx configuration",
"description": [],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"path": {
"type": "string",
"description": "Config file location",
"default": "/etc/nginx/nginx.conf",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"config": {
"type": "object",
"properties": {
"listen": {
"type": "string",
"description": "The address and/or port on which the server will accept requests",
"default": "*:80"
},
"root": {
"type": "string",
"description": "The root directory for requests",
"default": "/usr/share/nginx/html"
},
"pid": {
"type": "string",
"description": "File that will store the process ID of the main process",
"default": "/run/nginx.pid"
},
"daemon": {
"type": "boolean",
"description": "Whether nginx should become a daemon",
"default": true
}
}
}
}
}
}
}

View file

@ -1,139 +1,139 @@
{
"summary": "Create NetworkManager configuration files.",
"description": [
"This stages allows to create NetworkManager configuration files in the",
"location specified via `path` with the `settings` provided. Only a",
"subset of the all options are currently supported.",
"The stage will use `true` and `false` for boolean values and `,` as",
"list separator.",
"NetworkManger looks in the following locations for configuration files:",
" - /etc/NetworkManager/NetworkManager.conf",
" - /etc/NetworkManager/conf.d/name.conf",
" - /usr/lib/NetworkManager/conf.d/name.conf,",
" and also in the following locations that very likely should not be used:",
" - /run/NetworkManager/conf.d/name.conf",
" -/var/lib/NetworkManager/NetworkManager-intern.conf"
],
"schema": {
"definitions": {
"device-list": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"str-array": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"device": {
"type": "object",
"additionalProperties": false,
"properties": {
"managed": {
"type": "boolean"
},
"wifi.scan-rand-mac-address": {
"type": "boolean"
}
}
},
"global-dns-domain": {
"type": "object",
"additionalProperties": false,
"required": [
"servers"
],
"properties": {
"servers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
}
}
}
},
"summary": "Create NetworkManager configuration files.",
"description": [
"This stages allows to create NetworkManager configuration files in the",
"location specified via `path` with the `settings` provided. Only a",
"subset of the all options are currently supported.",
"The stage will use `true` and `false` for boolean values and `,` as",
"list separator.",
"NetworkManger looks in the following locations for configuration files:",
" - /etc/NetworkManager/NetworkManager.conf",
" - /etc/NetworkManager/conf.d/name.conf",
" - /usr/lib/NetworkManager/conf.d/name.conf,",
" and also in the following locations that very likely should not be used:",
" - /run/NetworkManager/conf.d/name.conf",
" -/var/lib/NetworkManager/NetworkManager-intern.conf"
],
"schema": {
"definitions": {
"device-list": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"str-array": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
},
"device": {
"type": "object",
"additionalProperties": false,
"properties": {
"managed": {
"type": "boolean"
},
"wifi.scan-rand-mac-address": {
"type": "boolean"
}
}
},
"global-dns-domain": {
"type": "object",
"additionalProperties": false,
"required": [
"path",
"settings"
"servers"
],
"properties": {
"path": {
"type": "string"
},
"settings": {
"type": "object",
"additionalProperties": false,
"properties": {
"main": {
"type": "object",
"additionalProperties": false,
"properties": {
"no-auto-default": {
"$ref": "#/definitions/device-list"
},
"plugins": {
"$ref": "#/definitions/str-array"
}
}
},
"device": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"config"
],
"properties": {
"name": {
"type": "string"
},
"config": {
"$ref": "#/definitions/device"
}
}
}
},
"global-dns-domain": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"config"
],
"properties": {
"name": {
"type": "string"
},
"config": {
"$ref": "#/definitions/global-dns-domain"
}
}
}
},
"keyfile": {
"type": "object",
"additionalProperties": false,
"properties": {
"unmanaged-devices": {
"$ref": "#/definitions/device-list"
}
}
}
}
"servers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
}
}
}
},
"additionalProperties": false,
"required": [
"path",
"settings"
],
"properties": {
"path": {
"type": "string"
},
"settings": {
"type": "object",
"additionalProperties": false,
"properties": {
"main": {
"type": "object",
"additionalProperties": false,
"properties": {
"no-auto-default": {
"$ref": "#/definitions/device-list"
},
"plugins": {
"$ref": "#/definitions/str-array"
}
}
},
"device": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"config"
],
"properties": {
"name": {
"type": "string"
},
"config": {
"$ref": "#/definitions/device"
}
}
}
},
"global-dns-domain": {
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false,
"required": [
"name",
"config"
],
"properties": {
"name": {
"type": "string"
},
"config": {
"$ref": "#/definitions/global-dns-domain"
}
}
}
},
"keyfile": {
"type": "object",
"additionalProperties": false,
"properties": {
"unmanaged-devices": {
"$ref": "#/definitions/device-list"
}
}
}
}
}
}
}
}

View file

@ -1,223 +1,223 @@
{
"summary": "Configure Network Manager Connections",
"description": [
"This stage allows to create system connections for network manager.",
"Currently the connections are created in directory for shipped",
"system connections, `/usr/lib/NetworkManager/system-connections`,",
"if `filename` is used. Otherwise, `path` can be used to create",
"connections in any directory with any suffix.",
"Currently only configuring \"ethernet\" connections is supported,",
"and here only a subset of the available options. See the schema",
"for more information."
],
"schema": {
"definitions": {
"connection": {
"additionalProperties": false,
"required": [
"id",
"uuid",
"type"
],
"type": "object",
"properties": {
"uuid": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"autoconnect": {
"type": "boolean"
},
"interface-name": {
"type": "string"
},
"autoconnect-priority": {
"type": "number"
}
}
},
"ethernet": {
"additionalProperties": false,
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"allOf": [
{
"$ref": "#/definitions/connection"
},
{
"$ref": "#/definitions/802-3-ethernet-connection"
}
]
},
"ipv4": {
"$ref": "#/definitions/ipv4"
},
"ipv6": {
"$ref": "#/definitions/ipv6"
},
"ethernet": {
"$ref": "#/definitions/802-3-ethernet"
}
}
},
"802-3-ethernet-connection": {
"additionalProperties": true,
"required": [
"type"
],
"type": "object",
"properties": {
"type": {
"enum": [
"802-3-ethernet",
"ethernet"
]
}
}
},
"ipv4": {
"oneOf": [
{
"$ref": "#/definitions/ipv4-ignore"
},
{
"$ref": "#/definitions/ipv4-auto"
},
{
"$ref": "#/definitions/ipv4-manual"
}
]
},
"ipv4-ignore": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"ignore"
]
}
}
},
"ipv4-auto": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"auto"
]
},
"dns-search": {
"type": "string"
}
}
},
"ipv4-manual": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"manual"
]
},
"address": {
"type": "array",
"items": {
"$ref": "#/definitions/ipv4-address"
}
}
}
},
"ipv4-address": {
"type": "string"
},
"ipv6": {
"oneOf": [
{
"$ref": "#/definitions/ipv6-ignore"
}
]
},
"ipv6-ignore": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"ignore"
]
}
}
},
"802-3-ethernet": {
"additionalProperties": true,
"type": "object",
"properties": {
"mac-address": {
"type": "string"
}
}
}
},
"summary": "Configure Network Manager Connections",
"description": [
"This stage allows to create system connections for network manager.",
"Currently the connections are created in directory for shipped",
"system connections, `/usr/lib/NetworkManager/system-connections`,",
"if `filename` is used. Otherwise, `path` can be used to create",
"connections in any directory with any suffix.",
"Currently only configuring \"ethernet\" connections is supported,",
"and here only a subset of the available options. See the schema",
"for more information."
],
"schema": {
"definitions": {
"connection": {
"additionalProperties": false,
"required": [
"id",
"uuid",
"type"
],
"type": "object",
"properties": {
"uuid": {
"type": "string"
},
"id": {
"type": "string"
},
"type": {
"type": "string"
},
"autoconnect": {
"type": "boolean"
},
"interface-name": {
"type": "string"
},
"autoconnect-priority": {
"type": "number"
}
}
},
"ethernet": {
"additionalProperties": false,
"required": [
"connection"
],
"type": "object",
"properties": {
"connection": {
"allOf": [
{
"$ref": "#/definitions/connection"
},
{
"$ref": "#/definitions/802-3-ethernet-connection"
}
]
},
"ipv4": {
"$ref": "#/definitions/ipv4"
},
"ipv6": {
"$ref": "#/definitions/ipv6"
},
"ethernet": {
"$ref": "#/definitions/802-3-ethernet"
}
}
},
"802-3-ethernet-connection": {
"additionalProperties": true,
"required": [
"type"
],
"type": "object",
"properties": {
"type": {
"enum": [
"802-3-ethernet",
"ethernet"
]
}
}
},
"ipv4": {
"oneOf": [
{
"additionalProperties": false,
"required": [
"filename",
"settings"
],
"properties": {
"filename": {
"type": "string",
"pattern": "^[\\w.-]{1,242}.nmconnection$"
},
"settings": {
"oneOf": [
{
"$ref": "#/definitions/ethernet"
}
]
}
}
},
{
"additionalProperties": false,
"required": [
"path",
"settings"
],
"properties": {
"path": {
"type": "string"
},
"settings": {
"oneOf": [
{
"$ref": "#/definitions/ethernet"
}
]
}
}
}
{
"$ref": "#/definitions/ipv4-ignore"
},
{
"$ref": "#/definitions/ipv4-auto"
},
{
"$ref": "#/definitions/ipv4-manual"
}
]
}
},
"ipv4-ignore": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"ignore"
]
}
}
},
"ipv4-auto": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"auto"
]
},
"dns-search": {
"type": "string"
}
}
},
"ipv4-manual": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"manual"
]
},
"address": {
"type": "array",
"items": {
"$ref": "#/definitions/ipv4-address"
}
}
}
},
"ipv4-address": {
"type": "string"
},
"ipv6": {
"oneOf": [
{
"$ref": "#/definitions/ipv6-ignore"
}
]
},
"ipv6-ignore": {
"additionalProperties": false,
"required": [
"method"
],
"properties": {
"method": {
"enum": [
"ignore"
]
}
}
},
"802-3-ethernet": {
"additionalProperties": true,
"type": "object",
"properties": {
"mac-address": {
"type": "string"
}
}
}
},
"oneOf": [
{
"additionalProperties": false,
"required": [
"filename",
"settings"
],
"properties": {
"filename": {
"type": "string",
"pattern": "^[\\w.-]{1,242}.nmconnection$"
},
"settings": {
"oneOf": [
{
"$ref": "#/definitions/ethernet"
}
]
}
}
},
{
"additionalProperties": false,
"required": [
"path",
"settings"
],
"properties": {
"path": {
"type": "string"
},
"settings": {
"oneOf": [
{
"$ref": "#/definitions/ethernet"
}
]
}
}
}
]
}
}

View file

@ -1,21 +1,21 @@
{
"summary": "Do Nothing",
"description": [
"No-op stage. Prints a JSON dump of the options passed into this stage and",
"leaves the tree untouched. Useful for testing, debugging, and wasting time."
],
"schema_2": {
"options": {
"additionalProperties": true
},
"devices": {
"additionalProperties": true
},
"inputs": {
"additionalProperties": true
},
"mounts": {
"additionalProperties": true
}
"summary": "Do Nothing",
"description": [
"No-op stage. Prints a JSON dump of the options passed into this stage and",
"leaves the tree untouched. Useful for testing, debugging, and wasting time."
],
"schema_2": {
"options": {
"additionalProperties": true
},
"devices": {
"additionalProperties": true
},
"inputs": {
"additionalProperties": true
},
"mounts": {
"additionalProperties": true
}
}
}

View file

@ -1,148 +1,148 @@
{
"summary": "Assemble an OCI image archive",
"description": [
"Assemble an Open Container Initiative[1] image[2] archive, i.e. a",
"tarball whose contents is in the OCI image layout.",
"The content of the container will consist of the base layer provided",
"via the `base` layer. On top of that further inputs provided via the",
"`layer.X` inputs that are sorted in ascending order.",
"Currently the only required options are `filename` and `architecture`.",
"The execution parameters for the image, which then should form the base",
"for the container, can be given via `config`. They have the same format",
"as the `config` option for the \"OCI Image Configuration\" (see [2]),",
"except those that map to the \"Go type map[string]struct{}\", which are",
"represented as array of strings.",
"Manifest annotations can be included via the `annotation` options. Any",
"`key`, `value` pair is allowed, with the exception of the pre-defined",
"`org.osbuild` and `org.opencontainer` namespaces.",
"Specific annotations can be used to indicate that a container contains",
"an OSTree commit via the following:",
" - `org.osbuild.layer`: The layer containing the OSTree repository",
" - `org.osbuild.repo`: Path inside the container to the repository",
" - `org.osbuild.ref`: OSTree reference of the commit inside the repo",
"The `org.osbuild.layer` value can either bey a index (starting at 0),",
"or a digest in the form of <algorithm>:<checksum>.",
"The final resulting tarball, aka a \"oci-archive\", can be imported via",
"podman[3] with `podman pull oci-archive:<archive>`.",
"[1] https://www.opencontainers.org/",
"[2] https://github.com/opencontainers/image-spec/",
"[3] https://podman.io/"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"architecture",
"filename"
],
"properties": {
"architecture": {
"description": "The CPU architecture of the image",
"type": "string"
},
"filename": {
"description": "Resulting image filename",
"type": "string"
},
"config": {
"description": "The execution parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"Cmd": {
"type": "array",
"default": [
"sh"
],
"items": {
"type": "string"
}
},
"Entrypoint": {
"type": "array",
"items": {
"type": "string"
}
},
"Env": {
"type": "array",
"default": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"items": {
"type": "string"
}
},
"ExposedPorts": {
"type": "array",
"items": {
"type": "string"
}
},
"User": {
"type": "string"
},
"Labels": {
"type": "object",
"additionalProperties": true
},
"StopSiganl": {
"type": "string"
},
"Volumes": {
"type": "array",
"items": {
"type": "string"
}
},
"WorkingDir": {
"type": "string"
}
}
},
"annotations": {
"type": "object",
"properties": {
"org.osbuild.ostree.layer": {
"description": "The layer that contains the OSTree repository",
"type": "string"
},
"org.osbuild.ostree.repo": {
"description": "Path to the OSTree repository inside the layer",
"type": "string"
},
"org.osbuild.ostree.ref": {
"description": "Reference of the OSTree commit in the repository",
"type": "string"
}
},
"additionalProperties": false,
"patternProperties": {
"^(?!org.osbuild|org.opencontainer).+": {
"type": "string"
}
}
}
}
"summary": "Assemble an OCI image archive",
"description": [
"Assemble an Open Container Initiative[1] image[2] archive, i.e. a",
"tarball whose contents is in the OCI image layout.",
"The content of the container will consist of the base layer provided",
"via the `base` layer. On top of that further inputs provided via the",
"`layer.X` inputs that are sorted in ascending order.",
"Currently the only required options are `filename` and `architecture`.",
"The execution parameters for the image, which then should form the base",
"for the container, can be given via `config`. They have the same format",
"as the `config` option for the \"OCI Image Configuration\" (see [2]),",
"except those that map to the \"Go type map[string]struct{}\", which are",
"represented as array of strings.",
"Manifest annotations can be included via the `annotation` options. Any",
"`key`, `value` pair is allowed, with the exception of the pre-defined",
"`org.osbuild` and `org.opencontainer` namespaces.",
"Specific annotations can be used to indicate that a container contains",
"an OSTree commit via the following:",
" - `org.osbuild.layer`: The layer containing the OSTree repository",
" - `org.osbuild.repo`: Path inside the container to the repository",
" - `org.osbuild.ref`: OSTree reference of the commit inside the repo",
"The `org.osbuild.layer` value can either bey a index (starting at 0),",
"or a digest in the form of <algorithm>:<checksum>.",
"The final resulting tarball, aka a \"oci-archive\", can be imported via",
"podman[3] with `podman pull oci-archive:<archive>`.",
"[1] https://www.opencontainers.org/",
"[2] https://github.com/opencontainers/image-spec/",
"[3] https://podman.io/"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"architecture",
"filename"
],
"properties": {
"architecture": {
"description": "The CPU architecture of the image",
"type": "string"
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"base"
],
"properties": {
"base": {
"type": "object",
"additionalProperties": true
}
"filename": {
"description": "Resulting image filename",
"type": "string"
},
"config": {
"description": "The execution parameters",
"type": "object",
"additionalProperties": false,
"properties": {
"Cmd": {
"type": "array",
"default": [
"sh"
],
"items": {
"type": "string"
}
},
"patternProperties": {
"layer\\.[1-9]\\d*": {
"type": "object",
"additionalProperties": true
}
"Entrypoint": {
"type": "array",
"items": {
"type": "string"
}
},
"Env": {
"type": "array",
"default": [
"PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
],
"items": {
"type": "string"
}
},
"ExposedPorts": {
"type": "array",
"items": {
"type": "string"
}
},
"User": {
"type": "string"
},
"Labels": {
"type": "object",
"additionalProperties": true
},
"StopSiganl": {
"type": "string"
},
"Volumes": {
"type": "array",
"items": {
"type": "string"
}
},
"WorkingDir": {
"type": "string"
}
}
},
"annotations": {
"type": "object",
"properties": {
"org.osbuild.ostree.layer": {
"description": "The layer that contains the OSTree repository",
"type": "string"
},
"org.osbuild.ostree.repo": {
"description": "Path to the OSTree repository inside the layer",
"type": "string"
},
"org.osbuild.ostree.ref": {
"description": "Reference of the OSTree commit in the repository",
"type": "string"
}
},
"additionalProperties": false,
"patternProperties": {
"^(?!org.osbuild|org.opencontainer).+": {
"type": "string"
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"base"
],
"properties": {
"base": {
"type": "object",
"additionalProperties": true
}
},
"patternProperties": {
"layer\\.[1-9]\\d*": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,84 +1,84 @@
{
"summary": "Execute oscap autotailor",
"description": [
"The autotailor stage produces a tailoring file that the OpenSCAP scanner can use to scan",
"and remediate a system. The autotailor rules override a base profile either enabling or",
"disabling (selecting or unselecting) a given rule for the profile. The autotailor command",
"generates and xml diff between the user provided overrides and the base profile.",
"Notes:",
" - requires `openscap-utils` package in the buildroot."
"summary": "Execute oscap autotailor",
"description": [
"The autotailor stage produces a tailoring file that the OpenSCAP scanner can use to scan",
"and remediate a system. The autotailor rules override a base profile either enabling or",
"disabling (selecting or unselecting) a given rule for the profile. The autotailor command",
"generates and xml diff between the user provided overrides and the base profile.",
"Notes:",
" - requires `openscap-utils` package in the buildroot."
],
"schema": {
"additionalProperties": false,
"required": [
"filepath",
"config"
],
"schema": {
"properties": {
"filepath": {
"type": "string",
"description": "Filename and path to where the tailoring file will be saved"
},
"config": {
"additionalProperties": false,
"required": [
"filepath",
"config"
"profile_id",
"datastream",
"new_profile"
],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": {
"filepath": {
"type": "string",
"description": "Filename and path to where the tailoring file will be saved"
"profile_id": {
"type": "string",
"description": "The base OpenSCAP profile"
},
"datastream": {
"type": "string",
"description": "The path to the datastream file"
},
"new_profile": {
"type": "string",
"description": "The name of the new customized OpenSCAP profile"
},
"selected": {
"type": "array",
"items": {
"type": "string"
},
"config": {
"additionalProperties": false,
"required": [
"profile_id",
"datastream",
"new_profile"
],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": {
"profile_id": {
"type": "string",
"description": "The base OpenSCAP profile"
},
"datastream": {
"type": "string",
"description": "The path to the datastream file"
},
"new_profile": {
"type": "string",
"description": "The name of the new customized OpenSCAP profile"
},
"selected": {
"type": "array",
"items": {
"type": "string"
},
"description": "The rules to select in addition to the base OpenSCAP profile"
},
"unselected": {
"type": "array",
"items": {
"type": "string"
},
"description": "The rules to deselect from the base OpenSCAP profile"
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"required": [
"var",
"value"
],
"properties": {
"var": {
"type": "string"
},
"value": {
"type": [
"string",
"integer"
]
}
}
},
"description": "The variables to override in the base OpenSCAP profile"
}
"description": "The rules to select in addition to the base OpenSCAP profile"
},
"unselected": {
"type": "array",
"items": {
"type": "string"
},
"description": "The rules to deselect from the base OpenSCAP profile"
},
"overrides": {
"type": "array",
"items": {
"type": "object",
"required": [
"var",
"value"
],
"properties": {
"var": {
"type": "string"
},
"value": {
"type": [
"string",
"integer"
]
}
}
}
},
"description": "The variables to override in the base OpenSCAP profile"
}
}
}
}
}
}

View file

@ -1,100 +1,100 @@
{
"summary": "Execute oscap remediation",
"description": [
"The OpenSCAP scanner can be run on the image tree and the remediation can be carried",
"out during build time. The stage takes the OpenSCAP config as input and then runs the",
"the utility in chroot to scan and remediate [1] the tree during image at build time.",
"The stage generates an html report and xml results file both saved to the `data_dir`",
"directory. It defaults to `/root` if not configured.",
"[1] https://github.com/OpenSCAP/openscap/blob/maint-1.3/docs/manual/manual.adoc#remediating-system",
"Buildhost commands used: `chroot`, `xz`."
"summary": "Execute oscap remediation",
"description": [
"The OpenSCAP scanner can be run on the image tree and the remediation can be carried",
"out during build time. The stage takes the OpenSCAP config as input and then runs the",
"the utility in chroot to scan and remediate [1] the tree during image at build time.",
"The stage generates an html report and xml results file both saved to the `data_dir`",
"directory. It defaults to `/root` if not configured.",
"[1] https://github.com/OpenSCAP/openscap/blob/maint-1.3/docs/manual/manual.adoc#remediating-system",
"Buildhost commands used: `chroot`, `xz`."
],
"schema": {
"additionalProperties": false,
"required": [
"config"
],
"schema": {
"properties": {
"data_dir": {
"type": "string",
"default": "/root",
"description": "Path to directory where OpenSCAP reports and results should be saved"
},
"config": {
"additionalProperties": false,
"required": [
"config"
"profile_id",
"datastream"
],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": {
"data_dir": {
"type": "string",
"default": "/root",
"description": "Path to directory where OpenSCAP reports and results should be saved"
},
"config": {
"additionalProperties": false,
"required": [
"profile_id",
"datastream"
],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": {
"profile_id": {
"type": "string",
"description": "The SCAP (XCCDF) profile id"
},
"datastream": {
"type": "string",
"description": "The path to the data stream file"
},
"datastream_id": {
"type": "string",
"description": "The data stream id"
},
"xccdf_id": {
"type": "string",
"description": "The XCCDF id"
},
"benchmark_id": {
"type": "string",
"description": "The benchmark id"
},
"tailoring": {
"type": "string",
"description": "The path to the custom tailoring file"
},
"tailoring_id": {
"type": "string",
"description": "The tailoring id"
},
"arf_results": {
"type": "string",
"description": "Filename for storing the ARF results file"
},
"xml_results": {
"type": "string",
"description": "Filename for storing the ARF results file (synonym for arf_results)"
},
"xccdf_results": {
"type": "string",
"default": "oscap_eval_xccdf_results.xml",
"description": "Filename for storing the XCCDF results file"
},
"html_report": {
"type": "string",
"description": "Filename for saving the final HTML report"
},
"verbose_log": {
"type": "string",
"description": "Filename for verbose error messages"
},
"verbose_level": {
"type": "string",
"enum": [
"DEVEL",
"INFO",
"WARNING",
"ERROR"
],
"description": "The verbosity level for the log messages"
},
"compress_results": {
"type": "boolean",
"default": false,
"description": "Compress ARF and XCCDF results file(s) with xz"
}
}
}
"profile_id": {
"type": "string",
"description": "The SCAP (XCCDF) profile id"
},
"datastream": {
"type": "string",
"description": "The path to the data stream file"
},
"datastream_id": {
"type": "string",
"description": "The data stream id"
},
"xccdf_id": {
"type": "string",
"description": "The XCCDF id"
},
"benchmark_id": {
"type": "string",
"description": "The benchmark id"
},
"tailoring": {
"type": "string",
"description": "The path to the custom tailoring file"
},
"tailoring_id": {
"type": "string",
"description": "The tailoring id"
},
"arf_results": {
"type": "string",
"description": "Filename for storing the ARF results file"
},
"xml_results": {
"type": "string",
"description": "Filename for storing the ARF results file (synonym for arf_results)"
},
"xccdf_results": {
"type": "string",
"default": "oscap_eval_xccdf_results.xml",
"description": "Filename for storing the XCCDF results file"
},
"html_report": {
"type": "string",
"description": "Filename for saving the final HTML report"
},
"verbose_log": {
"type": "string",
"description": "Filename for verbose error messages"
},
"verbose_level": {
"type": "string",
"enum": [
"DEVEL",
"INFO",
"WARNING",
"ERROR"
],
"description": "The verbosity level for the log messages"
},
"compress_results": {
"type": "boolean",
"default": false,
"description": "Compress ARF and XCCDF results file(s) with xz"
}
}
}
}
}
}

View file

@ -1,87 +1,87 @@
{
"summary": "Create aleph version file for the deployment.",
"description": [],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"deployment"
],
"properties": {
"coreos_compat": {
"description": "boolean to allow for CoreOS aleph version backwards compatibility",
"type": "boolean"
},
"deployment": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
"summary": "Create aleph version file for the deployment.",
"description": [],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"deployment"
],
"properties": {
"coreos_compat": {
"description": "boolean to allow for CoreOS aleph version backwards compatibility",
"type": "boolean"
},
"deployment": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
}
}
}
}

View file

@ -1,58 +1,58 @@
{
"summary": "Assemble a file system tree into a ostree commit",
"description": [
"Needs a file system tree that is already conforming to the ostree",
"system layout[1], specified via the `tree` input and commits it",
"to a repository. The repository must have been created at `/repo`.",
"Additional metadata is stored in `/compose.json` which contains",
"the commit compose information. This is also returned via the",
"metadata API to osbuild.",
"[1] https://ostree.readthedocs.io/en/stable/manual/adapting-existing/"
],
"capabilities": [
"CAP_MAC_ADMIN",
"CAP_NET_ADMIN",
"CAP_SYS_PTRACE"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"ref"
],
"properties": {
"ref": {
"description": "OStree ref to create for the commit",
"type": "string",
"default": ""
},
"os_version": {
"description": "Set the version of the OS as commit metadata",
"type": "string"
},
"parent": {
"description": "commit id of the parent commit",
"type": "string"
},
"selinux-label-version": {
"description": "Set selinux label version",
"type": "integer",
"default": 0
}
}
"summary": "Assemble a file system tree into a ostree commit",
"description": [
"Needs a file system tree that is already conforming to the ostree",
"system layout[1], specified via the `tree` input and commits it",
"to a repository. The repository must have been created at `/repo`.",
"Additional metadata is stored in `/compose.json` which contains",
"the commit compose information. This is also returned via the",
"metadata API to osbuild.",
"[1] https://ostree.readthedocs.io/en/stable/manual/adapting-existing/"
],
"capabilities": [
"CAP_MAC_ADMIN",
"CAP_NET_ADMIN",
"CAP_SYS_PTRACE"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"ref"
],
"properties": {
"ref": {
"description": "OStree ref to create for the commit",
"type": "string",
"default": ""
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
}
"os_version": {
"description": "Set the version of the OS as commit metadata",
"type": "string"
},
"parent": {
"description": "commit id of the parent commit",
"type": "string"
},
"selinux-label-version": {
"description": "Set selinux label version",
"type": "integer",
"default": 0
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"tree"
],
"properties": {
"tree": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,61 +1,61 @@
{
"summary": "Change OSTree configuration",
"description": [
"Change the configuration for an OSTree repository.",
"Currently only the following values are supported:",
" - `sysroot.readonly`",
" - `sysroot.bootloader`",
"See `ostree.repo-config(5)` for more information."
"summary": "Change OSTree configuration",
"description": [
"Change the configuration for an OSTree repository.",
"Currently only the following values are supported:",
" - `sysroot.readonly`",
" - `sysroot.bootloader`",
"See `ostree.repo-config(5)` for more information."
],
"schema": {
"additionalProperties": false,
"required": [
"repo"
],
"schema": {
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"config": {
"type": "object",
"additionalProperties": false,
"required": [
"repo"
],
"description": "OSTree configuration groups",
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"sysroot": {
"type": "object",
"additionalProperties": false,
"description": "Options concerning the sysroot",
"properties": {
"bootloader": {
"description": "Configure the bootloader that OSTree uses (use 'none' for BLS).",
"type": "string",
"enum": [
"none",
"auto",
"grub2",
"syslinux",
"uboot",
"zipl",
"aboot"
]
},
"bootprefix": {
"description": "If set to true, the bootloader entries generated will include /boot as a prefix.",
"type": "boolean"
},
"readonly": {
"description": "Read only sysroot and boot",
"type": "boolean"
},
"bls-append-except-default": {
"description": "Set value for bls-append-except-default",
"type": "string"
},
"config": {
"type": "object",
"additionalProperties": false,
"description": "OSTree configuration groups",
"properties": {
"sysroot": {
"type": "object",
"additionalProperties": false,
"description": "Options concerning the sysroot",
"properties": {
"bootloader": {
"description": "Configure the bootloader that OSTree uses (use 'none' for BLS).",
"type": "string",
"enum": [
"none",
"auto",
"grub2",
"syslinux",
"uboot",
"zipl",
"aboot"
]
},
"bootprefix": {
"description": "If set to true, the bootloader entries generated will include /boot as a prefix.",
"type": "boolean"
},
"readonly": {
"description": "Read only sysroot and boot",
"type": "boolean"
},
"bls-append-except-default": {
"description": "Set value for bls-append-except-default",
"type": "string"
}
}
}
}
}
}
}
}
}
}
}
}

View file

@ -1,88 +1,88 @@
{
"summary": "Deploy an OStree commit",
"description": [
"Create an OSTree deployment[1] for a given container image input"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"osname",
"target_imgref"
],
"properties": {
"mounts": {
"description": "Mount points of the final file system",
"type": "array",
"items": {
"description": "Description of one mount point",
"type": "string"
}
},
"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"
}
},
"target_imgref": {
"description": "imageref used as the source of truth for updates",
"type": "string",
"pattern": "^(ostree-remote-registry|ostree-image-signed|ostree-unverified-registry):.*$",
"examples": [
"ostree-remote-registry:fedora:quay.io/fedora/fedora-coreos:stable, ostree-image-signed:quay.io/fedora/fedora-coreos:stable, ostree-unverified-registry:quay.io/fedora/fedora-coreos:stable"
]
},
"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"
}
}
}
}
"summary": "Deploy an OStree commit",
"description": [
"Create an OSTree deployment[1] for a given container image input"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"osname",
"target_imgref"
],
"properties": {
"mounts": {
"description": "Mount points of the final file system",
"type": "array",
"items": {
"description": "Description of one mount point",
"type": "string"
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"description": "Container Image to deploy",
"additionalProperties": true
}
"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"
}
},
"target_imgref": {
"description": "imageref used as the source of truth for updates",
"type": "string",
"pattern": "^(ostree-remote-registry|ostree-image-signed|ostree-unverified-registry):.*$",
"examples": [
"ostree-remote-registry:fedora:quay.io/fedora/fedora-coreos:stable, ostree-image-signed:quay.io/fedora/fedora-coreos:stable, ostree-unverified-registry:quay.io/fedora/fedora-coreos:stable"
]
},
"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"
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"images"
],
"properties": {
"images": {
"type": "object",
"description": "Container Image to deploy",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,98 +1,98 @@
{
"summary": "Deploy an OStree commit",
"description": [
"Create an OSTree deployment[1] for a given ref.",
"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/"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"osname"
],
"properties": {
"mounts": {
"description": "Mount points of the final file system",
"type": "array",
"items": {
"description": "Description of one mount point",
"type": "string"
}
},
"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 use for the deployment",
"type": "string"
},
"remote": {
"description": "optional OStree remote to use for the deployment",
"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"
}
}
}
}
"summary": "Deploy an OStree commit",
"description": [
"Create an OSTree deployment[1] for a given ref.",
"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/"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"osname"
],
"properties": {
"mounts": {
"description": "Mount points of the final file system",
"type": "array",
"items": {
"description": "Description of one mount point",
"type": "string"
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"description": "OStree commit to deploy",
"additionalProperties": true
}
"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 use for the deployment",
"type": "string"
},
"remote": {
"description": "optional OStree remote to use for the deployment",
"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"
}
}
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"description": "OStree commit to deploy",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,66 +1,66 @@
{
"summary": "Wrap OSTree commits into a oci container image",
"description": [
"For more information see [1].",
"[1] https://github.com/ostreedev/ostree-rs-ext#module-container-bridging-between-ostree-and-ocidocker-images"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Resulting image filename",
"type": "string"
},
"cmd": {
"type": "array",
"items": {
"type": "string"
}
},
"copymeta": {
"description": "Propagate an OSTree commit metadata key to container label",
"type": "array",
"items": {
"type": "string"
}
},
"format_version": {
"type": "integer",
"description": "The encapsulated container format version",
"default": 1
},
"labels": {
"description": "Additional labels for the container",
"type": "array",
"items": {
"type": "string"
}
},
"max_layers": {
"description": "Maximum number of container image layers",
"type": "integer"
}
}
"summary": "Wrap OSTree commits into a oci container image",
"description": [
"For more information see [1].",
"[1] https://github.com/ostreedev/ostree-rs-ext#module-container-bridging-between-ostree-and-ocidocker-images"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"filename"
],
"properties": {
"filename": {
"description": "Resulting image filename",
"type": "string"
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commit"
],
"properties": {
"commit": {
"type": "object",
"additionalProperties": true
}
}
"cmd": {
"type": "array",
"items": {
"type": "string"
}
},
"copymeta": {
"description": "Propagate an OSTree commit metadata key to container label",
"type": "array",
"items": {
"type": "string"
}
},
"format_version": {
"type": "integer",
"description": "The encapsulated container format version",
"default": 1
},
"labels": {
"description": "Additional labels for the container",
"type": "array",
"items": {
"type": "string"
}
},
"max_layers": {
"description": "Maximum number of container image layers",
"type": "integer"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commit"
],
"properties": {
"commit": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,78 +1,78 @@
{
"summary": "Pre-populate /var directory for a given stateroot.",
"description": [],
"schema": {
"summary": "Pre-populate /var directory for a given stateroot.",
"description": [],
"schema": {
"additionalProperties": false,
"required": [
"deployment"
],
"properties": {
"deployment": {
"additionalProperties": false,
"required": [
"deployment"
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"deployment": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
}
}
}

View file

@ -1,32 +1,32 @@
{
"summary": "Generate ed25519 public/private keypair in format used by `ostree sign`.",
"description": [
"This is used with the org.osbuild.ostree.sign stage, and these can be",
"used with composefs to tie an initrd and ostree commit together. See",
"https://ostreedev.github.io/ostree/composefs/#signatures for details",
"of how this works.",
"Notes:",
" - Requires 'openssl' in the buildroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"publickey",
"secretkey"
],
"properties": {
"publickey": {
"description": "Path of generated public key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"secretkey": {
"description": "Path of generated secret key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
"summary": "Generate ed25519 public/private keypair in format used by `ostree sign`.",
"description": [
"This is used with the org.osbuild.ostree.sign stage, and these can be",
"used with composefs to tie an initrd and ostree commit together. See",
"https://ostreedev.github.io/ostree/composefs/#signatures for details",
"of how this works.",
"Notes:",
" - Requires 'openssl' in the buildroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"publickey",
"secretkey"
],
"properties": {
"publickey": {
"description": "Path of generated public key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
},
"secretkey": {
"description": "Path of generated secret key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
}
}
}

View file

@ -1,9 +1,9 @@
{
"summary": "Initialize a new root file system",
"description": [
"Creates the basic file system layout for an OSTree based system."
],
"schema": {
"additionalProperties": false
}
"summary": "Initialize a new root file system",
"description": [
"Creates the basic file system layout for an OSTree based system."
],
"schema": {
"additionalProperties": false
}
}

View file

@ -1,29 +1,29 @@
{
"summary": "Create an ostree repository",
"description": [
"Uses `ostree init` to create an ostree repository. The",
"mode and location can be specified via the `mode` and",
"`path` option.",
"See the ostree-init(1) man page for more details."
],
"schema": {
"additionalProperties": false,
"properties": {
"mode": {
"description": "The mode to initialize the repo in.",
"enum": [
"bare",
"bare-user",
"bare-user-only",
"archive"
],
"default": "archive"
},
"path": {
"description": "Location where to create the repo at.",
"type": "string",
"default": "/repo"
}
}
"summary": "Create an ostree repository",
"description": [
"Uses `ostree init` to create an ostree repository. The",
"mode and location can be specified via the `mode` and",
"`path` option.",
"See the ostree-init(1) man page for more details."
],
"schema": {
"additionalProperties": false,
"properties": {
"mode": {
"description": "The mode to initialize the repo in.",
"enum": [
"bare",
"bare-user",
"bare-user-only",
"archive"
],
"default": "archive"
},
"path": {
"description": "Location where to create the repo at.",
"type": "string",
"default": "/repo"
}
}
}
}

View file

@ -1,146 +1,146 @@
{
"summary": "WARNING: This stage is deprecated and shouldn't be used when defining new\n pipelines. Please use the individual ostree.* stages instead.",
"description": [
"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_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
}
}
"summary": "WARNING: This stage is deprecated and shouldn't be used when defining new\n pipelines. Please use the individual ostree.* stages instead.",
"description": [
"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_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
}
}
}
}
}

View file

@ -1,19 +1,19 @@
{
"summary": "Initialize a new stateroot for a new OS",
"description": [
"Initializes a new stateroot (see [1]) for the OS with the",
"name `osname`.",
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
"summary": "Initialize a new stateroot for a new OS",
"description": [
"Initializes a new stateroot (see [1]) for the OS with the",
"name `osname`.",
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
],
"schema": {
"required": [
"osname"
],
"schema": {
"required": [
"osname"
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
}
}
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
}
}
}
}

View file

@ -1,30 +1,30 @@
{
"summary": "Populate buildroot with /etc/passwd and /etc/group from an OSTree checkout",
"description": [
"Using the OSTree checkout provided as in input, copy /usr/etc/passwd and",
"/usr/lib/passwd, merge them and store the result into /etc/passwd in the",
"buildroot. Do the same for /etc/group file.",
"The use case for this stage is when one wants to preserve UIDs and GIDs",
"which might change when the system is build from scratch. Creating these",
"files before any RPMs (or other packages) are installed will prevent changes",
"in UIDs and GIDs."
],
"schema_2": {
"options": {
"additionalProperties": false
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"additionalProperties": true
}
}
"summary": "Populate buildroot with /etc/passwd and /etc/group from an OSTree checkout",
"description": [
"Using the OSTree checkout provided as in input, copy /usr/etc/passwd and",
"/usr/lib/passwd, merge them and store the result into /etc/passwd in the",
"buildroot. Do the same for /etc/group file.",
"The use case for this stage is when one wants to preserve UIDs and GIDs",
"which might change when the system is build from scratch. Creating these",
"files before any RPMs (or other packages) are installed will prevent changes",
"in UIDs and GIDs."
],
"schema_2": {
"options": {
"additionalProperties": false
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,34 +1,34 @@
{
"summary": "Apply post-copy updates to an ostree repo/deployment",
"description": [
"The way osbuild works the ostree deployment is built in a chroot and",
"stored as a regular directory of files before finally being copied to",
"the physical filesystem. This means that for example, ostree fs-verity",
"support doesn't work, as the fs-verity setting of files is not copied.",
"To support fs-verity in generated images you have to run this stage",
"after copying the final ostree tree onto the target filesystem.",
"Notes:",
" - Ensure the target filesystem supports fs-verity. See e.g. the",
" `verity` option in org.osbuild.mkfs.ext4.",
" - Requires ostree version 2023.8 or later in the buildroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"sysroot": {
"type": "string",
"description": "Custom sysroot path",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
"summary": "Apply post-copy updates to an ostree repo/deployment",
"description": [
"The way osbuild works the ostree deployment is built in a chroot and",
"stored as a regular directory of files before finally being copied to",
"the physical filesystem. This means that for example, ostree fs-verity",
"support doesn't work, as the fs-verity setting of files is not copied.",
"To support fs-verity in generated images you have to run this stage",
"after copying the final ostree tree onto the target filesystem.",
"Notes:",
" - Ensure the target filesystem supports fs-verity. See e.g. the",
" `verity` option in org.osbuild.mkfs.ext4.",
" - Requires ostree version 2023.8 or later in the buildroot."
],
"schema_2": {
"options": {
"additionalProperties": false,
"properties": {
"sysroot": {
"type": "string",
"description": "Custom sysroot path",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
}
}
}

View file

@ -1,60 +1,60 @@
{
"summary": "Transforms the tree to an ostree layout",
"description": [
"Creates a basic fs tree in OSTree layout[1] from scratch and then picks",
"the relevenat bits from the tree and moves them over.",
"Then uses `rpm-ostree compose` to transform a \"normal\" file system tree",
"into an OSTree conforming layout (see [1]). Among other things the main",
"steps are:",
" - moves /etc to /usr/etc",
" - move /boot to /usr/lib/ostree-boot",
" - potentially moving /var/lib/rpm",
" - re-creates the initramfs (via dracut)",
" - adds altfiles module to NSS",
" - Re-compiles SELinux policy (semodule -nB)",
" - Migrates /usr/etc/{passwd, group} to /usr/lib/",
" - Postprocess SELinux policy",
" - Convert /var to use tmpfiles.d",
" - Prepares symlinks",
" - /usr/local -> /var/usrlocal",
" - /var/lib/alternatives -> /usr/lib/alternatives",
" - /var/lib/vagrant -> /usr/lib/vagrant",
" - copies the rpmdb",
"The configuration options, `etc_group_members` corresponds to the",
"Treefile[2] option of rpm-ostree. In brief: The groups mentioned",
"in `etc_group_members` will be stored in /etc/groups instead of",
"/usr/etc/groups (which is read-only). Therefore all groups that",
"human users need to be part of.",
"[1] https://ostreedev.github.io/ostree/adapting-existing/",
"[2] https://rpm-ostree.readthedocs.io/en/latest/manual/treefile/"
],
"capabilities": [
"CAP_MAC_ADMIN",
"CAP_NET_ADMIN",
"CAP_SYS_PTRACE"
],
"schema": {
"additionalProperties": false,
"properties": {
"etc_group_members": {
"description": "Array of group names to still keep in /etc/group",
"type": "array",
"items": {
"type": "string"
}
},
"initramfs-args": {
"description": "Array of arguments passed to dracut",
"type": "array",
"items": {
"type": "string"
}
},
"tmp-is-dir": {
"description": "Create a regular directory for /tmp",
"type": "boolean",
"default": true
}
"summary": "Transforms the tree to an ostree layout",
"description": [
"Creates a basic fs tree in OSTree layout[1] from scratch and then picks",
"the relevenat bits from the tree and moves them over.",
"Then uses `rpm-ostree compose` to transform a \"normal\" file system tree",
"into an OSTree conforming layout (see [1]). Among other things the main",
"steps are:",
" - moves /etc to /usr/etc",
" - move /boot to /usr/lib/ostree-boot",
" - potentially moving /var/lib/rpm",
" - re-creates the initramfs (via dracut)",
" - adds altfiles module to NSS",
" - Re-compiles SELinux policy (semodule -nB)",
" - Migrates /usr/etc/{passwd, group} to /usr/lib/",
" - Postprocess SELinux policy",
" - Convert /var to use tmpfiles.d",
" - Prepares symlinks",
" - /usr/local -> /var/usrlocal",
" - /var/lib/alternatives -> /usr/lib/alternatives",
" - /var/lib/vagrant -> /usr/lib/vagrant",
" - copies the rpmdb",
"The configuration options, `etc_group_members` corresponds to the",
"Treefile[2] option of rpm-ostree. In brief: The groups mentioned",
"in `etc_group_members` will be stored in /etc/groups instead of",
"/usr/etc/groups (which is read-only). Therefore all groups that",
"human users need to be part of.",
"[1] https://ostreedev.github.io/ostree/adapting-existing/",
"[2] https://rpm-ostree.readthedocs.io/en/latest/manual/treefile/"
],
"capabilities": [
"CAP_MAC_ADMIN",
"CAP_NET_ADMIN",
"CAP_SYS_PTRACE"
],
"schema": {
"additionalProperties": false,
"properties": {
"etc_group_members": {
"description": "Array of group names to still keep in /etc/group",
"type": "array",
"items": {
"type": "string"
}
},
"initramfs-args": {
"description": "Array of arguments passed to dracut",
"type": "array",
"items": {
"type": "string"
}
},
"tmp-is-dir": {
"description": "Create a regular directory for /tmp",
"type": "boolean",
"default": true
}
}
}
}

View file

@ -1,44 +1,44 @@
{
"summary": "Pull OSTree commits into an existing repo",
"description": [
"This stage pulls one or more commits, provided via",
"the `commits` input into an existing repository at",
"a location specified via `repo`.",
"If the returned a reference via `ref` it will use",
"that to pull the commits."
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"repo"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"remote": {
"description": "Add the 'remote' to the ref spec",
"type": "string"
}
}
"summary": "Pull OSTree commits into an existing repo",
"description": [
"This stage pulls one or more commits, provided via",
"the `commits` input into an existing repository at",
"a location specified via `repo`.",
"If the returned a reference via `ref` it will use",
"that to pull the commits."
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"repo"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"additionalProperties": true
}
}
"remote": {
"description": "Add the 'remote' to the ref spec",
"type": "string"
}
}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,63 +1,63 @@
{
"summary": "Configure OSTree remotes for a repository.",
"description": [],
"schema": {
"additionalProperties": false,
"required": [
"repo"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
"summary": "Configure OSTree remotes for a repository.",
"description": [],
"schema": {
"additionalProperties": false,
"required": [
"repo"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"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"
},
"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 for accessing metadata and content for the remote",
"type": "string"
},
"contenturl": {
"description": "URL for accessing content. When set, url is used only for metadata. Supports 'mirrorlist=' prefix",
"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"
}
},
"gpgkeypaths": {
"type": "array",
"items": {
"description": "Path to ASCII-armored GPG key or directory containing ASCII-armored GPG keys to import",
"type": "string"
}
}
}
}
"url": {
"description": "URL for accessing metadata and content for the remote",
"type": "string"
},
"contenturl": {
"description": "URL for accessing content. When set, url is used only for metadata. Supports 'mirrorlist=' prefix",
"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"
}
},
"gpgkeypaths": {
"type": "array",
"items": {
"description": "Path to ASCII-armored GPG key or directory containing ASCII-armored GPG keys to import",
"type": "string"
}
}
}
}
}
}
}
}

View file

@ -1,83 +1,83 @@
{
"summary": "Fix SELinux labels for an OSTree deployment[1].",
"description": [
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
"summary": "Fix SELinux labels for an OSTree deployment[1].",
"description": [
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema": {
"additionalProperties": false,
"required": [
"deployment"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema": {
"properties": {
"deployment": {
"additionalProperties": false,
"required": [
"deployment"
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"deployment": {
"additionalProperties": false,
"oneOf": [
{
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
],
"properties": {
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
"osname": {
"description": "Name of the stateroot to be used in the deployment",
"type": "string"
},
"ref": {
"description": "OStree ref to create and use for deployment",
"type": "string"
},
"serial": {
"description": "The deployment serial (usually '0')",
"type": "number",
"default": 0
},
"default": {
"description": "Find and use the default ostree deployment",
"type": "boolean",
"default": false
}
}
}
}
}
}

View file

@ -1,35 +1,35 @@
{
"summary": "Sign a commit in an ostree repo",
"description": [
"Given an ostree commit (referenced by a ref) in a repo and an ed25519",
"secret key this adds a signature to the commit detached metadata.",
"This commit can then be used to validate the commit, during ostree",
"pull, during boot, or at any other time."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"repo",
"ref",
"key"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"ref": {
"description": "OSTree branch name or commit to sign",
"type": "string",
"default": ""
},
"key": {
"description": "Path to the secret key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
"summary": "Sign a commit in an ostree repo",
"description": [
"Given an ostree commit (referenced by a ref) in a repo and an ed25519",
"secret key this adds a signature to the commit detached metadata.",
"This commit can then be used to validate the commit, during ostree",
"pull, during boot, or at any other time."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"repo",
"ref",
"key"
],
"properties": {
"repo": {
"description": "Location of the OSTree repo.",
"type": "string"
},
"ref": {
"description": "OSTree branch name or commit to sign",
"type": "string",
"default": ""
},
"key": {
"description": "Path to the secret key",
"type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
}
}
}

View file

@ -1,25 +1,25 @@
{
"summary": "Create OVF descriptor and manifest",
"description": [
"Generates a OVF descriptor (xml) for a vmdk intended for vSphere.",
"The OVF descriptor has minimal virtual hardware and no network.",
"Hardware and network can be configured during or after importing",
"into vSphere.",
"Buildhost commands used: `qemu-img`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"vmdk"
],
"properties": {
"vmdk": {
"description": "The vmdk image filename present in the root of the tree",
"type": "string",
"pattern": "[a-zA-Z0-9+_.-]+.vmdk"
}
}
"summary": "Create OVF descriptor and manifest",
"description": [
"Generates a OVF descriptor (xml) for a vmdk intended for vSphere.",
"The OVF descriptor has minimal virtual hardware and no network.",
"Hardware and network can be configured during or after importing",
"into vSphere.",
"Buildhost commands used: `qemu-img`."
],
"schema_2": {
"options": {
"additionalProperties": false,
"required": [
"vmdk"
],
"properties": {
"vmdk": {
"description": "The vmdk image filename present in the root of the tree",
"type": "string",
"pattern": "[a-zA-Z0-9+_.-]+.vmdk"
}
}
}
}
}

View file

@ -1,17 +1,17 @@
{
"summary": "Initialize the Arch Linux keyring for Arch based distributions",
"description": [
"WARNING: This stage uses chroot() to run the `archlinux-keyring` binary",
"from inside the tree."
],
"schema": {
"additionalProperties": false,
"properties": {
"keyrings": {
"type": "array",
"description": "keyrings",
"default": "archlinux"
}
}
"summary": "Initialize the Arch Linux keyring for Arch based distributions",
"description": [
"WARNING: This stage uses chroot() to run the `archlinux-keyring` binary",
"from inside the tree."
],
"schema": {
"additionalProperties": false,
"properties": {
"keyrings": {
"type": "array",
"description": "keyrings",
"default": "archlinux"
}
}
}
}

View file

@ -1,61 +1,61 @@
{
"summary": "Configure pacman",
"description": [],
"schema": {
"additionalProperties": false,
"properties": {
"architecture": {
"type": "string",
"description": "pacman architecture",
"default": "x86_64"
"summary": "Configure pacman",
"description": [],
"schema": {
"additionalProperties": false,
"properties": {
"architecture": {
"type": "string",
"description": "pacman architecture",
"default": "x86_64"
},
"repositories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"name",
"server"
]
},
"repositories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"name",
"server"
]
},
{
"required": [
"name",
"include"
]
}
],
"properties": {
"name": {
"type": "string"
},
"siglevels": {
"type": "array",
"minLength": 1,
"maxLength": 2,
"items": {
"type": "string",
"enum": [
"Required",
"Optional",
"Never",
"TrustAll",
"TrustedOnly"
]
}
},
"server": {
"type": "string"
},
"include": {
"type": "string",
"default": "/etc/pacman.d/mirrorlist"
}
}
}
{
"required": [
"name",
"include"
]
}
],
"properties": {
"name": {
"type": "string"
},
"siglevels": {
"type": "array",
"minLength": 1,
"maxLength": 2,
"items": {
"type": "string",
"enum": [
"Required",
"Optional",
"Never",
"TrustAll",
"TrustedOnly"
]
}
},
"server": {
"type": "string"
},
"include": {
"type": "string",
"default": "/etc/pacman.d/mirrorlist"
}
}
}
}
}
}
}

View file

@ -1,28 +1,28 @@
{
"summary": "Verify, and install pacman packages",
"description": [
"`packages` is an array of objects representing pacman packages. Each package is",
"identified by its checksums. Specifically, the content hash of the package.",
"This stage will fail if any of the packages can't be found."
],
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"packages"
],
"properties": {
"packages": {
"type": "object",
"additionalProperties": true
}
}
"summary": "Verify, and install pacman packages",
"description": [
"`packages` is an array of objects representing pacman packages. Each package is",
"identified by its checksums. Specifically, the content hash of the package.",
"This stage will fail if any of the packages can't be found."
],
"schema_2": {
"options": {
"type": "object",
"additionalProperties": false,
"properties": {}
},
"inputs": {
"type": "object",
"additionalProperties": false,
"required": [
"packages"
],
"properties": {
"packages": {
"type": "object",
"additionalProperties": true
}
}
}
}
}

View file

@ -1,23 +1,23 @@
{
"summary": "Configure pacman's mirrorlist",
"description": [],
"schema": {
"additionalProperties": false,
"properties": {
"filename": {
"type": "string",
"default": "/etc/pacman.d/mirrorlist"
},
"mirrors": {
"type": "array",
"description": "Mirror locations for pacman",
"items": {
"type": "string",
"examples": [
"https://archlinux.org/$repo/os/$arch"
]
}
}
"summary": "Configure pacman's mirrorlist",
"description": [],
"schema": {
"additionalProperties": false,
"properties": {
"filename": {
"type": "string",
"default": "/etc/pacman.d/mirrorlist"
},
"mirrors": {
"type": "array",
"description": "Mirror locations for pacman",
"items": {
"type": "string",
"examples": [
"https://archlinux.org/$repo/os/$arch"
]
}
}
}
}
}

Some files were not shown because too many files have changed in this diff Show more