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

View file

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

View file

@ -1,34 +1,34 @@
{ {
"summary": "Select system identity and authentication sources with authselect.", "summary": "Select system identity and authentication sources with authselect.",
"description": [ "description": [
"Sets system identity and authentication sources.", "Sets system identity and authentication sources.",
"The stage calls `authselect select` to set authselect profile to 'profile'.", "The stage calls `authselect select` to set authselect profile to 'profile'.",
"Optionally a list of profile features to enable may be provided using 'features'", "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", "option. The list of available profile features can be obtained by running",
"`authselect list-features <profile>`.", "`authselect list-features <profile>`.",
"Notes:", "Notes:",
" - Requires 'chroot' in the buildroot.", " - Requires 'chroot' in the buildroot.",
" - Runs the 'authselect' binary from the image in the chroot." " - Runs the 'authselect' binary from the image in the chroot."
],
"schema": {
"additionalProperties": false,
"required": [
"profile"
], ],
"schema": { "description": "Select system identity and authentication sources.",
"additionalProperties": false, "properties": {
"required": [ "profile": {
"profile" "type": "string",
], "description": "Desired authselect profile to activate."
"description": "Select system identity and authentication sources.", },
"properties": { "features": {
"profile": { "type": "array",
"type": "string", "description": "Features of the selected profile to activate.",
"description": "Desired authselect profile to activate." "minItems": 1,
}, "items": {
"features": { "type": "string"
"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", "summary": "Run bootc install to-filesystem",
"description": [ "description": [
"Note that this needs the disk.img in the inputs as one continous", "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", "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", "all relevant mount points for booting (e.g. /boot, /boot/efi) in",
"mounted in the \"mounts\" path.", "mounted in the \"mounts\" path.",
"Buildhost commands used: bootc" "Buildhost commands used: bootc"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"images" "images"
], ],
"properties": { "properties": {
"images": { "images": {
"type": "object", "type": "object",
"additionalProperties": true "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"
} }
}
},
"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", "summary": "Assemble a file system tree for a bootable iso",
"description": [ "description": [
"This stage prepares a file system tree for a bootable ISO, like the", "This stage prepares a file system tree for a bootable ISO, like the",
"Anaconda installer. It follows the convention used by Lorax to", "Anaconda installer. It follows the convention used by Lorax to",
"create the boot isos: It takes an input `rootfs`, which will serve", "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`", "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.", "file system which in turn will be made into a squashfs file system.",
"Options for controlling the root file-system creation can be given", "Options for controlling the root file-system creation can be given",
"via `rootfs`, like it size and the compression to be used.", "via `rootfs`, like it size and the compression to be used.",
"The boot loader is configured via the `isolinux` and `efi` options.", "The boot loader is configured via the `isolinux` and `efi` options.",
"Which combination makes sense depends on the targeted platform and", "Which combination makes sense depends on the targeted platform and",
"architecture.", "architecture.",
"The kernel and initrd are taken from the tree given via the `kernel`", "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", "input, or if that was not specified, from `rootfs`. In either case",
"it will look for the specified kernel in the `/boot` directory.", "it will look for the specified kernel in the `/boot` directory.",
"Additionally kernel command line flags can passed via `kernel_opts`.", "Additionally kernel command line flags can passed via `kernel_opts`.",
"This stage has the `.mono` suffix to indicate that is a monolithic", "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", "stage that could, and in the future will be, broken up into smaller",
"pieces." "pieces."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"product", "product",
"kernel", "kernel",
"isolabel" "isolabel"
], ],
"properties": { "properties": {
"product": { "product": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"name", "name",
"version" "version"
], ],
"properties": { "properties": {
"name": { "name": {
"type": "string" "type": "string"
}, },
"version": { "version": {
"type": "string" "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
}
}
}
} }
}
}, },
"inputs": { "kernel": {
"type": "object", "type": "string"
"additionalProperties": false, },
"required": [ "isolabel": {
"rootfs" "type": "string"
], },
"properties": { "efi": {
"rootfs": { "type": "object",
"type": "object", "additionalProperties": false,
"additionalProperties": true "required": [
}, "architectures",
"kernel": { "vendor"
"type": "object", ],
"additionalProperties": true "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.", "summary": "Transforms /usr/lib/ostree-boot into a bootupd-compatible update payload.",
"description": [ "description": [
"Scrapes metadata (e.g. RPM versions) about shim/grub and puts them along with their component files in", "Scrapes metadata (e.g. RPM versions) about shim/grub and puts them along with their component files in",
"`/usr/lib/bootupd/updates/`.", "`/usr/lib/bootupd/updates/`.",
"Notes:", "Notes:",
" - Requires 'chroot' in the buildroot.", " - Requires 'chroot' in the buildroot.",
" - Runs the 'bootupctl' binary from the image in the chroot." " - Runs the 'bootupctl' binary from the image in the chroot."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false "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.", "summary": "Install GRUB on both BIOS and UEFI systems,\nensuring that your bootloader stays up-to-date.",
"description": [ "description": [
"Bootupd supports updating GRUB and shim for", "Bootupd supports updating GRUB and shim for",
"UEFI firmware on x86_64 and aarch64,", "UEFI firmware on x86_64 and aarch64,",
"and GRUB for BIOS firmware on x86_64.", "and GRUB for BIOS firmware on x86_64.",
"The project is deployed in Fedora CoreOS and derivatives" "The project is deployed in Fedora CoreOS and derivatives"
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}, },
"mounts": { "mounts": {
"type": "array" "type": "array"
}, },
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"deployment": { "deployment": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"oneOf": [ "oneOf": [
{ {
"properties": { "properties": {
"default": { "default": {
"enum": [ "enum": [
false 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"
}
}
} }
},
"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.", "summary": "Create subvolumes on a mounted btrfs partition.",
"description": [ "description": [
"See `btrfs`(8).", "See `btrfs`(8).",
"Buildhost commands used: `btrfs`." "Buildhost commands used: `btrfs`."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"subvolumes": { "subvolumes": {
"type": "array", "type": "array",
"items": { "items": {
"type": "object",
"additionalProperties": false,
"required": [
"name"
],
"properties": {
"name": {
"type": "string"
}
}
}
}
}
},
"devices": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": false,
}, "required": [
"mounts": { "name"
"type": "array" ],
"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", "summary": "Create a /.buildstamp file describing the system",
"description": [ "description": [
"This will create a './buildstamp' with the specified parameters." "This will create a './buildstamp' with the specified parameters."
],
"schema": {
"additionalProperties": true,
"required": [
"arch",
"product",
"version",
"final"
], ],
"schema": { "properties": {
"additionalProperties": true, "arch": {
"required": [ "description": "Build architecture.",
"arch", "type": "string"
"product", },
"version", "product": {
"final" "description": "The product name.",
], "type": "string"
"properties": { },
"arch": { "version": {
"description": "Build architecture.", "description": "The version .",
"type": "string" "type": "string"
}, },
"product": { "final": {
"description": "The product name.", "description": "The product.",
"type": "string" "type": "boolean"
}, },
"version": { "variant": {
"description": "The version .", "description": "The variant of the product.",
"type": "string" "type": "string"
}, },
"final": { "bugurl": {
"description": "The product.", "description": "The bugurl of the product.",
"type": "boolean" "type": "string"
}, }
"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.", "summary": "Runs `chattr` to set file/directory attributes.",
"description": [], "description": [],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"items": { "items": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"patternProperties": { "patternProperties": {
"^mount://[^/]+/|^tree:///": { "^mount://[^/]+/|^tree:///": {
"type": "object", "type": "object",
"required": [ "required": [
"immutable" "immutable"
], ],
"properties": { "properties": {
"immutable": { "immutable": {
"type": "boolean", "type": "boolean",
"description": "Make the file/directory immutable", "description": "Make the file/directory immutable",
"default": true "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", "summary": "Change file mode bits",
"description": [ "description": [
"Change the file mode bits of one or more files or directories inside the tree." "Change the file mode bits of one or more files or directories inside the tree."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"items": { "items": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"patternProperties": { "patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": { "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object", "type": "object",
"required": [ "required": [
"mode" "mode"
], ],
"properties": { "properties": {
"mode": { "mode": {
"type": "string", "type": "string",
"description": "Symbolic or numeric octal mode" "description": "Symbolic or numeric octal mode"
}, },
"recursive": { "recursive": {
"type": "boolean", "type": "boolean",
"description": "Change modes recursively", "description": "Change modes recursively",
"default": false "default": false
}
}
}
}
} }
}
} }
}
} }
}
} }
}
} }

View file

@ -1,70 +1,70 @@
{ {
"summary": "Change file owner and group", "summary": "Change file owner and group",
"description": [ "description": [
"Change the file user and/or group ownership of one or more files or directories inside the tree.", "Change the file user and/or group ownership of one or more files or directories inside the tree.",
"Notes:", "Notes:",
" - Requires 'chroot' in the buildroot.", " - Requires 'chroot' in the buildroot.",
" - Runs the 'chown' binary from the image in the chroot." " - Runs the 'chown' binary from the image in the chroot."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"items": { "items": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"patternProperties": { "patternProperties": {
"^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": { "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$": {
"type": "object", "type": "object",
"anyOf": [ "anyOf": [
{ {
"required": [ "required": [
"user" "user"
] ]
}, },
{ {
"required": [ "required": [
"group" "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"
}
}
}
}
} }
],
"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.", "summary": "Configure chrony to set system time from the network.",
"description": [ "description": [
"Configures `chrony` by modifying `/etc/chrony.conf`.", "Configures `chrony` by modifying `/etc/chrony.conf`.",
"Before new values are added to the chrony configuration, all lines starting with", "Before new values are added to the chrony configuration, all lines starting with",
"\"server\", \"pool\" or \"peer\" are removed.", "\"server\", \"pool\" or \"peer\" are removed.",
"The 'timeservers' option provides a very high-level way of configuring chronyd", "The 'timeservers' option provides a very high-level way of configuring chronyd",
"with specific timeservers. Its value is a list of strings representing the", "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", "hostname or IP address of the timeserver. For each list item, the following",
"line will be added to the configuration:", "line will be added to the configuration:",
"`server <HOSTNAME/IP> iburst`", "`server <HOSTNAME/IP> iburst`",
"The 'servers' option provides a direct mapping to the `server` directive from", "The 'servers' option provides a direct mapping to the `server` directive from",
"chrony configuration. Its value is a list of dictionaries representing each", "chrony configuration. Its value is a list of dictionaries representing each",
"timeserver which should be added to the configuration. For each list item,", "timeserver which should be added to the configuration. For each list item,",
"a `server` directive will be added the configuration. Currently supported", "a `server` directive will be added the configuration. Currently supported",
"subset of options which can be specified for each timeserver item:", "subset of options which can be specified for each timeserver item:",
" - 'hostname' (REQUIRED)", " - 'hostname' (REQUIRED)",
" - 'minpoll'", " - 'minpoll'",
" - 'maxpoll'", " - 'maxpoll'",
" - 'iburst' (defaults to true)", " - 'iburst' (defaults to true)",
" - 'prefer' (defaults to false)", " - 'prefer' (defaults to false)",
"The 'leapsectz' option configures chrony behavior related to automatic checking", "The 'leapsectz' option configures chrony behavior related to automatic checking",
"of the next occurrence of the leap second, using the provided timezone. Its", "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.", "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", "'right/UTC'). If an empty string is provided, then all occurrences of",
"'leapsectz' directive are removed from the configuration.", "'leapsectz' directive are removed from the configuration.",
"Constraints:", "Constraints:",
" - Exactly one of 'timeservers' or 'servers' options must be provided." " - Exactly one of 'timeservers' or 'servers' options must be provided."
],
"schema": {
"additionalProperties": false,
"oneOf": [
{
"required": [
"timeservers"
]
},
{
"required": [
"servers"
]
}
], ],
"schema": { "properties": {
"additionalProperties": false, "timeservers": {
"oneOf": [ "type": "array",
{ "items": {
"required": [ "type": "string"
"timeservers" },
] "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": {
"required": [ "type": "integer",
"servers" "description": "Specifies the minimum interval between requests sent to the server as a power of 2 in seconds.",
] "minimum": -6,
} "maximum": 24
], },
"properties": { "maxpoll": {
"timeservers": { "type": "integer",
"type": "array", "description": "Specifies the maximum interval between requests sent to the server as a power of 2 in seconds.",
"items": { "minimum": -6,
"type": "string" "maximum": 24
}, },
"description": "Array of NTP server addresses." "iburst": {
}, "type": "boolean",
"servers": { "default": true,
"type": "array", "description": "Configures chronyd behavior related to burst requests on startup."
"items": { },
"additionalProperties": false, "prefer": {
"type": "object", "type": "boolean",
"required": [ "default": false,
"hostname" "description": "Prefer this source over sources without the prefer option."
],
"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."
} }
}
} }
},
"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.", "summary": "Bind a LUKS device using the specified policy.",
"description": [ "description": [
"Buildhost commands used: `clevis`, `clevis-luks`, `clevis-pin-*`." "Buildhost commands used: `clevis`, `clevis-luks`, `clevis-pin-*`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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"
}
}
} }
}
},
"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", "summary": "Configure cloud-init",
"description": [ "description": [
"The 'config' option allows to configure cloud-init by creating a", "The 'config' option allows to configure cloud-init by creating a",
"configuration file under `/etc/cloud/cloud.cfg.d` with the name", "configuration file under `/etc/cloud/cloud.cfg.d` with the name",
"specified by `filename`.", "specified by `filename`.",
"Constrains:", "Constrains:",
" - Each configuration file definition must contain at least one configuration", " - Each configuration file definition must contain at least one configuration",
"Currently supported subset of cloud-init configuration:", "Currently supported subset of cloud-init configuration:",
" - 'system_info' section", " - 'system_info' section",
" - 'default_user' section", " - 'default_user' section",
" - 'name' option" " - 'name' option"
],
"schema": {
"definitions": {
"reporting_handlers": {
"type": "string",
"enum": [
"log",
"print",
"webhook",
"hyperv"
]
}
},
"additionalProperties": false,
"required": [
"config",
"filename"
], ],
"schema": { "properties": {
"definitions": { "filename": {
"reporting_handlers": { "type": "string",
"type": "string", "description": "Name of the cloud-init configuration file.",
"enum": [ "pattern": "^[\\w.-]{1,251}\\.cfg$"
"log", },
"print", "config": {
"webhook",
"hyperv"
]
}
},
"additionalProperties": false, "additionalProperties": false,
"required": [ "type": "object",
"config", "description": "cloud-init configuration",
"filename" "minProperties": 1,
],
"properties": { "properties": {
"filename": { "system_info": {
"type": "string", "additionalProperties": false,
"description": "Name of the cloud-init configuration file.", "type": "object",
"pattern": "^[\\w.-]{1,251}\\.cfg$" "description": "'system_info' configuration section.",
}, "minProperties": 1,
"config": { "properties": {
"default_user": {
"additionalProperties": false, "additionalProperties": false,
"type": "object", "type": "object",
"description": "cloud-init configuration", "description": "Configuration of the 'default' user created by cloud-init.",
"minProperties": 1, "minProperties": 1,
"properties": { "properties": {
"system_info": { "name": {
"additionalProperties": false, "type": "string",
"type": "object", "description": "username of the 'default' user."
"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"
}
}
}
} }
}
} }
},
"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.", "summary": "Deploy a container.",
"description": [ "description": [
"Buildhost commands used: podman skopeo" "Buildhost commands used: podman skopeo"
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"images" "images"
], ],
"properties": { "properties": {
"images": { "images": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"properties": {
"exclude": {
"type": "array",
"description": "Exclude paths from the deployment",
"minItems": 1,
"items": {
"type": "string"
}
}
}
} }
}
},
"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.", "summary": "Edit containers-storage.conf(5) files.",
"description": [ "description": [
"This stage can be used to create or modify `containers-storage.conf`", "This stage can be used to create or modify `containers-storage.conf`",
"configuration files. The default strategy is to merge the specified", "configuration files. The default strategy is to merge the specified",
"options with the existing options." "options with the existing options."
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"storage": { "storage": {
"type": "object", "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"
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"required": [ "minProperties": 1,
"config"
],
"properties": { "properties": {
"filename": { "driver": {
"type": "string", "description": "container storage driver.",
"description": "location of the configuration file.", "type": "string",
"default": "/etc/containers/storage.conf", "enum": [
"enum": [ "overlay",
"/etc/containers/storage.conf", "vfs",
"/usr/share/containers/storage.conf" "devmapper",
] "aufs",
}, "btrfs",
"filebase": { "zfs"
"type": "string", ]
"description": "Read the base configuration from this file." },
}, "graphroot": {
"comment": { "description": "container storage graph directory.",
"type": "array", "type": "string"
"items": { },
"type": "string" "runroot": {
} "description": "container storage run directory.",
}, "type": "string"
"config": { },
"additionalProperties": false, "transient_store": {
"type": "object", "description": "Make the container store not persist across reboot.",
"description": "storage configuration", "type": "boolean"
"minProperties": 1, },
"properties": { "options": {
"storage": { "$ref": "#/definitions/storage-options"
"$ref": "#/definitions/storage" }
}
}
}
} }
},
"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", "summary": "Copy items",
"description": [ "description": [
"Stage to copy items, that is files or trees, from inputs to mount", "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", "points or the tree. Multiple items can be copied. The source and",
"destination is an url. Supported locations ('schemes') are `tree`,", "destination is an url. Supported locations ('schemes') are `tree`,",
"`mount` and `input`.", "`mount` and `input`.",
"The path format follows the rsync convention that if the paths", "The path format follows the rsync convention that if the paths",
"ends with a slash `/` the content of that directory is copied not", "ends with a slash `/` the content of that directory is copied not",
"the directory itself.", "the directory itself.",
"Note that the stage by default does not remove the destination", "Note that the stage by default does not remove the destination",
"before copying. As a result, if the destination is an existing", "before copying. As a result, if the destination is an existing",
"symlink to a file, then this file will be overwritten, instead of", "symlink to a file, then this file will be overwritten, instead of",
"the symlink being replaced. If you want to replace the symlink", "the symlink being replaced. If you want to replace the symlink",
"with a file, you need to set the `remove_destination` option to", "with a file, you need to set the `remove_destination` option to",
"`true`. This option works only for files, not directories or", "`true`. This option works only for files, not directories or",
"symlinks to directories." "symlinks to directories."
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false,
"required": [
"paths"
],
"properties": {
"paths": {
"description": "Array of items to copy",
"type": "array",
"minItems": 1,
"items": {
"type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"paths" "from",
"to"
], ],
"properties": { "properties": {
"paths": { "from": {
"description": "Array of items to copy", "oneOf": [
"type": "array", {
"minItems": 1, "type": "string",
"items": { "description": "The source, if an input",
"type": "object", "pattern": "^input://[^/]+/"
"additionalProperties": false, },
"required": [ {
"from", "type": "string",
"to" "description": "The source, if a mount",
], "pattern": "^mount://[^/]+/"
"properties": { },
"from": { {
"oneOf": [ "type": "string",
{ "description": "The source, if the tree",
"type": "string", "pattern": "^tree:///"
"description": "The source, if an input", }
"pattern": "^input://[^/]+/" ]
}, },
{ "to": {
"type": "string", "oneOf": [
"description": "The source, if a mount", {
"pattern": "^mount://[^/]+/" "type": "string",
}, "description": "The destination, if a mount",
{ "pattern": "^mount://[^/]+/"
"type": "string", },
"description": "The source, if the tree", {
"pattern": "^tree:///" "type": "string",
} "description": "The destination, if the tree",
] "pattern": "^tree:///"
}, }
"to": { ]
"oneOf": [ },
{ "remove_destination": {
"type": "string", "type": "boolean",
"description": "The destination, if a mount", "description": "Remove the destination before copying. Works only for files, not directories.",
"pattern": "^mount://[^/]+/" "default": false
}, }
{
"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", "summary": "Setup a CoreOS platform",
"description": [ "description": [
"In CoreOS we have the concept of a platform (i.e. AWS, GCP, Metal, QEMU)", "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", "where each platform has its own provided disk image with slightly",
"differing settings/behavior. This stage will perform the necessary", "differing settings/behavior. This stage will perform the necessary",
"configuration for the given platform. This configuration boils down to", "configuration for the given platform. This configuration boils down to",
"a few steps:", "a few steps:",
"1. Locate the source of platform specific information that is provided", "1. Locate the source of platform specific information that is provided",
" in the CoreOS filesystem tree already (the platforms.json).", " in the CoreOS filesystem tree already (the platforms.json).",
"2. Copy the platforms.json file into the /boot/ partition, which is", "2. Copy the platforms.json file into the /boot/ partition, which is",
" sometimes used by coreos-installer.", " sometimes used by coreos-installer.",
"3. Read the platforms.json to fetch and platform specific kernel", "3. Read the platforms.json to fetch and platform specific kernel",
" arguments or grub configuration to set. These arguments/config", " arguments or grub configuration to set. These arguments/config",
" are primarily console settings.", " are primarily console settings.",
"4. Apply any platform specific kernel arguments along with the", "4. Apply any platform specific kernel arguments along with the",
" `ignition.platform.id={platform-name}` kernel argument.", " `ignition.platform.id={platform-name}` kernel argument.",
"5. Create the grub console.cfg file and apply any platform", "5. Create the grub console.cfg file and apply any platform",
" specific grub console configuration.", " specific grub console configuration.",
"This stage is highly CoreOS specific and subject to change in the", "This stage is highly CoreOS specific and subject to change in the",
"future if/when we change the way platform specific information is", "future if/when we change the way platform specific information is",
"defined in our broader efforts to share more defaults with OSBuild." "defined in our broader efforts to share more defaults with OSBuild."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"platform": { "platform": {
"description": "The target platform name/ID", "description": "The target platform name/ID",
"type": "string" "type": "string"
}
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
} }
}
},
"devices": {
"type": "object",
"additionalProperties": true
},
"mounts": {
"type": "array"
} }
}
} }

View file

@ -1,84 +1,84 @@
{ {
"summary": "Assembles the tree into a CPIO archive.", "summary": "Assembles the tree into a CPIO archive.",
"description": [ "description": [
"Uses the buildhost's `cpio` command, to create an archive", "Uses the buildhost's `cpio` command, to create an archive",
"at `filename` with the contents of the input `tree`. If", "at `filename` with the contents of the input `tree`. If",
"`append` is `true`, its files will be added to an existing", "`append` is `true`, its files will be added to an existing",
"archive. The default format is `newc` , the \"new (SVR4)", "archive. The default format is `newc` , the \"new (SVR4)",
"portable format\", which is also used by `dracut`(8).", "portable format\", which is also used by `dracut`(8).",
"Buildhost commands used: `cpio`" "Buildhost commands used: `cpio`"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"filename" "filename"
], ],
"properties": { "properties": {
"filename": { "filename": {
"description": "Filename for tar archive", "description": "Filename for tar archive",
"type": "string" "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"
}
}
}
}
}, },
"inputs": { "append": {
"type": "object", "type": "boolean",
"additionalProperties": false, "description": "Append to an existing archive.",
"required": [ "default": false
"tree" },
], "format": {
"properties": { "description": "Archive format to use",
"tree": { "type": "string",
"type": "object", "enum": [
"additionalProperties": true "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.", "summary": "Run a script at regular intervals.",
"description": [ "description": [
"Execute a script at regular intervals. This uses the cron drop-in", "Execute a script at regular intervals. This uses the cron drop-in",
"directories in etc, which correspond to the supported intervals:", "directories in etc, which correspond to the supported intervals:",
" `cron.hourly/`, `cron.daily/`, `cron.weekly/`, `cron.monthly/`", " `cron.hourly/`, `cron.daily/`, `cron.weekly/`, `cron.monthly/`",
"NB: Does itself not create the directories so they must be created", "NB: Does itself not create the directories so they must be created",
"via the package that provides the facility, like `cronie` or on", "via the package that provides the facility, like `cronie` or on",
"older systems `crontabs`." "older systems `crontabs`."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"interval", "interval",
"filename" "filename"
], ],
"oneOf": [ "oneOf": [
{ {
"required": [ "required": [
"simple" "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"
}
}
}
}
} }
],
"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", "summary": "Create /etc/crypttab entries for encrypted block devices",
"description": [ "description": [
"See crypttab(5) for a detailed description of the format but in brief:", "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", "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", "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", "either by `uuid` or by `path` (device node path). The volume will be",
"named as `volume`, i.e. made available as `/dev/mapper/$volume`.", "named as `volume`, i.e. made available as `/dev/mapper/$volume`.",
"Additionally, a keyfile can (optionally) be specified via `keyfile`.", "Additionally, a keyfile can (optionally) be specified via `keyfile`.",
"Specific device options can be specified via `options`.", "Specific device options can be specified via `options`.",
"This stage replaces /etc/crypttab, removing any existing entries." "This stage replaces /etc/crypttab, removing any existing entries."
],
"schema": {
"additionalProperties": false,
"required": [
"volumes"
], ],
"schema": { "properties": {
"additionalProperties": false, "volumes": {
"required": [ "type": "array",
"volumes" "description": "array of volume objects",
], "items": {
"properties": { "type": "object",
"volumes": { "oneOf": [
"type": "array", {
"description": "array of volume objects", "required": [
"items": { "uuid",
"type": "object", "volume"
"oneOf": [ ]
{ },
"required": [ {
"uuid", "required": [
"volume" "path",
] "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": {
"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", "summary": "Set up an early root shell on a certain tty",
"description": [ "description": [
"Creates a systemd unit file at /etc/systemd/system/osbuild-debug-shell.service", "Creates a systemd unit file at /etc/systemd/system/osbuild-debug-shell.service",
"which starts an early-boot root shell on the given `tty`.", "which starts an early-boot root shell on the given `tty`.",
"Also symlinks the service file into /etc/systemd/system/sysinit.target.wants/." "Also symlinks the service file into /etc/systemd/system/sysinit.target.wants/."
],
"schema": {
"additionalProperties": false,
"required": [
"tty"
], ],
"schema": { "properties": {
"additionalProperties": false, "tty": {
"required": [ "type": "string",
"tty" "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", "summary": "Create a `.discinfo` file describing disk",
"description": [ "description": [
"This will create a `.discinfo` file with the specified parameters." "This will create a `.discinfo` file with the specified parameters."
],
"schema": {
"additionalProperties": true,
"required": [
"basearch",
"release"
], ],
"schema": { "properties": {
"additionalProperties": true, "basearch": {
"required": [ "description": "Build architecture.",
"basearch", "type": "string"
"release" },
], "release": {
"properties": { "description": "The product name.",
"basearch": { "type": "string"
"description": "Build architecture.", }
"type": "string"
},
"release": {
"description": "The product name.",
"type": "string"
}
}
} }
}
} }

View file

@ -1,47 +1,47 @@
{ {
"summary": "Change DNF Automatic configuration.", "summary": "Change DNF Automatic configuration.",
"description": [ "description": [
"The stage changes persistent DNF Automatic configuration. Currently, only", "The stage changes persistent DNF Automatic configuration. Currently, only",
"a subset of options can be set:", "a subset of options can be set:",
" - 'commands' section", " - 'commands' section",
" - apply_updates", " - apply_updates",
" - upgrade_type" " - upgrade_type"
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"commands": { "commands": {
"type": "object", "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"
]
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"description": "DNF Automatic configuration.", "description": "'commands' configuration section.",
"properties": { "properties": {
"config": { "apply_updates": {
"type": "object", "type": "boolean",
"additionalProperties": false, "description": "Whether packages comprising the available updates should be installed."
"description": "configuration definition.", },
"properties": { "upgrade_type": {
"commands": { "type": "string",
"$ref": "#/definitions/commands" "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.", "summary": "Change DNF configuration.",
"description": [ "description": [
"The stage changes persistent DNF configuration on the filesystem.", "The stage changes persistent DNF configuration on the filesystem.",
"Allows defining dnf variables via the `variables` option and", "Allows defining dnf variables via the `variables` option and",
"specific configuration options via the `config` option. The", "specific configuration options via the `config` option. The",
"latter will be saved in `/etc/dnf/dnf.conf`. See `dnf.conf(5)`", "latter will be saved in `/etc/dnf/dnf.conf`. See `dnf.conf(5)`",
"for details about the configuration options." "for details about the configuration options."
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"variable": { "variable": {
"type": "object", "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"
]
}
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"description": "DNF configuration.", "required": [
"name",
"value"
],
"description": "DNF variable to configure persistently.",
"properties": { "properties": {
"variables": { "name": {
"type": "array", "type": "string",
"description": "DNF variables to configure persistently.", "pattern": "^[a-z0-9_]+$",
"items": { "description": "Name of the variable."
"$ref": "#/definitions/variable" },
} "value": {
}, "type": "string",
"config": { "description": "Value of the variable."
"additionalProperties": false, }
"type": "object",
"description": "DNF global configuration.",
"properties": {
"main": {
"$ref": "#/definitions/config_main"
}
}
}
} }
},
"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.", "summary": "Mark packages in the DNF state database.",
"description": [], "description": [],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false,
"properties": {
"packages": {
"type": "array",
"minItems": 1,
"description": "Packages and their marks.",
"items": {
"type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [
"name",
"mark"
],
"properties": { "properties": {
"packages": { "name": {
"type": "array", "type": "string",
"minItems": 1, "description": "Package name."
"description": "Packages and their marks.", },
"items": { "mark": {
"type": "object", "type": "string",
"additionalProperties": false, "enum": [
"required": [ "install",
"name", "group"
"mark" ],
], "description": "Package mark."
"properties": { }
"name": {
"type": "string",
"description": "Package name."
},
"mark": {
"type": "string",
"enum": [
"install",
"group"
],
"description": "Package mark."
}
}
}
}
} }
}
} }
}
} }
}
} }

View file

@ -1,130 +1,130 @@
{ {
"summary": "Configure dracut.", "summary": "Configure dracut.",
"description": [ "description": [
"The 'config' option allows to create a dracut configuration file under", "The 'config' option allows to create a dracut configuration file under",
"`/usr/lib/dracut/dracut.conf.d/` with the name `filename`. Only a subset", "`/usr/lib/dracut/dracut.conf.d/` with the name `filename`. Only a subset",
"of configuration options is supported, with the intention to provide", "of configuration options is supported, with the intention to provide",
"functional parity with `org.osbuild.dracut` stage.", "functional parity with `org.osbuild.dracut` stage.",
"Constrains:", "Constrains:",
" - At least one configuration option must be specified for each configuration", " - At least one configuration option must be specified for each configuration",
"Supported configuration options:", "Supported configuration options:",
" - compress", " - compress",
" - dracutmodules", " - dracutmodules",
" - add_dracutmodules", " - add_dracutmodules",
" - omit_dracutmodules", " - omit_dracutmodules",
" - drivers", " - drivers",
" - add_drivers", " - add_drivers",
" - omit_drivers", " - omit_drivers",
" - force_drivers", " - force_drivers",
" - filesystems", " - filesystems",
" - install_items", " - install_items",
" - early_microcode", " - early_microcode",
" - reproducible" " - 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, "additionalProperties": false,
"required": [ "type": "object",
"config", "description": "dracut configuration.",
"filename" "minProperties": 1,
],
"properties": { "properties": {
"filename": { "compress": {
"type": "string", "description": "Compress the generated initramfs using the passed compression program.",
"description": "Name of the dracut configuration file.", "type": "string"
"pattern": "^[\\w.-]{1,250}\\.conf$" },
}, "dracutmodules": {
"config": { "description": "Exact list of dracut modules to use.",
"additionalProperties": false, "type": "array",
"type": "object", "items": {
"description": "dracut configuration.", "type": "string",
"minProperties": 1, "description": "A dracut module, e.g. base, nfs, network ..."
"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"
}
}
} }
},
"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", "summary": "Create (re-create) the initial RAM file-system",
"description": [ "description": [
"Uses `dracut` to re-create the initial RAM filesystem, see man dracut(8).", "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", "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\".", "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", "Supports most options also found in `dracut`(8). See the respective man",
"page and schema for this stage.", "page and schema for this stage.",
"NB: needs chroot for now as well as `strip` for stripping the initrfams." "NB: needs chroot for now as well as `strip` for stripping the initrfams."
],
"schema": {
"required": [
"kernel"
], ],
"schema": { "properties": {
"required": [ "kernel": {
"kernel" "description": "List of target kernel versions",
], "type": "array",
"properties": { "items": {
"kernel": { "type": "string",
"description": "List of target kernel versions", "description": "A kernel version"
"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"
}
}
} }
},
"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`.", "summary": "Create a file containing an erofs filesystem named `filename`.",
"description": [ "description": [
"See https://en.wikipedia.org/wiki/EROFS for details about the", "See https://en.wikipedia.org/wiki/EROFS for details about the",
"filesystem.", "filesystem.",
"Buildhost commands used: `mkfs.erofs`" "Buildhost commands used: `mkfs.erofs`"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"filename" "filename"
], ],
"properties": { "properties": {
"filename": { "filename": {
"description": "Filename for the output", "description": "Filename for the output",
"type": "string" "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"
]
}
}
}
}, },
"inputs": { "compression": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"tree" "method"
], ],
"properties": { "properties": {
"tree": { "method": {
"type": "object", "description": "Compression method",
"additionalProperties": true "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", "summary": "Return an error",
"description": [ "description": [
"Error stage. Return the given error. Useful for testing, debugging, and", "Error stage. Return the given error. Useful for testing, debugging, and",
"wasting time." "wasting time."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"returncode": { "returncode": {
"description": "What to return code to use", "description": "What to return code to use",
"type": "number", "type": "number",
"default": 255 "default": 255
} }
}
} }
}
} }

View file

@ -1,45 +1,45 @@
{ {
"summary": "Change OSTree configuration experimental options", "summary": "Change OSTree configuration experimental options",
"description": [ "description": [
"NOTE: This stage is experimental and subject to changes", "NOTE: This stage is experimental and subject to changes",
"Change the configuration for an OSTree repository.", "Change the configuration for an OSTree repository.",
"Currently only the following values are supported:", "Currently only the following values are supported:",
" - `integrity.composefs`", " - `integrity.composefs`",
"See `ostree.repo-config(5)` for more information." "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, "additionalProperties": false,
"required": [ "description": "OSTree configuration groups",
"repo"
],
"properties": { "properties": {
"repo": { "integrity": {
"description": "Location of the OSTree repo.", "type": "object",
"type": "string" "additionalProperties": false,
}, "description": "Options concerning the sysroot",
"config": { "properties": {
"type": "object", "composefs": {
"additionalProperties": false, "description": "Enable composefs image generation on deploy.",
"description": "OSTree configuration groups", "type": "string",
"properties": { "enum": [
"integrity": { "true",
"type": "object", "false",
"additionalProperties": false, "maybe"
"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", "summary": "FDO initial DIUN certificates",
"description": [ "description": [
"FDO stage to write down the initial DIUN pub key root certificates", "FDO stage to write down the initial DIUN pub key root certificates",
"to be read by the manufacturer client", "to be read by the manufacturer client",
"This will create a '/fdo_diun_root_certs.pem' with content", "This will create a '/fdo_diun_root_certs.pem' with content",
"specified via the `rootcerts` input." "specified via the `rootcerts` input."
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"rootcerts" "rootcerts"
], ],
"properties": { "properties": {
"rootcerts": { "rootcerts": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
},
"options": {
"additionalProperties": false
} }
}
},
"options": {
"additionalProperties": false
} }
}
} }

View file

@ -1,85 +1,85 @@
{ {
"summary": "Configure firewall", "summary": "Configure firewall",
"description": [ "description": [
"Configure firewalld using the `firewall-offline-cmd` from inside the target.", "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", "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", "firewall zone using the `--port` and `--service` options, then removes the",
"services listed in `disabled_services` with `--remove-service`.", "services listed in `disabled_services` with `--remove-service`.",
"Ports should be specified as \"portid:protocol\" or \"portid-portid:protocol\",", "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", "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\".", "\"echo\") and \"protocol\" is one of \"tcp\", \"udp\", \"sctp\", or \"dccp\".",
"Enabling or disabling a service that is already enabled or disabled will not", "Enabling or disabling a service that is already enabled or disabled will not",
"cause an error.", "cause an error.",
"Attempting to enable/disable an unknown service name will cause this stage to", "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", "fail. Known service names are determined by the contents of firewalld's",
"configuration directories, usually `/{lib,etc}/firewalld/services/*.xml`, and", "configuration directories, usually `/{lib,etc}/firewalld/services/*.xml`, and",
"may vary from release to release.", "may vary from release to release.",
"WARNING: this stage uses `chroot` to run `firewall-offline-cmd` inside the", "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", "target tree, which means it may fail unexpectedly when the buildhost and target",
"are different arches or OSes." "are different arches or OSes."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"ports": { "ports": {
"description": "Ports (or port ranges) to open", "description": "Ports (or port ranges) to open",
"type": "array", "type": "array",
"items": { "items": {
"type": "string", "type": "string",
"description": "A port or port range: 'portid[-portid]:protocol'", "description": "A port or port range: 'portid[-portid]:protocol'",
"pattern": ".:(tcp|udp|sctp|dccp)$" "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>"
}
}
}
}
}
} }
},
"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", "summary": "Execute commands on first-boot",
"description": [ "description": [
"Sequentially execute a list of commands on first-boot / instantiation.", "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", "This stage uses a logic similar to systemd's first-boot to execute a given",
"script only the first time the image is booted.", "script only the first time the image is booted.",
"An empty flag file /etc/osbuild-first-boot is written to /etc and a systemd", "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", "service is enabled that is only run when the file exits, and will remove it",
"before executing the given commands.", "before executing the given commands.",
"If the flag-file cannot be removed, the service fails without executing", "If the flag-file cannot be removed, the service fails without executing",
"any further first-boot commands." "any further first-boot commands."
],
"schema": {
"additionalProperties": false,
"required": [
"commands"
], ],
"schema": { "properties": {
"additionalProperties": false, "commands": {
"required": [ "type": "array",
"commands" "description": "The command lines to execute",
], "items": {
"properties": { "type": "string"
"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
}
} }
},
"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", "summary": "Fix paths in /boot/loader/entries",
"description": [ "description": [
"Fixes paths in /boot/loader/entries that have incorrect paths for /boot.", "Fixes paths in /boot/loader/entries that have incorrect paths for /boot.",
"This happens because some boot loader config tools (e.g. grub2-mkrelpath)", "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", "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.", "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", "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", "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", "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.", "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.", "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." "This stage reads and (re)writes all .conf files in /boot/loader/entries."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"prefix": { "prefix": {
"description": "Prefix to use, normally `/boot`", "description": "Prefix to use, normally `/boot`",
"type": "string", "type": "string",
"default": "/boot" "default": "/boot"
} }
}
} }
}
} }

View file

@ -1,169 +1,169 @@
{ {
"summary": "Create /etc/fstab entries for filesystems", "summary": "Create /etc/fstab entries for filesystems",
"description": [ "description": [
"Each filesystem item must have at least the fs_spec, i.e `uuid`,", "Each filesystem item must have at least the fs_spec, i.e `uuid`,",
"`label`, `partlabel` or `device` and a `path` (mount point).", "`label`, `partlabel` or `device` and a `path` (mount point).",
"This stage replaces /etc/fstab, removing any existing entries.", "This stage replaces /etc/fstab, removing any existing entries.",
"NB: The ostree configuration options are experimental and might", "NB: The ostree configuration options are experimental and might",
"be replaced with a different mechanism in the near future." "be replaced with a different mechanism in the near future."
],
"schema": {
"additionalProperties": false,
"required": [
"filesystems"
], ],
"schema": { "properties": {
"ostree": {
"type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"filesystems" "deployment"
], ],
"properties": { "properties": {
"ostree": { "deployment": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "oneOf": [
"deployment" {
],
"properties": { "properties": {
"deployment": { "default": {
"type": "object", "enum": [
"additionalProperties": false, false
"oneOf": [ ]
{ }
"properties": { },
"default": { "required": [
"enum": [ "osname",
false "ref"
] ]
} },
}, {
"required": [ "properties": {
"osname", "default": {
"ref" "enum": [
] true
}, ]
{ }
"properties": { },
"default": { "not": {
"enum": [ "anyOf": [
true {
] "required": [
} "osname"
}, ]
"not": { },
"anyOf": [ {
{ "required": [
"required": [ "ref"
"osname" ]
] },
}, {
{ "required": [
"required": [ "serial"
"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
}
} }
]
} }
}
],
"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", "summary": "Create or modify the GCP guest-agent config",
"description": [ "description": [
"Create or modify the GCP guest-agent config, depending on the", "Create or modify the GCP guest-agent config, depending on the",
"scope either at:", "scope either at:",
" /etc/default/instance_configs.cfg.distro or", " /etc/default/instance_configs.cfg.distro or",
" /etc/default/instance_configs.cfg", " /etc/default/instance_configs.cfg",
"Configuration sections and options may contain any of these values:", "Configuration sections and options may contain any of these values:",
"https://github.com/GoogleCloudPlatform/guest-agent#configuration" "https://github.com/GoogleCloudPlatform/guest-agent#configuration"
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"Accounts": { "Accounts": {
"type": "object", "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."
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"required": [ "description": "Accounts section.",
"config" "minProperties": 1,
],
"description": "Configure GCP guest-agent.",
"properties": { "properties": {
"config_scope": { "deprovision_remove": {
"type": "string", "type": "boolean",
"description": "Create distro-wide or instance-specific configuration.", "description": "Makes deprovisioning a user destructive."
"enum": [ },
"distro", "groups": {
"instance" "type": "array",
], "description": "List of groups for newly provisioned users."
"default": "distro" },
}, "useradd_cmd": {
"config": { "type": "string",
"type": "object", "description": "Command string to create a new user."
"additionalProperties": false, },
"description": "GCP guest-agent configuration.", "userdel_cmd": {
"minProperties": 1, "type": "string",
"properties": { "description": "Command string to delete a user."
"Accounts": { },
"$ref": "#/definitions/Accounts" "usermod_cmd": {
}, "type": "string",
"Daemons": { "description": "Command string to modify a user's groups."
"$ref": "#/definitions/Daemons" },
}, "gpasswd_add_cmd": {
"InstanceSetup": { "type": "string",
"$ref": "#/definitions/InstanceSetup" "description": "Command string to add a user to a group."
}, },
"IpForwarding": { "gpasswd_remove_cmd": {
"$ref": "#/definitions/IpForwarding" "type": "string",
}, "description": "Command string to remove a user from a group."
"MetadataScripts": { },
"$ref": "#/definitions/MetadataScripts" "groupadd_cmd": {
}, "type": "string",
"NetworkInterfaces": { "description": "Command string to create a new group."
"$ref": "#/definitions/NetworkInterfaces" }
}
}
}
} }
},
"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", "summary": "Configure greenboot",
"description": [ "description": [
"Update configuration of greenboot in /etc/greenboot/greenbot.conf." "Update configuration of greenboot in /etc/greenboot/greenbot.conf."
],
"schema": {
"additionalProperties": false,
"required": [
"config"
], ],
"schema": { "properties": {
"config": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "description": "greenboot config options",
"config" "type": "object",
],
"properties": { "properties": {
"config": { "monitor_services": {
"additionalProperties": false, "type": "array",
"description": "greenboot config options", "items": {
"type": "object", "type": "string"
"properties": {
"monitor_services": {
"type": "array",
"items": {
"type": "string"
}
}
}
} }
}
} }
}
} }
}
} }

View file

@ -1,30 +1,30 @@
{ {
"summary": "Create group accounts", "summary": "Create group accounts",
"description": [ "description": [
"Create group accounts, optionally assigning them static GIDs.", "Create group accounts, optionally assigning them static GIDs.",
"Runs `groupadd` from the buildhost to create the groups listed in `groups`.", "Runs `groupadd` from the buildhost to create the groups listed in `groups`.",
"If no `gid` is given, `groupadd` will choose one.", "If no `gid` is given, `groupadd` will choose one.",
"If the specified group name or GID is already in use, this stage will fail." "If the specified group name or GID is already in use, this stage will fail."
], ],
"schema": { "schema": {
"additionalProperties": false,
"properties": {
"groups": {
"type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "description": "Keys are group names, values are objects with group info",
"groups": { "patternProperties": {
"type": "object", "^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$": {
"additionalProperties": false, "type": "object",
"description": "Keys are group names, values are objects with group info", "properties": {
"patternProperties": { "gid": {
"^[A-Za-z0-9_][A-Za-z0-9_-]{0,31}$": { "type": "number",
"type": "object", "description": "GID for this group"
"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", "summary": "Install the grub2 boot loader for non-UEFI systems or hybrid boot",
"description": [ "description": [
"This stage can be used to generate a grub2 core image and install", "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,", "it to the correct location to enable booting of non-UEFI systems,",
"i.e. x86 legacy and PPC64LE (Open Firmware).", "i.e. x86 legacy and PPC64LE (Open Firmware).",
"On x86, the core image can be installed into the MBR gap or to a", "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", "dedicated BIOS boot partition when the partition label is GTP. On",
"ppc64le with Open Firmware a dedicated 'PrEP partition' is used.", "ppc64le with Open Firmware a dedicated 'PrEP partition' is used.",
"x86 / MBR gap:", "x86 / MBR gap:",
" For historic and performance reasons the first partition", " For historic and performance reasons the first partition",
" is aligned to a specific sector number (used to be 64,", " is aligned to a specific sector number (used to be 64,",
" now it is 2048), which leaves a gap between it and the MBR,", " now it is 2048), which leaves a gap between it and the MBR,",
" where the core image can be embedded in", " where the core image can be embedded in",
"x86 / BIOS boot:", "x86 / BIOS boot:",
" A dedicated partition with a specific GUID[1] is used.", " A dedicated partition with a specific GUID[1] is used.",
"ppc64le / Open Firmware:", "ppc64le / Open Firmware:",
" A dedicated partition with a specified GUID[2] is used.", " A dedicated partition with a specified GUID[2] is used.",
" On ppc64le with Open Firmware a special partition called", " On ppc64le with Open Firmware a special partition called",
" 'PrEP partition' is used the store the grub2 core; the", " 'PrEP partition' is used the store the grub2 core; the",
" firmware looks for this partition and directly loads and", " firmware looks for this partition and directly loads and",
" executes the core form it.", " executes the core form it.",
"On x86, a \"boot image\", aka grub stage 1, is installed into the", "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", "master boot record (MBR) of the partition (even in the case the",
"partition layout is GPT). It main purpose is to load the second", "partition layout is GPT). It main purpose is to load the second",
"stage (core image). Therefore the location of the core image is", "stage (core image). Therefore the location of the core image is",
"patched into the boot image.", "patched into the boot image.",
"On ppc64le, the firmware itself directly loads the complete core", "On ppc64le, the firmware itself directly loads the complete core",
"image and transfers control to it.", "image and transfers control to it.",
"[1] 21686148-6449-6E6F-744E-656564454649", "[1] 21686148-6449-6E6F-744E-656564454649",
"[2] 9E1A2D38-C612-4316-AA26-8B49521E5A8B" "[2] 9E1A2D38-C612-4316-AA26-8B49521E5A8B"
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"core-mkimage": { "core-mkimage": {
"type": "object", "type": "object",
"description": "Generate the core image via grub-mkimage", "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": "/.*"
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"filename", "type",
"platform", "partlabel",
"location", "filesystem"
"core",
"prefix"
], ],
"properties": { "properties": {
"filename": { "type": {
"type": "string", "enum": [
"description": "filename of the disk image" "mkimage"
}, ]
"platform": { },
"type": "string", "partlabel": {
"description": "Platform of the target system" "type": "string",
}, "enum": [
"location": { "gpt",
"type": "integer", "dos"
"description": "Location of the stage 2 (in sectors)" ]
}, },
"core": { "filesystem": {
"description": "How to obtain the GRUB core image", "type": "string",
"oneOf": [ "enum": [
{ "ext4",
"$ref": "#/definitions/core-mkimage" "xfs",
} "btrfs"
] ]
}, },
"prefix": { "binary": {
"description": "location of grub config", "description": "grub-mkimage binary name",
"oneOf": [ "type": "string",
{ "default": "grub2-mkimage"
"$ref": "#/definitions/prefix-partition" }
}
]
},
"sector-size": {
"type": "number",
"description": "Sector size (in bytes)",
"default": 512
}
} }
},
"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.", "summary": "Create a boot filesystem tree, can be consumed to create\nan efiboot.img.",
"description": [], "description": [],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"product", "product",
"kernel", "kernel",
"isolabel" "isolabel"
], ],
"properties": { "properties": {
"product": { "product": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"name", "name",
"version" "version"
], ],
"properties": { "properties": {
"name": { "name": {
"type": "string" "type": "string"
}, },
"version": { "version": {
"type": "string" "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
}
}
}
} }
}
},
"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)", "summary": "Configure GRUB2 bootloader and set boot options (legacy, i.e. non-BLS)",
"description": [ "description": [
"This stage creates traditional menu entries for systems that are not", "This stage creates traditional menu entries for systems that are not",
"capable of using the Booloader Specific (BLS).", "capable of using the Booloader Specific (BLS).",
"Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot", "Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems", "partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via", "can be identified either via",
" - uuid (`{\"uuid\": \"<uuid>\"}`)", " - uuid (`{\"uuid\": \"<uuid>\"}`)",
" - label (`{\"label\": \"<label>\"}`)", " - label (`{\"label\": \"<label>\"}`)",
" - device (`{\"device\": \"<device>\"}`, only for the root file system)", " - device (`{\"device\": \"<device>\"}`, only for the root file system)",
"The kernel boot argument will be composed of the root file system id", "The kernel boot argument will be composed of the root file system id",
"and additional options specified in `config.cmdline`, if any.", "and additional options specified in `config.cmdline`, if any.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`;", "This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`;",
"leading directories will be created if not present.", "leading directories will be created if not present.",
"The stage supports configuring grub for BIOS boot and UEFI systems:", "The stage supports configuring grub for BIOS boot and UEFI systems:",
"If BIOS boot support is requested via `bios` this stage will also", "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", "overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:", "buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`", "* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`", "* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file", " * NOTE: skips `fdt.lst`, which is an empty file",
"NB: with bios support enabled, this stage will fail if the buildhost", "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`.", "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", "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", "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`.", "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)." "Both UEFI and Legacy can be specified at the same time (hybrid boot)."
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"filesystem": { "filesystem": {
"description": "Description of how to locate a file system", "description": "Description of how to locate a file system",
"type": "object", "type": "object",
"oneOf": [ "oneOf": [
{ {
"required": [ "required": [
"uuid" "uuid"
] ]
}, },
{ {
"required": [ "required": [
"label" "label"
] ]
}, },
{ {
"required": [ "required": [
"device" "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"
]
}
], ],
"properties": { "properties": {
"rootfs": { "device": {
"$ref": "#/definitions/filesystem" "description": "Identify the file system by device node",
}, "type": "string"
"bootfs": { },
"$ref": "#/definitions/filesystem" "label": {
}, "description": "Identify the file system by label",
"bios": { "type": "string"
"description": "Include bios boot support", },
"type": "object", "uuid": {
"required": [ "description": "Identify the file system by UUID",
"platform" "type": "string",
], "oneOf": [
"properties": { {
"platform": { "pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"type": "string", "examples": [
"enum": [ "9c6ae55b-cf88-45b8-84e8-64990759f39d"
"i386-pc", ]
"powerpc-ieee1275" },
] {
} "pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
} "examples": [
}, "6699-AFB5"
"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"
}
}
}
} }
},
"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", "summary": "Configure GRUB2 bootloader and set boot options",
"description": [ "description": [
"Configure the system to use GRUB2 as the bootloader, and set boot options.", "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", "Sets the GRUB2 boot/root filesystem to `rootfs`. If a separated boot",
"partition is used it can be specified via `bootfs`. The file-systems", "partition is used it can be specified via `bootfs`. The file-systems",
"can be identified either via uuid (`{\"uuid\": \"<uuid>\"}`) or label", "can be identified either via uuid (`{\"uuid\": \"<uuid>\"}`) or label",
"(`{\"label\": \"<label>\"}`). The kernel boot argument will be composed", "(`{\"label\": \"<label>\"}`). The kernel boot argument will be composed",
"of the root file system id and additional options specified in", "of the root file system id and additional options specified in",
"`{kernel_opts}`, if any.", "`{kernel_opts}`, if any.",
"Configures GRUB2 to boot via the Boot Loader Specification", "Configures GRUB2 to boot via the Boot Loader Specification",
"(https://systemd.io/BOOT_LOADER_SPECIFICATION), which is the default", "(https://systemd.io/BOOT_LOADER_SPECIFICATION), which is the default",
"behavior in Fedora 30 and later.", "behavior in Fedora 30 and later.",
"This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`, and", "This stage will overwrite `/etc/default/grub`, `/boot/grub2/grubenv`, and",
"`/boot/grub2/grub.cfg`. (Leading directories will be created if not present.)", "`/boot/grub2/grub.cfg`. (Leading directories will be created if not present.)",
"If Legacy boot support is requested via `legacy` this stage will also", "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", "overwrite `/boot/grub2/grub.cfg` and will copy the GRUB2 files from the",
"buildhost into the target tree:", "buildhost into the target tree:",
"* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`", "* `/usr/share/grub/unicode.pf2` -> `/boot/grub2/fonts/`",
"* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`", "* `/usr/lib/grub/$platform/*.{mod,lst}` -> `/boot/grub2/$platform/`",
" * NOTE: skips `fdt.lst`, which is an empty file", " * NOTE: skips `fdt.lst`, which is an empty file",
"The $platform variable (default: i386-pc) refers to target platform", "The $platform variable (default: i386-pc) refers to target platform",
"that grub2 is mean to ran on (see grub-install(1)'s `--target`)", "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", "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`.", "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", "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", "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`.", "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).", "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", "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", "will be written to `boot/grub2/grub.cfg` and a redirect config will be placed",
"in the EFI directory.", "in the EFI directory.",
"If the `saved_entry` option is present it will result in an entry in the", "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", "`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", "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", "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)", "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", "to be selected as default. The contents of variable needs to match the",
"corresponding loader entry, which currently is a combination of the", "corresponding loader entry, which currently is a combination of the",
"machine id and kernel NVRA, like e.g.:", "machine id and kernel NVRA, like e.g.:",
" `ffffffffffffffffffffffffffffffff-5.6.6-300.fc32.x86_64`", " `ffffffffffffffffffffffffffffffff-5.6.6-300.fc32.x86_64`",
"If `saved_entry` is set it is advisable to set `config.default` to", "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", "`saved` so that any re-creation of the grub configuration by the",
"user will preserve that functionality.", "user will preserve that functionality.",
"Support for \"greenboot\" can be turned on via the `greenboot` option.", "Support for \"greenboot\" can be turned on via the `greenboot` option.",
"Greenboot is the idea of automatically rolling back bad updates,", "Greenboot is the idea of automatically rolling back bad updates,",
"i.e. updates that do not boot successfully. The implementation", "i.e. updates that do not boot successfully. The implementation",
"is split between the boot loader and a user space component.", "is split between the boot loader and a user space component.",
"The latter sets two variables `boot_counter`, which indicates", "The latter sets two variables `boot_counter`, which indicates",
"the maximum number of boot attempts and `boot_success` which", "the maximum number of boot attempts and `boot_success` which",
"tells the boot laoder if a previous boot was successful. The", "tells the boot laoder if a previous boot was successful. The",
"bootloader on the other hand will decrement the counter variable", "bootloader on the other hand will decrement the counter variable",
"and reset the success indicator one.", "and reset the success indicator one.",
"An implementation of the user space component for rpm-ostree is", "An implementation of the user space component for rpm-ostree is",
"called `greenboot`.", "called `greenboot`.",
"Support for ignition (https://github.com/coreos/ignition) can be turned", "Support for ignition (https://github.com/coreos/ignition) can be turned",
"on via the `ignition` option. If enabled, a 'ignition_firstboot' variable", "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.", "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 grub.cfg will then contain the necessary code to detect and source",
"the '/boot/ignition.firstboot' file and configure said 'ignition_firstboot'", "the '/boot/ignition.firstboot' file and configure said 'ignition_firstboot'",
"variable appropriately. See the 'org.osbuild.ignition' stage for more", "variable appropriately. See the 'org.osbuild.ignition' stage for more",
"information on that file." "information on that file."
],
"schema": {
"additionalProperties": false,
"oneOf": [
{
"required": [
"root_fs_uuid"
]
},
{
"required": [
"rootfs"
]
}
], ],
"schema": { "definitions": {
"additionalProperties": false, "uuid": {
"description": "Identify the file system by UUID",
"type": "string",
"oneOf": [ "oneOf": [
{ {
"required": [ "pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"root_fs_uuid" "examples": [
] "9c6ae55b-cf88-45b8-84e8-64990759f39d"
}, ]
{ },
"required": [ {
"rootfs" "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": { "properties": {
"rootfs": { "label": {
"$ref": "#/definitions/filesystem" "description": "Identify the file system by label",
}, "type": "string"
"bootfs": { },
"$ref": "#/definitions/filesystem" "uuid": {
}, "$ref": "#/definitions/uuid"
"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"
}
}
}
} }
},
"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", "summary": "Extract a gzipped file",
"description": [ "description": [
"Buildhost commands used: `gunzip`." "Buildhost commands used: `gunzip`."
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"file" "file"
], ],
"properties": { "properties": {
"file": { "file": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"description": "Unzip here.",
"type": "string"
}
}
} }
}
},
"options": {
"additionalProperties": false,
"required": [
"path"
],
"properties": {
"path": {
"description": "Unzip here.",
"type": "string"
}
}
} }
}
} }

View file

@ -1,40 +1,40 @@
{ {
"summary": "Compress a file using gzip", "summary": "Compress a file using gzip",
"description": [ "description": [
"Buildhost commands used: `gzip`." "Buildhost commands used: `gzip`."
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"file" "file"
], ],
"properties": { "properties": {
"file": { "file": {
"type": "object", "type": "object",
"additionalProperties": true "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
}
}
} }
}
},
"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", "summary": "Set system hostname",
"description": [ "description": [
"Sets system hostname.", "Sets system hostname.",
"Deletes /etc/hostname if present, then runs `systemd-firstboot` from the", "Deletes /etc/hostname if present, then runs `systemd-firstboot` from the",
"buildhost with `--hostname={hostname}`, which checks the validity of the", "buildhost with `--hostname={hostname}`, which checks the validity of the",
"hostname and writes it to /etc/hostname." "hostname and writes it to /etc/hostname."
],
"schema": {
"additionalProperties": false,
"required": [
"hostname"
], ],
"schema": { "properties": {
"additionalProperties": false, "hostname": {
"required": [ "type": "string",
"hostname" "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.", "summary": "Setup ignition so it will be triggered on first boot.",
"description": [ "description": [
"Create the file '/boot/ignition.firstboot' that will be used by grub,", "Create the file '/boot/ignition.firstboot' that will be used by grub,",
"if the necessary ignition support is enabled, to create a variable to", "if the necessary ignition support is enabled, to create a variable to",
"be used in the kernel command line ('ignition_firstboot'). Via this", "be used in the kernel command line ('ignition_firstboot'). Via this",
"variable, if included in the actual kernel command line, the run of", "variable, if included in the actual kernel command line, the run of",
"ignition during early boot can be controlled: if grub detects the", "ignition during early boot can be controlled: if grub detects the",
"aforementioned file to be present it will set 'ignition_firstboot'", "aforementioned file to be present it will set 'ignition_firstboot'",
"to \"ignition.firstboot\" which is the trigger for ignition to run.", "to \"ignition.firstboot\" which is the trigger for ignition to run.",
"The \"ignition-firstboot-complete.service\" will remove said file and", "The \"ignition-firstboot-complete.service\" will remove said file and",
"thus preventing ignition to be run on the next boot.", "thus preventing ignition to be run on the next boot.",
"The `network` option can be used to overwrite the default network", "The `network` option can be used to overwrite the default network",
"configuration, in case that ignition is run." "configuration, in case that ignition is run."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"network": { "network": {
"type": "array", "type": "array",
"description": "Overwrite default network connection", "description": "Overwrite default network connection",
"items": { "items": {
"type": "string" "type": "string"
}
}
} }
}
} }
}
} }

View file

@ -1,19 +1,19 @@
{ {
"summary": "Implant an MD5 checksum in an ISO9660 image", "summary": "Implant an MD5 checksum in an ISO9660 image",
"description": [ "description": [
"This stage is using implantisomd5(1) to implant MD5 checksums into an iso", "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." "image. This is needed for the check media feature used in the installer."
],
"schema": {
"additionalProperties": false,
"required": [
"filename"
], ],
"schema": { "properties": {
"additionalProperties": false, "filename": {
"required": [ "type": "string",
"filename" "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", "summary": "Create an isolinux bootloader",
"description": [], "description": [],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"product", "product",
"kernel" "kernel"
], ],
"properties": { "properties": {
"product": { "product": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"name", "name",
"version" "version"
], ],
"properties": { "properties": {
"name": { "name": {
"type": "string" "type": "string"
}, },
"version": { "version": {
"type": "string" "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"
}
}
}
}
} }
}
}, },
"inputs": { "kernel": {
"type": "object", "type": "object",
"additionalProperties": false, "required": [
"required": [ "dir"
"data" ],
], "properties": {
"properties": { "dir": {
"data": { "type": "string"
"type": "object", },
"additionalProperties": true "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.", "summary": "Add kernel command line parameters to a BLS [1] config either in\nthe tree or in a mount.",
"description": [ "description": [
"[1] https://freedesktop.org/wiki/Specifications/BootLoaderSpec/" "[1] https://freedesktop.org/wiki/Specifications/BootLoaderSpec/"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"kernel_opts" "kernel_opts"
], ],
"properties": { "properties": {
"kernel_opts": { "kernel_opts": {
"description": "Additional kernel command line options", "description": "Additional kernel command line options",
"type": "array", "type": "array",
"items": { "items": {
"description": "A single kernel command line option", "description": "A single kernel command line option",
"type": "string" "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"
}
}
}, },
"devices": { "bootpath": {
"type": "object", "type": "string",
"additionalProperties": true "description": "The mounted location of the boot filesystem tree where the BLS entries will be under ./loader/entries/*.conf",
}, "pattern": "^(mount|tree):///",
"mounts": { "examples": [
"type": "array" "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", "summary": "Configure the kernel command-line parameters",
"description": [ "description": [
"Configures the kernel boot parameters, also known as the kernel", "Configures the kernel boot parameters, also known as the kernel",
"command line.", "command line.",
"https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html" "https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html"
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"root_fs_uuid": { "root_fs_uuid": {
"description": "UUID of the root filesystem image", "description": "UUID of the root filesystem image",
"type": "string", "type": "string",
"oneOf": [ "oneOf": [
{ {
"pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$", "pattern": "^[0-9A-Za-z]{8}(-[0-9A-Za-z]{4}){3}-[0-9A-Za-z]{12}$",
"examples": [ "examples": [
"9c6ae55b-cf88-45b8-84e8-64990759f39d" "9c6ae55b-cf88-45b8-84e8-64990759f39d"
] ]
}, },
{ {
"pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$", "pattern": "^[0-9A-Za-z]{4}-[0-9A-Za-z]{4}$",
"examples": [ "examples": [
"6699-AFB5" "6699-AFB5"
] ]
} }
] ]
}, },
"kernel_opts": { "kernel_opts": {
"description": "Additional kernel boot options", "description": "Additional kernel boot options",
"type": "string", "type": "string",
"default": "" "default": ""
} }
}
} }
} }
}

View file

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

View file

@ -1,22 +1,22 @@
{ {
"summary": "Set system language.", "summary": "Set system language.",
"description": [ "description": [
"Sets the system language to the given `language`, which must be a valid locale", "Sets the system language to the given `language`, which must be a valid locale",
"identifier, like \"en_US.UTF-8\".", "identifier, like \"en_US.UTF-8\".",
"Removes `/etc/locale.conf` and then uses `systemd-firstboot` from the buildhost,", "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", "with the `--locale` flag, which will write a new `/etc/locale.conf` in the",
"target system with `LANG={language}`." "target system with `LANG={language}`."
],
"schema": {
"additionalProperties": false,
"required": [
"language"
], ],
"schema": { "properties": {
"additionalProperties": false, "language": {
"required": [ "type": "string",
"language" "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", "summary": "Run a lorax template script on the tree",
"description": [ "description": [
"This stage can be use to run a lorax template script on the tree.", "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", "The location that is specified in `path` will be interpreted to be",
"relative to `/usr/share/lorax/templates.d` on the build root.", "relative to `/usr/share/lorax/templates.d` on the build root.",
"The use case for this stage is primarily to run the post install", "The use case for this stage is primarily to run the post install",
"scripts to create bootable isos, provided by Lorax. Depending on", "scripts to create bootable isos, provided by Lorax. Depending on",
"the script, `basearch`, `product` or both have to be specified.", "the script, `basearch`, `product` or both have to be specified.",
"The stage uses the `osbuild.utils.lorax` helpers internally, so all", "The stage uses the `osbuild.utils.lorax` helpers internally, so all",
"operations supported by the helpers are supported by this stage.", "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", "NB: This is only a subset of the Lorax ones, i.e. it is missing the",
"commands to create disks and images." "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, "additionalProperties": false,
"required": [
"path"
],
"properties": { "properties": {
"path": { "name": {
"type": "string" "type": "string"
}, },
"basearch": { "version": {
"type": "string", "type": "string"
"default": "x86_64", }
"description": "The basic architecture param to supply to the template" },
}, "libdir": {
"product": { "type": "string",
"type": "object", "default": "lib64"
"additionalProperties": false,
"properties": {
"name": {
"type": "string"
},
"version": {
"type": "string"
}
},
"libdir": {
"type": "string",
"default": "lib64"
}
}
} }
}
} }
}
} }

View file

@ -1,135 +1,135 @@
{ {
"summary": "Create an LUKS2 container via `cryptsetup`.", "summary": "Create an LUKS2 container via `cryptsetup`.",
"description": [ "description": [
"This stage formats the given `device` to be a Linux Unified Key Setup,", "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", "LUKS version 2, container and set the key to be `passphrase`. The uuid",
"of the container must be specified via the coressponding option.", "of the container must be specified via the coressponding option.",
"Use the corresponding `org.osbuild.luks2` device to open the container", "Use the corresponding `org.osbuild.luks2` device to open the container",
"during build.", "during build.",
"Buildhost commands used: `cryptsetup`." "Buildhost commands used: `cryptsetup`."
], ],
"schema_2": { "schema_2": {
"definitions": { "definitions": {
"pbkdf2": { "pbkdf2": {
"description": "pbkdf2 PBKDF parameters", "description": "pbkdf2 PBKDF parameters",
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"method", "method",
"iterations" "iterations"
], ],
"properties": { "properties": {
"method": { "method": {
"enum": [ "enum": [
"pbkdf2" "pbkdf2"
] ]
}, },
"iterations": { "iterations": {
"description": "Iterations cost", "description": "Iterations cost",
"type": "integer", "type": "integer",
"minimum": 1000, "minimum": 1000,
"maximum": 4294967295 "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"
]
}
}
} }
},
"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.", "summary": "Removes the supplied passphrase from the LUKS device.",
"description": [ "description": [
"Buildhost commands used: `cryptsetup`." "Buildhost commands used: `cryptsetup`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
},
"options": {
"additionalProperties": false,
"required": [
"passphrase"
],
"properties": {
"passphrase": {
"description": "Passphrase to remove",
"type": "string"
}
}
} }
}
},
"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", "summary": "Create LVM2 physical volumes, volume groups and logical volumes",
"description": [ "description": [
"For the logical volumes `name` and `size` need to be provided.", "For the logical volumes `name` and `size` need to be provided.",
"NB: The name of the volume group is chosen at random and should", "NB: The name of the volume group is chosen at random and should",
"be changed via the `org.osbuild.lvm2.metadata` stage after the", "be changed via the `org.osbuild.lvm2.metadata` stage after the",
"image has been completely assembled." "image has been completely assembled."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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]?"
}
}
}
}
}
} }
}
},
"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", "summary": "Set LVM2 volume group metadata",
"description": [ "description": [
"This stage allows you to modify the LVM2 volume group", "This stage allows you to modify the LVM2 volume group",
"metadata. This data describes various properties about", "metadata. This data describes various properties about",
"the volume group, physical volume and logical volumes.", "the volume group, physical volume and logical volumes.",
"Most importantly it contains the volume group name, so", "Most importantly it contains the volume group name, so",
"this stage can be used to rename the volume group." "this stage can be used to rename the volume group."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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+_.-]*"
}
}
} }
}
},
"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", "summary": "Deal with /etc/machine-id",
"description": [ "description": [
"Explicitly define the state to /etc/machine-id. The possible values for", "Explicitly define the state to /etc/machine-id. The possible values for",
"first-boot are:", "first-boot are:",
"- yes: This sets the machine-id to \"uninitialized\" and this will trigger", "- yes: This sets the machine-id to \"uninitialized\" and this will trigger",
" ContidionFirstBoot in systemd", " ContidionFirstBoot in systemd",
"- no: This creates an empty machine-id. It will trigger the generation", "- no: This creates an empty machine-id. It will trigger the generation",
" of a new machine-id but *not* the ConditionFirstBoot", " of a new machine-id but *not* the ConditionFirstBoot",
"- preserve: Leave the existing machine-id in place. Not having a machine-id", "- preserve: Leave the existing machine-id in place. Not having a machine-id",
" with that set is an error." " with that set is an error."
],
"schema": {
"additionalProperties": false,
"required": [
"first-boot"
], ],
"schema": { "properties": {
"additionalProperties": false, "first-boot": {
"required": [ "enum": [
"first-boot" "yes",
"no",
"preserve"
], ],
"properties": { "description": "Set the first boot behavior of the /etc/machine-id file in the tree"
"first-boot": { }
"enum": [
"yes",
"no",
"preserve"
],
"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.", "summary": "Create directories within the tree.",
"description": [ "description": [
"Can create one or more directories, optionally also the", "Can create one or more directories, optionally also the",
"intermediate directories. The stage can gracefully handle", "intermediate directories. The stage can gracefully handle",
"directories that already exist.", "directories that already exist.",
"Please note that the stage won't change the mode of existing", "Please note that the stage won't change the mode of existing",
"directories. If you want to change the mode of an existing", "directories. If you want to change the mode of an existing",
"directory, you need to use the `org.osbuild.chmod` stage.", "directory, you need to use the `org.osbuild.chmod` stage.",
"Mode is applied only to newly created directories and umask", "Mode is applied only to newly created directories and umask",
"value is taken into account.", "value is taken into account.",
"In the initial version of this stage, there was a bug that caused", "In the initial version of this stage, there was a bug that caused",
"the stage to accept relative paths. This behaviour is kept for", "the stage to accept relative paths. This behaviour is kept for",
"backward compatibility, thus the following paths are equal:", "backward compatibility, thus the following paths are equal:",
"/path/to/directory", "/path/to/directory",
"path/to/directory", "path/to/directory",
"However, using relative paths is strongly discouraged." "However, using relative paths is strongly discouraged."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false,
"properties": {
"paths": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [
"path"
],
"properties": { "properties": {
"paths": { "path": {
"type": "array", "type": "string",
"additionalItems": false, "pattern": "^\\/?(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
"items": { },
"type": "object", "mode": {
"additionalProperties": false, "type": "number",
"required": [ "description": "Numeric octal mode"
"path" },
], "parents": {
"properties": { "type": "boolean",
"path": { "description": "Create intermediate directories",
"type": "string", "default": false
"pattern": "^\\/?(?!\\.\\.)((?!\\/\\.\\.\\/).)+$" },
}, "exist_ok": {
"mode": { "type": "boolean",
"type": "number", "description": "Do not fail if the directory already exists",
"description": "Numeric octal mode" "default": false
}, }
"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)", "summary": "Construct an btrfs file-system via mkfs.btrfs(8)",
"description": [ "description": [
"Construct a btrfs file-system with the given options at the device", "Construct a btrfs file-system with the given options at the device",
"specified via `device`.", "specified via `device`.",
"Buildhost commands used: `mkfs.btrfs`." "Buildhost commands used: `mkfs.btrfs`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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"
]
}
}
} }
}
},
"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)", "summary": "Construct an ext4 file-system via mkfs.ext4(8)",
"description": [ "description": [
"Construct a ext4 file-system with the given options at the device", "Construct a ext4 file-system with the given options at the device",
"specified via `device`.", "specified via `device`.",
"Buildhost commands used: `mke2fs`." "Buildhost commands used: `mke2fs`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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"
}
}
} }
}
},
"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)", "summary": "Construct an FAT file-system via mkfs.fat(8)",
"description": [ "description": [
"Construct a FAT file-system with the given options at the device", "Construct a FAT file-system with the given options at the device",
"specified via `device`.", "specified via `device`.",
"NB: `mkfs.fat` is called via `-I` to ignore existing partitions", "NB: `mkfs.fat` is called via `-I` to ignore existing partitions",
"on the device. This should also prevent the situation where", "on the device. This should also prevent the situation where",
"the partition table information on a (loop-)device is outdated.", "the partition table information on a (loop-)device is outdated.",
"Buildhost commands used: `mkfs.fat`." "Buildhost commands used: `mkfs.fat`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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"
}
}
}
}
} }
}
},
"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)", "summary": "Construct an XFS file-system via mkfs.xfs(8)",
"description": [ "description": [
"Construct a XFS file-system with the given options at the device", "Construct a XFS file-system with the given options at the device",
"specified via `device`.", "specified via `device`.",
"Buildhost commands used: `mkfs.xfs`." "Buildhost commands used: `mkfs.xfs`."
], ],
"schema_2": { "schema_2": {
"devices": { "devices": {
"type": "object", "type": "object",
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"device" "device"
], ],
"properties": { "properties": {
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": true "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
}
}
} }
}
},
"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", "summary": "Run mkinitcpio for Arch based distributions",
"description": [ "description": [
"WARNING: This stage uses chroot() to run the `mkinitcpio` binary", "WARNING: This stage uses chroot() to run the `mkinitcpio` binary",
"from inside the tree." "from inside the tree."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"preset": { "preset": {
"type": "string", "type": "string",
"description": "mkinitcpio preset file to use", "description": "mkinitcpio preset file to use",
"default": "linux" "default": "linux"
} }
}
} }
}
} }

View file

@ -1,92 +1,92 @@
{ {
"summary": "Configure modprobe", "summary": "Configure modprobe",
"description": [ "description": [
"The 'config' option allows the creation of a `.conf` configuration", "The 'config' option allows the creation of a `.conf` configuration",
"file for modprobe in `/usr/lib/modprobe.d` with the name `filename`.", "file for modprobe in `/usr/lib/modprobe.d` with the name `filename`.",
"Currently supported \"command\" objects are:", "Currently supported \"command\" objects are:",
" - for 'blacklist' command", " - for 'blacklist' command",
" - 'command' property value: \"blacklist\"", " - 'command' property value: \"blacklist\"",
" - 'modulename' property value: a non-empty string with the name of a module", " - 'modulename' property value: a non-empty string with the name of a module",
" - for 'install' command", " - for 'install' command",
" - 'command' property value: \"install\"", " - 'command' property value: \"install\"",
" - 'modulename' property value: a non-empty string with the name of a module", " - 'modulename' property value: a non-empty string with the name of a module",
" - 'cmdline' property value: a non-empty string representing the command to", " - 'cmdline' property value: a non-empty string representing the command to",
" run instead of inserting the specified module." " 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, "additionalProperties": false,
"required": [ "type": "array",
"commands", "description": "Array of modprobe commands",
"filename" "minLength": 1,
], "items": {
"properties": { "anyOf": [
"filename": { {
"type": "string", "additionalProperties": false,
"description": "Name of the modprobe configuration file.", "type": "object",
"pattern": "^[\\w.-]{1,250}\\.conf$" "description": "'blacklist' command",
}, "required": [
"commands": { "command",
"additionalProperties": false, "modulename"
"type": "array", ],
"description": "Array of modprobe commands", "properties": {
"minLength": 1, "command": {
"items": { "type": "string",
"anyOf": [ "enum": [
{ "blacklist"
"additionalProperties": false, ],
"type": "object", "description": "modprobe command."
"description": "'blacklist' command", },
"required": [ "modulename": {
"command", "type": "string",
"modulename" "minLength": 1,
], "description": "name of the module to blacklist."
"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."
}
}
}
]
} }
}
},
{
"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", "summary": "Write nginx configuration",
"description": [], "description": [],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"path": { "path": {
"type": "string", "type": "string",
"description": "Config file location", "description": "Config file location",
"default": "/etc/nginx/nginx.conf", "default": "/etc/nginx/nginx.conf",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$" "pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}, },
"config": { "config": {
"type": "object", "type": "object",
"properties": { "properties": {
"listen": { "listen": {
"type": "string", "type": "string",
"description": "The address and/or port on which the server will accept requests", "description": "The address and/or port on which the server will accept requests",
"default": "*:80" "default": "*:80"
}, },
"root": { "root": {
"type": "string", "type": "string",
"description": "The root directory for requests", "description": "The root directory for requests",
"default": "/usr/share/nginx/html" "default": "/usr/share/nginx/html"
}, },
"pid": { "pid": {
"type": "string", "type": "string",
"description": "File that will store the process ID of the main process", "description": "File that will store the process ID of the main process",
"default": "/run/nginx.pid" "default": "/run/nginx.pid"
}, },
"daemon": { "daemon": {
"type": "boolean", "type": "boolean",
"description": "Whether nginx should become a daemon", "description": "Whether nginx should become a daemon",
"default": true "default": true
}
}
}
} }
}
} }
}
} }
}
} }

View file

@ -1,139 +1,139 @@
{ {
"summary": "Create NetworkManager configuration files.", "summary": "Create NetworkManager configuration files.",
"description": [ "description": [
"This stages allows to create NetworkManager configuration files in the", "This stages allows to create NetworkManager configuration files in the",
"location specified via `path` with the `settings` provided. Only a", "location specified via `path` with the `settings` provided. Only a",
"subset of the all options are currently supported.", "subset of the all options are currently supported.",
"The stage will use `true` and `false` for boolean values and `,` as", "The stage will use `true` and `false` for boolean values and `,` as",
"list separator.", "list separator.",
"NetworkManger looks in the following locations for configuration files:", "NetworkManger looks in the following locations for configuration files:",
" - /etc/NetworkManager/NetworkManager.conf", " - /etc/NetworkManager/NetworkManager.conf",
" - /etc/NetworkManager/conf.d/name.conf", " - /etc/NetworkManager/conf.d/name.conf",
" - /usr/lib/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:", " and also in the following locations that very likely should not be used:",
" - /run/NetworkManager/conf.d/name.conf", " - /run/NetworkManager/conf.d/name.conf",
" -/var/lib/NetworkManager/NetworkManager-intern.conf" " -/var/lib/NetworkManager/NetworkManager-intern.conf"
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"device-list": { "device-list": {
"type": "array", "type": "array",
"minItems": 1, "minItems": 1,
"items": { "items": {
"type": "string" "type": "string"
} }
}, },
"str-array": { "str-array": {
"type": "array", "type": "array",
"minItems": 1, "minItems": 1,
"items": { "items": {
"type": "string" "type": "string"
} }
}, },
"device": { "device": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"managed": { "managed": {
"type": "boolean" "type": "boolean"
}, },
"wifi.scan-rand-mac-address": { "wifi.scan-rand-mac-address": {
"type": "boolean" "type": "boolean"
} }
} }
}, },
"global-dns-domain": { "global-dns-domain": {
"type": "object", "type": "object",
"additionalProperties": false,
"required": [
"servers"
],
"properties": {
"servers": {
"type": "array",
"minItems": 1,
"items": {
"type": "string"
}
}
}
}
},
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"path", "servers"
"settings"
], ],
"properties": { "properties": {
"path": { "servers": {
"type": "string" "type": "array",
}, "minItems": 1,
"settings": { "items": {
"type": "object", "type": "string"
"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"
}
}
}
}
} }
}
} }
}
},
"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", "summary": "Configure Network Manager Connections",
"description": [ "description": [
"This stage allows to create system connections for network manager.", "This stage allows to create system connections for network manager.",
"Currently the connections are created in directory for shipped", "Currently the connections are created in directory for shipped",
"system connections, `/usr/lib/NetworkManager/system-connections`,", "system connections, `/usr/lib/NetworkManager/system-connections`,",
"if `filename` is used. Otherwise, `path` can be used to create", "if `filename` is used. Otherwise, `path` can be used to create",
"connections in any directory with any suffix.", "connections in any directory with any suffix.",
"Currently only configuring \"ethernet\" connections is supported,", "Currently only configuring \"ethernet\" connections is supported,",
"and here only a subset of the available options. See the schema", "and here only a subset of the available options. See the schema",
"for more information." "for more information."
], ],
"schema": { "schema": {
"definitions": { "definitions": {
"connection": { "connection": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"id", "id",
"uuid", "uuid",
"type" "type"
], ],
"type": "object", "type": "object",
"properties": { "properties": {
"uuid": { "uuid": {
"type": "string" "type": "string"
}, },
"id": { "id": {
"type": "string" "type": "string"
}, },
"type": { "type": {
"type": "string" "type": "string"
}, },
"autoconnect": { "autoconnect": {
"type": "boolean" "type": "boolean"
}, },
"interface-name": { "interface-name": {
"type": "string" "type": "string"
}, },
"autoconnect-priority": { "autoconnect-priority": {
"type": "number" "type": "number"
} }
} }
}, },
"ethernet": { "ethernet": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"connection" "connection"
], ],
"type": "object", "type": "object",
"properties": { "properties": {
"connection": { "connection": {
"allOf": [ "allOf": [
{ {
"$ref": "#/definitions/connection" "$ref": "#/definitions/connection"
}, },
{ {
"$ref": "#/definitions/802-3-ethernet-connection" "$ref": "#/definitions/802-3-ethernet-connection"
} }
] ]
}, },
"ipv4": { "ipv4": {
"$ref": "#/definitions/ipv4" "$ref": "#/definitions/ipv4"
}, },
"ipv6": { "ipv6": {
"$ref": "#/definitions/ipv6" "$ref": "#/definitions/ipv6"
}, },
"ethernet": { "ethernet": {
"$ref": "#/definitions/802-3-ethernet" "$ref": "#/definitions/802-3-ethernet"
} }
} }
}, },
"802-3-ethernet-connection": { "802-3-ethernet-connection": {
"additionalProperties": true, "additionalProperties": true,
"required": [ "required": [
"type" "type"
], ],
"type": "object", "type": "object",
"properties": { "properties": {
"type": { "type": {
"enum": [ "enum": [
"802-3-ethernet", "802-3-ethernet",
"ethernet" "ethernet"
] ]
} }
} }
}, },
"ipv4": { "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"
}
}
}
},
"oneOf": [ "oneOf": [
{ {
"additionalProperties": false, "$ref": "#/definitions/ipv4-ignore"
"required": [ },
"filename", {
"settings" "$ref": "#/definitions/ipv4-auto"
], },
"properties": { {
"filename": { "$ref": "#/definitions/ipv4-manual"
"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"
}
]
}
}
}
] ]
} },
"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", "summary": "Do Nothing",
"description": [ "description": [
"No-op stage. Prints a JSON dump of the options passed into this stage and", "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." "leaves the tree untouched. Useful for testing, debugging, and wasting time."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": true "additionalProperties": true
}, },
"devices": { "devices": {
"additionalProperties": true "additionalProperties": true
}, },
"inputs": { "inputs": {
"additionalProperties": true "additionalProperties": true
}, },
"mounts": { "mounts": {
"additionalProperties": true "additionalProperties": true
}
} }
}
} }

View file

@ -1,148 +1,148 @@
{ {
"summary": "Assemble an OCI image archive", "summary": "Assemble an OCI image archive",
"description": [ "description": [
"Assemble an Open Container Initiative[1] image[2] archive, i.e. a", "Assemble an Open Container Initiative[1] image[2] archive, i.e. a",
"tarball whose contents is in the OCI image layout.", "tarball whose contents is in the OCI image layout.",
"The content of the container will consist of the base layer provided", "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", "via the `base` layer. On top of that further inputs provided via the",
"`layer.X` inputs that are sorted in ascending order.", "`layer.X` inputs that are sorted in ascending order.",
"Currently the only required options are `filename` and `architecture`.", "Currently the only required options are `filename` and `architecture`.",
"The execution parameters for the image, which then should form the base", "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", "for the container, can be given via `config`. They have the same format",
"as the `config` option for the \"OCI Image Configuration\" (see [2]),", "as the `config` option for the \"OCI Image Configuration\" (see [2]),",
"except those that map to the \"Go type map[string]struct{}\", which are", "except those that map to the \"Go type map[string]struct{}\", which are",
"represented as array of strings.", "represented as array of strings.",
"Manifest annotations can be included via the `annotation` options. Any", "Manifest annotations can be included via the `annotation` options. Any",
"`key`, `value` pair is allowed, with the exception of the pre-defined", "`key`, `value` pair is allowed, with the exception of the pre-defined",
"`org.osbuild` and `org.opencontainer` namespaces.", "`org.osbuild` and `org.opencontainer` namespaces.",
"Specific annotations can be used to indicate that a container contains", "Specific annotations can be used to indicate that a container contains",
"an OSTree commit via the following:", "an OSTree commit via the following:",
" - `org.osbuild.layer`: The layer containing the OSTree repository", " - `org.osbuild.layer`: The layer containing the OSTree repository",
" - `org.osbuild.repo`: Path inside the container to the repository", " - `org.osbuild.repo`: Path inside the container to the repository",
" - `org.osbuild.ref`: OSTree reference of the commit inside the repo", " - `org.osbuild.ref`: OSTree reference of the commit inside the repo",
"The `org.osbuild.layer` value can either bey a index (starting at 0),", "The `org.osbuild.layer` value can either bey a index (starting at 0),",
"or a digest in the form of <algorithm>:<checksum>.", "or a digest in the form of <algorithm>:<checksum>.",
"The final resulting tarball, aka a \"oci-archive\", can be imported via", "The final resulting tarball, aka a \"oci-archive\", can be imported via",
"podman[3] with `podman pull oci-archive:<archive>`.", "podman[3] with `podman pull oci-archive:<archive>`.",
"[1] https://www.opencontainers.org/", "[1] https://www.opencontainers.org/",
"[2] https://github.com/opencontainers/image-spec/", "[2] https://github.com/opencontainers/image-spec/",
"[3] https://podman.io/" "[3] https://podman.io/"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"architecture", "architecture",
"filename" "filename"
], ],
"properties": { "properties": {
"architecture": { "architecture": {
"description": "The CPU architecture of the image", "description": "The CPU architecture of the image",
"type": "string" "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"
}
}
}
}
}, },
"inputs": { "filename": {
"type": "object", "description": "Resulting image filename",
"additionalProperties": false, "type": "string"
"required": [ },
"base" "config": {
], "description": "The execution parameters",
"properties": { "type": "object",
"base": { "additionalProperties": false,
"type": "object", "properties": {
"additionalProperties": true "Cmd": {
} "type": "array",
"default": [
"sh"
],
"items": {
"type": "string"
}
}, },
"patternProperties": { "Entrypoint": {
"layer\\.[1-9]\\d*": { "type": "array",
"type": "object", "items": {
"additionalProperties": true "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", "summary": "Execute oscap autotailor",
"description": [ "description": [
"The autotailor stage produces a tailoring file that the OpenSCAP scanner can use to scan", "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", "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", "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.", "generates and xml diff between the user provided overrides and the base profile.",
"Notes:", "Notes:",
" - requires `openscap-utils` package in the buildroot." " - 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, "additionalProperties": false,
"required": [ "required": [
"filepath", "profile_id",
"config" "datastream",
"new_profile"
], ],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": { "properties": {
"filepath": { "profile_id": {
"type": "string", "type": "string",
"description": "Filename and path to where the tailoring file will be saved" "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": { "description": "The rules to select in addition to the base OpenSCAP profile"
"additionalProperties": false, },
"required": [ "unselected": {
"profile_id", "type": "array",
"datastream", "items": {
"new_profile" "type": "string"
], },
"type": "object", "description": "The rules to deselect from the base OpenSCAP profile"
"description": "OpenSCAP configuration variables", },
"properties": { "overrides": {
"profile_id": { "type": "array",
"type": "string", "items": {
"description": "The base OpenSCAP profile" "type": "object",
}, "required": [
"datastream": { "var",
"type": "string", "value"
"description": "The path to the datastream file" ],
}, "properties": {
"new_profile": { "var": {
"type": "string", "type": "string"
"description": "The name of the new customized OpenSCAP profile" },
}, "value": {
"selected": { "type": [
"type": "array", "string",
"items": { "integer"
"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 variables to override in the base OpenSCAP profile"
}
} }
}
} }
}
} }

View file

@ -1,100 +1,100 @@
{ {
"summary": "Execute oscap remediation", "summary": "Execute oscap remediation",
"description": [ "description": [
"The OpenSCAP scanner can be run on the image tree and the remediation can be carried", "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", "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 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`", "The stage generates an html report and xml results file both saved to the `data_dir`",
"directory. It defaults to `/root` if not configured.", "directory. It defaults to `/root` if not configured.",
"[1] https://github.com/OpenSCAP/openscap/blob/maint-1.3/docs/manual/manual.adoc#remediating-system", "[1] https://github.com/OpenSCAP/openscap/blob/maint-1.3/docs/manual/manual.adoc#remediating-system",
"Buildhost commands used: `chroot`, `xz`." "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, "additionalProperties": false,
"required": [ "required": [
"config" "profile_id",
"datastream"
], ],
"type": "object",
"description": "OpenSCAP configuration variables",
"properties": { "properties": {
"data_dir": { "profile_id": {
"type": "string", "type": "string",
"default": "/root", "description": "The SCAP (XCCDF) profile id"
"description": "Path to directory where OpenSCAP reports and results should be saved" },
}, "datastream": {
"config": { "type": "string",
"additionalProperties": false, "description": "The path to the data stream file"
"required": [ },
"profile_id", "datastream_id": {
"datastream" "type": "string",
], "description": "The data stream id"
"type": "object", },
"description": "OpenSCAP configuration variables", "xccdf_id": {
"properties": { "type": "string",
"profile_id": { "description": "The XCCDF id"
"type": "string", },
"description": "The SCAP (XCCDF) profile id" "benchmark_id": {
}, "type": "string",
"datastream": { "description": "The benchmark id"
"type": "string", },
"description": "The path to the data stream file" "tailoring": {
}, "type": "string",
"datastream_id": { "description": "The path to the custom tailoring file"
"type": "string", },
"description": "The data stream id" "tailoring_id": {
}, "type": "string",
"xccdf_id": { "description": "The tailoring id"
"type": "string", },
"description": "The XCCDF id" "arf_results": {
}, "type": "string",
"benchmark_id": { "description": "Filename for storing the ARF results file"
"type": "string", },
"description": "The benchmark id" "xml_results": {
}, "type": "string",
"tailoring": { "description": "Filename for storing the ARF results file (synonym for arf_results)"
"type": "string", },
"description": "The path to the custom tailoring file" "xccdf_results": {
}, "type": "string",
"tailoring_id": { "default": "oscap_eval_xccdf_results.xml",
"type": "string", "description": "Filename for storing the XCCDF results file"
"description": "The tailoring id" },
}, "html_report": {
"arf_results": { "type": "string",
"type": "string", "description": "Filename for saving the final HTML report"
"description": "Filename for storing the ARF results file" },
}, "verbose_log": {
"xml_results": { "type": "string",
"type": "string", "description": "Filename for verbose error messages"
"description": "Filename for storing the ARF results file (synonym for arf_results)" },
}, "verbose_level": {
"xccdf_results": { "type": "string",
"type": "string", "enum": [
"default": "oscap_eval_xccdf_results.xml", "DEVEL",
"description": "Filename for storing the XCCDF results file" "INFO",
}, "WARNING",
"html_report": { "ERROR"
"type": "string", ],
"description": "Filename for saving the final HTML report" "description": "The verbosity level for the log messages"
}, },
"verbose_log": { "compress_results": {
"type": "string", "type": "boolean",
"description": "Filename for verbose error messages" "default": false,
}, "description": "Compress ARF and XCCDF results file(s) with xz"
"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.", "summary": "Create aleph version file for the deployment.",
"description": [], "description": [],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"deployment" "deployment"
], ],
"properties": { "properties": {
"coreos_compat": { "coreos_compat": {
"description": "boolean to allow for CoreOS aleph version backwards compatibility", "description": "boolean to allow for CoreOS aleph version backwards compatibility",
"type": "boolean" "type": "boolean"
}, },
"deployment": { "deployment": {
"additionalProperties": false, "additionalProperties": false,
"oneOf": [ "oneOf": [
{ {
"properties": { "properties": {
"default": { "default": {
"enum": [ "enum": [
false 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
}
}
} }
},
"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", "summary": "Assemble a file system tree into a ostree commit",
"description": [ "description": [
"Needs a file system tree that is already conforming to the ostree", "Needs a file system tree that is already conforming to the ostree",
"system layout[1], specified via the `tree` input and commits it", "system layout[1], specified via the `tree` input and commits it",
"to a repository. The repository must have been created at `/repo`.", "to a repository. The repository must have been created at `/repo`.",
"Additional metadata is stored in `/compose.json` which contains", "Additional metadata is stored in `/compose.json` which contains",
"the commit compose information. This is also returned via the", "the commit compose information. This is also returned via the",
"metadata API to osbuild.", "metadata API to osbuild.",
"[1] https://ostree.readthedocs.io/en/stable/manual/adapting-existing/" "[1] https://ostree.readthedocs.io/en/stable/manual/adapting-existing/"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN", "CAP_MAC_ADMIN",
"CAP_NET_ADMIN", "CAP_NET_ADMIN",
"CAP_SYS_PTRACE" "CAP_SYS_PTRACE"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"ref" "ref"
], ],
"properties": { "properties": {
"ref": { "ref": {
"description": "OStree ref to create for the commit", "description": "OStree ref to create for the commit",
"type": "string", "type": "string",
"default": "" "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
}
}
}, },
"inputs": { "os_version": {
"type": "object", "description": "Set the version of the OS as commit metadata",
"additionalProperties": false, "type": "string"
"required": [ },
"tree" "parent": {
], "description": "commit id of the parent commit",
"properties": { "type": "string"
"tree": { },
"type": "object", "selinux-label-version": {
"additionalProperties": true "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", "summary": "Change OSTree configuration",
"description": [ "description": [
"Change the configuration for an OSTree repository.", "Change the configuration for an OSTree repository.",
"Currently only the following values are supported:", "Currently only the following values are supported:",
" - `sysroot.readonly`", " - `sysroot.readonly`",
" - `sysroot.bootloader`", " - `sysroot.bootloader`",
"See `ostree.repo-config(5)` for more information." "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, "additionalProperties": false,
"required": [ "description": "OSTree configuration groups",
"repo"
],
"properties": { "properties": {
"repo": { "sysroot": {
"description": "Location of the OSTree repo.", "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" "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", "summary": "Deploy an OStree commit",
"description": [ "description": [
"Create an OSTree deployment[1] for a given container image input" "Create an OSTree deployment[1] for a given container image input"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"osname", "osname",
"target_imgref" "target_imgref"
], ],
"properties": { "properties": {
"mounts": { "mounts": {
"description": "Mount points of the final file system", "description": "Mount points of the final file system",
"type": "array", "type": "array",
"items": { "items": {
"description": "Description of one mount point", "description": "Description of one mount point",
"type": "string" "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"
}
}
}
}
}, },
"inputs": { "osname": {
"type": "object", "description": "Name of the stateroot to be used in the deployment",
"additionalProperties": false, "type": "string"
"required": [ },
"images" "kernel_opts": {
], "description": "Additional kernel command line options",
"properties": { "type": "array",
"images": { "items": {
"type": "object", "description": "A single kernel command line option",
"description": "Container Image to deploy", "type": "string"
"additionalProperties": true }
} },
"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", "summary": "Deploy an OStree commit",
"description": [ "description": [
"Create an OSTree deployment[1] for a given ref.", "Create an OSTree deployment[1] for a given ref.",
"Since OStree internally uses a hardlink farm to create the file system tree", "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", "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", "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", "across file systems and therefore the boundaries need to be known when doing",
"the deployment.", "the deployment.",
"Creating a deployment also entails generating the Boot Loader Specification", "Creating a deployment also entails generating the Boot Loader Specification",
"entries to boot the system, which contain this the kernel command line.", "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 `rootfs` option can be used to indicate the root file system, containing",
"the sysroot and the deployments. Additional kernel options can be passed via", "the sysroot and the deployments. Additional kernel options can be passed via",
"`kernel_opts`.", "`kernel_opts`.",
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/" "[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"osname" "osname"
], ],
"properties": { "properties": {
"mounts": { "mounts": {
"description": "Mount points of the final file system", "description": "Mount points of the final file system",
"type": "array", "type": "array",
"items": { "items": {
"description": "Description of one mount point", "description": "Description of one mount point",
"type": "string" "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"
}
}
}
}
}, },
"inputs": { "osname": {
"type": "object", "description": "Name of the stateroot to be used in the deployment",
"additionalProperties": false, "type": "string"
"required": [ },
"commits" "kernel_opts": {
], "description": "Additional kernel command line options",
"properties": { "type": "array",
"commits": { "items": {
"type": "object", "description": "A single kernel command line option",
"description": "OStree commit to deploy", "type": "string"
"additionalProperties": true }
} },
"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", "summary": "Wrap OSTree commits into a oci container image",
"description": [ "description": [
"For more information see [1].", "For more information see [1].",
"[1] https://github.com/ostreedev/ostree-rs-ext#module-container-bridging-between-ostree-and-ocidocker-images" "[1] https://github.com/ostreedev/ostree-rs-ext#module-container-bridging-between-ostree-and-ocidocker-images"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"filename" "filename"
], ],
"properties": { "properties": {
"filename": { "filename": {
"description": "Resulting image filename", "description": "Resulting image filename",
"type": "string" "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"
}
}
}, },
"inputs": { "cmd": {
"type": "object", "type": "array",
"additionalProperties": false, "items": {
"required": [ "type": "string"
"commit" }
], },
"properties": { "copymeta": {
"commit": { "description": "Propagate an OSTree commit metadata key to container label",
"type": "object", "type": "array",
"additionalProperties": true "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.", "summary": "Pre-populate /var directory for a given stateroot.",
"description": [], "description": [],
"schema": { "schema": {
"additionalProperties": false,
"required": [
"deployment"
],
"properties": {
"deployment": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "oneOf": [
"deployment" {
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
], ],
"properties": { "properties": {
"deployment": { "osname": {
"additionalProperties": false, "description": "Name of the stateroot to be used in the deployment",
"oneOf": [ "type": "string"
{ },
"properties": { "ref": {
"default": { "description": "OStree ref to create and use for deployment",
"enum": [ "type": "string"
false },
] "serial": {
} "description": "The deployment serial (usually '0')",
}, "type": "number",
"required": [ "default": 0
"osname", },
"ref" "default": {
] "description": "Find and use the default ostree deployment",
}, "type": "boolean",
{ "default": false
"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,32 +1,32 @@
{ {
"summary": "Generate ed25519 public/private keypair in format used by `ostree sign`.", "summary": "Generate ed25519 public/private keypair in format used by `ostree sign`.",
"description": [ "description": [
"This is used with the org.osbuild.ostree.sign stage, and these can be", "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", "used with composefs to tie an initrd and ostree commit together. See",
"https://ostreedev.github.io/ostree/composefs/#signatures for details", "https://ostreedev.github.io/ostree/composefs/#signatures for details",
"of how this works.", "of how this works.",
"Notes:", "Notes:",
" - Requires 'openssl' in the buildroot." " - Requires 'openssl' in the buildroot."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"publickey", "publickey",
"secretkey" "secretkey"
], ],
"properties": { "properties": {
"publickey": { "publickey": {
"description": "Path of generated public key", "description": "Path of generated public key",
"type": "string", "type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$" "pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}, },
"secretkey": { "secretkey": {
"description": "Path of generated secret key", "description": "Path of generated secret key",
"type": "string", "type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$" "pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
} }
}
} }
}
} }

View file

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

View file

@ -1,29 +1,29 @@
{ {
"summary": "Create an ostree repository", "summary": "Create an ostree repository",
"description": [ "description": [
"Uses `ostree init` to create an ostree repository. The", "Uses `ostree init` to create an ostree repository. The",
"mode and location can be specified via the `mode` and", "mode and location can be specified via the `mode` and",
"`path` option.", "`path` option.",
"See the ostree-init(1) man page for more details." "See the ostree-init(1) man page for more details."
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"mode": { "mode": {
"description": "The mode to initialize the repo in.", "description": "The mode to initialize the repo in.",
"enum": [ "enum": [
"bare", "bare",
"bare-user", "bare-user",
"bare-user-only", "bare-user-only",
"archive" "archive"
], ],
"default": "archive" "default": "archive"
}, },
"path": { "path": {
"description": "Location where to create the repo at.", "description": "Location where to create the repo at.",
"type": "string", "type": "string",
"default": "/repo" "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.", "summary": "WARNING: This stage is deprecated and shouldn't be used when defining new\n pipelines. Please use the individual ostree.* stages instead.",
"description": [ "description": [
"Initialize the sysroot and pull and deploy an OStree commit", "Initialize the sysroot and pull and deploy an OStree commit",
"Initializes a clean ostree based system root, pulls the given `commit` and", "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]).", "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", "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", "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", "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", "across file systems and therefore the boundaries need to be known when doing",
"the deployment.", "the deployment.",
"Creating a deployment also entails generating the Boot Loader Specification", "Creating a deployment also entails generating the Boot Loader Specification",
"entries to boot the system, which contain this the kernel command line.", "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 `rootfs` option can be used to indicate the root file system, containing",
"the sysroot and the deployments. Additional kernel options can be passed via", "the sysroot and the deployments. Additional kernel options can be passed via",
"`kernel_opts`.", "`kernel_opts`.",
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/" "[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
], ],
"schema_2": { "schema_2": {
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"commit" "commit"
], ],
"properties": { "properties": {
"commit": { "commit": {
"type": "object", "type": "object",
"additionalProperties": true "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
}
}
} }
}
},
"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", "summary": "Initialize a new stateroot for a new OS",
"description": [ "description": [
"Initializes a new stateroot (see [1]) for the OS with the", "Initializes a new stateroot (see [1]) for the OS with the",
"name `osname`.", "name `osname`.",
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/" "[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
],
"schema": {
"required": [
"osname"
], ],
"schema": { "properties": {
"required": [ "osname": {
"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", "summary": "Populate buildroot with /etc/passwd and /etc/group from an OSTree checkout",
"description": [ "description": [
"Using the OSTree checkout provided as in input, copy /usr/etc/passwd and", "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", "/usr/lib/passwd, merge them and store the result into /etc/passwd in the",
"buildroot. Do the same for /etc/group file.", "buildroot. Do the same for /etc/group file.",
"The use case for this stage is when one wants to preserve UIDs and GIDs", "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", "which might change when the system is build from scratch. Creating these",
"files before any RPMs (or other packages) are installed will prevent changes", "files before any RPMs (or other packages) are installed will prevent changes",
"in UIDs and GIDs." "in UIDs and GIDs."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false "additionalProperties": false
}, },
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"commits" "commits"
], ],
"properties": { "properties": {
"commits": { "commits": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
} }
}
} }
}
} }

View file

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

View file

@ -1,60 +1,60 @@
{ {
"summary": "Transforms the tree to an ostree layout", "summary": "Transforms the tree to an ostree layout",
"description": [ "description": [
"Creates a basic fs tree in OSTree layout[1] from scratch and then picks", "Creates a basic fs tree in OSTree layout[1] from scratch and then picks",
"the relevenat bits from the tree and moves them over.", "the relevenat bits from the tree and moves them over.",
"Then uses `rpm-ostree compose` to transform a \"normal\" file system tree", "Then uses `rpm-ostree compose` to transform a \"normal\" file system tree",
"into an OSTree conforming layout (see [1]). Among other things the main", "into an OSTree conforming layout (see [1]). Among other things the main",
"steps are:", "steps are:",
" - moves /etc to /usr/etc", " - moves /etc to /usr/etc",
" - move /boot to /usr/lib/ostree-boot", " - move /boot to /usr/lib/ostree-boot",
" - potentially moving /var/lib/rpm", " - potentially moving /var/lib/rpm",
" - re-creates the initramfs (via dracut)", " - re-creates the initramfs (via dracut)",
" - adds altfiles module to NSS", " - adds altfiles module to NSS",
" - Re-compiles SELinux policy (semodule -nB)", " - Re-compiles SELinux policy (semodule -nB)",
" - Migrates /usr/etc/{passwd, group} to /usr/lib/", " - Migrates /usr/etc/{passwd, group} to /usr/lib/",
" - Postprocess SELinux policy", " - Postprocess SELinux policy",
" - Convert /var to use tmpfiles.d", " - Convert /var to use tmpfiles.d",
" - Prepares symlinks", " - Prepares symlinks",
" - /usr/local -> /var/usrlocal", " - /usr/local -> /var/usrlocal",
" - /var/lib/alternatives -> /usr/lib/alternatives", " - /var/lib/alternatives -> /usr/lib/alternatives",
" - /var/lib/vagrant -> /usr/lib/vagrant", " - /var/lib/vagrant -> /usr/lib/vagrant",
" - copies the rpmdb", " - copies the rpmdb",
"The configuration options, `etc_group_members` corresponds to the", "The configuration options, `etc_group_members` corresponds to the",
"Treefile[2] option of rpm-ostree. In brief: The groups mentioned", "Treefile[2] option of rpm-ostree. In brief: The groups mentioned",
"in `etc_group_members` will be stored in /etc/groups instead of", "in `etc_group_members` will be stored in /etc/groups instead of",
"/usr/etc/groups (which is read-only). Therefore all groups that", "/usr/etc/groups (which is read-only). Therefore all groups that",
"human users need to be part of.", "human users need to be part of.",
"[1] https://ostreedev.github.io/ostree/adapting-existing/", "[1] https://ostreedev.github.io/ostree/adapting-existing/",
"[2] https://rpm-ostree.readthedocs.io/en/latest/manual/treefile/" "[2] https://rpm-ostree.readthedocs.io/en/latest/manual/treefile/"
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN", "CAP_MAC_ADMIN",
"CAP_NET_ADMIN", "CAP_NET_ADMIN",
"CAP_SYS_PTRACE" "CAP_SYS_PTRACE"
], ],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"etc_group_members": { "etc_group_members": {
"description": "Array of group names to still keep in /etc/group", "description": "Array of group names to still keep in /etc/group",
"type": "array", "type": "array",
"items": { "items": {
"type": "string" "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
}
} }
},
"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", "summary": "Pull OSTree commits into an existing repo",
"description": [ "description": [
"This stage pulls one or more commits, provided via", "This stage pulls one or more commits, provided via",
"the `commits` input into an existing repository at", "the `commits` input into an existing repository at",
"a location specified via `repo`.", "a location specified via `repo`.",
"If the returned a reference via `ref` it will use", "If the returned a reference via `ref` it will use",
"that to pull the commits." "that to pull the commits."
], ],
"capabilities": [ "capabilities": [
"CAP_MAC_ADMIN" "CAP_MAC_ADMIN"
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"repo" "repo"
], ],
"properties": { "properties": {
"repo": { "repo": {
"description": "Location of the OSTree repo.", "description": "Location of the OSTree repo.",
"type": "string" "type": "string"
},
"remote": {
"description": "Add the 'remote' to the ref spec",
"type": "string"
}
}
}, },
"inputs": { "remote": {
"type": "object", "description": "Add the 'remote' to the ref spec",
"additionalProperties": false, "type": "string"
"required": [
"commits"
],
"properties": {
"commits": {
"type": "object",
"additionalProperties": true
}
}
} }
}
},
"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.", "summary": "Configure OSTree remotes for a repository.",
"description": [], "description": [],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"repo" "repo"
], ],
"properties": { "properties": {
"repo": { "repo": {
"description": "Location of the OSTree repo.", "description": "Location of the OSTree repo.",
"type": "string" "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": { "url": {
"description": "Configure remotes for the system repository", "description": "URL for accessing metadata and content for the remote",
"type": "array", "type": "string"
"items": { },
"description": "Description of a remote", "contenturl": {
"type": "object", "description": "URL for accessing content. When set, url is used only for metadata. Supports 'mirrorlist=' prefix",
"required": [ "type": "string"
"name", },
"url" "branches": {
], "type": "array",
"properties": { "items": {
"name": { "description": "Configured branches for the remote",
"description": "Identifier for the remote", "type": "string"
"type": "string" }
}, },
"url": { "gpgkeys": {
"description": "URL for accessing metadata and content for the remote", "type": "array",
"type": "string" "items": {
}, "description": "GPG keys for the remote to verify commits",
"contenturl": { "type": "string"
"description": "URL for accessing content. When set, url is used only for metadata. Supports 'mirrorlist=' prefix", }
"type": "string" },
}, "gpgkeypaths": {
"branches": { "type": "array",
"type": "array", "items": {
"items": { "description": "Path to ASCII-armored GPG key or directory containing ASCII-armored GPG keys to import",
"description": "Configured branches for the remote", "type": "string"
"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].", "summary": "Fix SELinux labels for an OSTree deployment[1].",
"description": [ "description": [
"[1] https://ostree.readthedocs.io/en/latest/manual/deployment/" "[1] https://ostree.readthedocs.io/en/latest/manual/deployment/"
],
"capabilities": [
"CAP_MAC_ADMIN"
],
"schema": {
"additionalProperties": false,
"required": [
"deployment"
], ],
"capabilities": [ "properties": {
"CAP_MAC_ADMIN" "deployment": {
],
"schema": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "oneOf": [
"deployment" {
"properties": {
"default": {
"enum": [
false
]
}
},
"required": [
"osname",
"ref"
]
},
{
"properties": {
"default": {
"enum": [
true
]
}
},
"not": {
"anyOf": [
{
"required": [
"osname"
]
},
{
"required": [
"ref"
]
},
{
"required": [
"serial"
]
}
]
}
}
], ],
"properties": { "properties": {
"deployment": { "osname": {
"additionalProperties": false, "description": "Name of the stateroot to be used in the deployment",
"oneOf": [ "type": "string"
{ },
"properties": { "ref": {
"default": { "description": "OStree ref to create and use for deployment",
"enum": [ "type": "string"
false },
] "serial": {
} "description": "The deployment serial (usually '0')",
}, "type": "number",
"required": [ "default": 0
"osname", },
"ref" "default": {
] "description": "Find and use the default ostree deployment",
}, "type": "boolean",
{ "default": false
"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,35 +1,35 @@
{ {
"summary": "Sign a commit in an ostree repo", "summary": "Sign a commit in an ostree repo",
"description": [ "description": [
"Given an ostree commit (referenced by a ref) in a repo and an ed25519", "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.", "secret key this adds a signature to the commit detached metadata.",
"This commit can then be used to validate the commit, during ostree", "This commit can then be used to validate the commit, during ostree",
"pull, during boot, or at any other time." "pull, during boot, or at any other time."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"repo", "repo",
"ref", "ref",
"key" "key"
], ],
"properties": { "properties": {
"repo": { "repo": {
"description": "Location of the OSTree repo.", "description": "Location of the OSTree repo.",
"type": "string" "type": "string"
}, },
"ref": { "ref": {
"description": "OSTree branch name or commit to sign", "description": "OSTree branch name or commit to sign",
"type": "string", "type": "string",
"default": "" "default": ""
}, },
"key": { "key": {
"description": "Path to the secret key", "description": "Path to the secret key",
"type": "string", "type": "string",
"pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$" "pattern": "^\\/(?!\\.\\.)((?!\\/\\.\\.\\/).)+$"
}
}
} }
}
} }
}
} }

View file

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

View file

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

View file

@ -1,61 +1,61 @@
{ {
"summary": "Configure pacman", "summary": "Configure pacman",
"description": [], "description": [],
"schema": { "schema": {
"additionalProperties": false, "additionalProperties": false,
"properties": { "properties": {
"architecture": { "architecture": {
"type": "string", "type": "string",
"description": "pacman architecture", "description": "pacman architecture",
"default": "x86_64" "default": "x86_64"
},
"repositories": {
"type": "array",
"items": {
"type": "object",
"oneOf": [
{
"required": [
"name",
"server"
]
}, },
"repositories": { {
"type": "array", "required": [
"items": { "name",
"type": "object", "include"
"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"
}
}
}
} }
],
"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", "summary": "Verify, and install pacman packages",
"description": [ "description": [
"`packages` is an array of objects representing pacman packages. Each package is", "`packages` is an array of objects representing pacman packages. Each package is",
"identified by its checksums. Specifically, the content hash of the package.", "identified by its checksums. Specifically, the content hash of the package.",
"This stage will fail if any of the packages can't be found." "This stage will fail if any of the packages can't be found."
], ],
"schema_2": { "schema_2": {
"options": { "options": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"properties": {} "properties": {}
}, },
"inputs": { "inputs": {
"type": "object", "type": "object",
"additionalProperties": false, "additionalProperties": false,
"required": [ "required": [
"packages" "packages"
], ],
"properties": { "properties": {
"packages": { "packages": {
"type": "object", "type": "object",
"additionalProperties": true "additionalProperties": true
}
}
} }
}
} }
}
} }

View file

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

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