Type object
Schema URL https://catalog.lintel.tools/schemas/schemastore/butane-config/_shared/latest--butane-v1.5.0.json
Parent schema butane-config
Type: object

Schema to validate v1.5.0 specifications

Properties

variant
version

The semantic version of the spec for this document. This document is for version 1.5.0 and generates Ignition configs with version 3.4.0.

ignition object

Metadata about the configuration itself.

4 nested properties
config object

Options related to the configuration.

2 nested properties
merge contents[]

A list of the configs to be merged to the current config.

minItems=1uniqueItems=true
replace object
One of: variant, variant, variant
6 nested properties
compression string

The type of compression used on the file (null or gzip). Compression cannot be used with S3.

Values: "null" "gzip"
http_headers object[]

A list of HTTP headers to be added to the request. Available for http and https source schemes only.

minItems=1uniqueItems=true
verification object

Options related to the verification

source
pattern=^((tftp|http|https|s3|gs)://|data:|arn:)[^ "]+$
inline string

The contents. Mutually exclusive with source and local.

local string

A local path to the contents, relative to the directory specified by the --files-dir command-line argument. Mutually exclusive with source and inline.

timeouts object

Options relating to http timeouts when fetching files over http or https.

2 nested properties
http_response_headers integer

The time to wait (in seconds) for the server’s response headers (but not the body) after making a request. 0 indicates no timeout. Default is 10 seconds.

Default: 10
http_total integer

The time limit (in seconds) for the operation (connection, request, and response), including retries. 0 indicates no timeout. Default is 0.

Default: 0
security object

Options relating to network security.

1 nested properties
tls object required

Options relating to TLS when fetching resources over https.

1 nested properties
certificate_authorities contents[] required

The list of additional certificate authorities (in addition to the system authorities) to be used for TLS verification when fetching over https. All certificate authorities must have a unique source, inline, or local.

minItems=1uniqueItems=true
proxy object

Options relating to setting an HTTP(S) proxy when fetching resources.

3 nested properties
http_proxy string

Will be used as the proxy URL for HTTP requests and HTTPS requests unless overridden by https_proxy or no_proxy.

https_proxy string

Will be used as the proxy URL for HTTPS requests unless overridden by no_proxy.

no_proxy string[]
minItems=1uniqueItems=true
storage object

Describes the desired state of the system’s storage devices.

8 nested properties
disks object[]

The list of disks to be configured and their options. Every entry must have a unique device.

minItems=1uniqueItems=true
raid object[]

The list of RAID arrays to be configured. Every RAID array must have a unique name.

minItems=1uniqueItems=true
filesystems object[]

The list of filesystems to be configured. device and format need to be specified. Every filesystem must have a unique device.

minItems=1uniqueItems=true
files object[]

The list of files to be written. Every file, directory and link must have a unique path.

minItems=1uniqueItems=true
directories object[]

The list of directories to be created. Every file, directory, and link must have a unique path.

minItems=1uniqueItems=true
links object[]

The list of links to be created. Every file, directory, and link must have a unique path.

minItems=1uniqueItems=true
luks object[]

The list of files to be written. Every file, directory and link must have a unique path.

minItems=1uniqueItems=true
trees object[]

A list of local directory trees to be embedded in the config. Ownership is not preserved. File modes are set to 0755 if the local file is executable or 0644 otherwise. Attributes of files, directories, and symlinks can be overridden by creating a corresponding entry in the files, directories, or links section; such files entries must omit contents and such links entries must omit target.

minItems=1uniqueItems=true
systemd object

Describes the desired state of the systemd units.

1 nested properties
units object[]

The list of systemd units. Every unit must have a unique name.

minItems=1uniqueItems=true
passwd object

Describes the desired additions to the passwd database.

2 nested properties
users object[]

The list of accounts that shall exist. All users must have a unique name.

minItems=1uniqueItems=true
groups object[]

The list of groups to be added. All groups must have a unique name.

minItems=1uniqueItems=true
kernel_arguments object

Describes the desired kernel arguments.

2 nested properties
should_exist string[]
minItems=1uniqueItems=true
should_not_exist string[]
minItems=1uniqueItems=true
boot_device object

Describes the desired boot device configuration. At least one of luks or mirror must be specified.

3 nested properties
layout string

The disk layout of the target OS image. Supported values are aarch64, ppc64le, and x86_64. Defaults to x86_64.

Default: "x86_64"
Values: "aarch64" "ppc64le" "x86_64"
luks object

Describes the clevis configuration for encrypting the root filesystem.

4 nested properties
tang object[]

Describes a tang server. Every server must have a unique url.

minItems=1uniqueItems=true
tpm2 boolean

Whether or not to use a tpm2 device.

threshold integer

Sets the minimum number of pieces required to decrypt the device. Default is 1.

discard boolean

Whether to issue discard commands to the underlying block device when blocks are freed. Enabling this improves performance and device longevity on SSDs and space utilization on thinly provisioned SAN devices, but leaks information about which disk blocks contain data. If omitted, it defaults to false.

mirror object

Describes mirroring of the boot disk for fault tolerance.

1 nested properties
devices string[]
minItems=1uniqueItems=true
grub object

Describes the desired GRUB bootloader configuration.

1 nested properties
users array

The list of GRUB superusers.

minItems=1uniqueItems=true

Definitions

contents object
compression string

The type of compression used on the file (null or gzip). Compression cannot be used with S3.

Values: "null" "gzip"
http_headers object[]

A list of HTTP headers to be added to the request. Available for http and https source schemes only.

minItems=1uniqueItems=true
verification object

Options related to the verification

1 nested properties
hash string required

The hash of the file, in the form <type>-<value> where type is either sha512 or sha256. If compression is specified, the hash describes the decompressed file.

pattern=^(sha256-|sha512-)\S+$
source
pattern=^((tftp|http|https|s3|gs)://|data:|arn:)[^ "]+$
inline string

The contents. Mutually exclusive with source and local.

local string

A local path to the contents, relative to the directory specified by the --files-dir command-line argument. Mutually exclusive with source and inline.

verification object

Options related to the verification

hash string required

The hash of the file, in the form <type>-<value> where type is either sha512 or sha256. If compression is specified, the hash describes the decompressed file.

pattern=^(sha256-|sha512-)\S+$
http_headers object[]

A list of HTTP headers to be added to the request. Available for http and https source schemes only.

patterns
string_options string[]
security_object object
id integer
name string
user object
id integer
name string
group object
id integer
name string
tang object[]

Describes a tang server. Every server must have a unique url.