Ignition is a utility created to manipulate disks during the initramfs. This includes partitioning disks, formatting partitions, writing files (regular files, systemd units, etc.), and configuring users. On first boot, Ignition reads its configuration from a source of truth (remote URL, network metadata service, hypervisor bridge, etc.) and applies the configuration. Ignition accepts both Ignition JSON configs and Butane YAML configs. When a Butane YAML config is provided, Ignition automatically transpiles it at boot.
Key Features:
Manipulates disks during initramfs for partitioning, formatting, and file writing.
Reads configuration from remote URLs or metadata services on first boot.
Supports both Ignition JSON and Butane YAML configurations for flexibility.
Automatically transpiles Butane YAML configs to Ignition JSON at runtime.
Target Audience and Benefits:
Ideal for system administrators and DevOps engineers needing reliable disk configuration during the initramfs phase. Ignition simplifies automated setup by reading config from remote sources and supporting multiple file formats, ensuring smooth deployment of complex systems.
Ignition is available via the Windows Package Manager, making it easy to install and deploy using the winget command line. This tool is essential for anyone managing disk configurations during the boot process, providing a robust solution for both simple and intricate setup tasks.
README
Ignition
Ignition is a utility created to manipulate disks during the initramfs. This includes partitioning disks, formatting partitions, writing files (regular files, systemd units, etc.), and configuring users. On first boot, Ignition reads its configuration from a source of truth (remote URL, network metadata service, hypervisor bridge, etc.) and applies the configuration.
This repository also contains Butane, a config transpiler that translates human-readable Butane YAML configs into Ignition JSON configs. The butane CLI can be used for local config validation and features like --files-dir that require client-side processing. See the Butane getting started guide for details.
Usage
Odds are good that you don't want to invoke Ignition directly. In fact, it isn't even present in the root filesystem. Take a look at the Getting Started Guide for details on providing Ignition with a runtime configuration.
See CONTRIBUTING for details on submitting patches and the contribution workflow.
To help triage or fix bugs, see the current Ignition issues.
Config Validation
To validate a config for Ignition there are binaries for a cli tool called ignition-validate available on the releases page. There is also an ignition-validate container: quay.io/coreos/ignition-validate.
Example:
# This example uses podman, but docker can be used too
podman run --pull=always --rm -i quay.io/coreos/ignition-validate:release - < myconfig.ign