Ignition is the “first-boot provisioning” system used by the CoreOS family (including CentOS Stream CoreOS / SCOS). Conceptually, it is the equivalent of “cloud-init” for CoreOS, but it is not cloud-init and it behaves differently.

What Ignition does

Ignition reads a configuration file (JSON) very early in the boot process (in the initramfs) and uses it to provision the machine. Typical actions include:

  • Partitioning and formatting disks
  • Creating files and directories (including kubelet/system configs)
  • Creating users and injecting SSH keys
  • Enabling or creating systemd units
  • Laying down network configuration (depending on how it is supplied)

Key behavioral differences vs cloud-init

  • Runs only on first boot and is intended for provisioning, not ongoing configuration management.
  • Encourages an immutable infrastructure mindset: if you want different machine configuration, you typically reprovision (or let the cluster manage changes), rather than mutate the node repeatedly.