The systemd.generator man page says that generators are run very early at bootup and that they are all run at the same time. At what point in the bootup are they actually run?
As I understand it, CoreOS's ignition is implemented as a generator which runs after the initramfs is mounted but before pivoting to the root filesystem, is this a CoreOS specific thing or is this common to any OS using systemd init?
At what point in the bootup are they actually run?
They run every time the systemd-pid1 manager is started: https://github.com/systemd/systemd/blob/v235/src/core/manager.c#L1333
In practice, this means either as one of the very first steps when pid1 is executed or after a daemon-reload. The latter also includes the transition between initramfs and the real rootfs.
ignition is implemented as a generator
Ignition is not implemented as generator, but as a first-boot initramfs service. If you read any doc page stating that ignition is a systemd generator, please report a bug against that as it is incorrect.
is this a CoreOS specific thing or is this common to any OS using systemd init?
Ignition is a CoreOS specific component. It is open-source and can be ported to any systemd-based distribution, but I am not aware of any other distribution using it. See https://github.com/coreos/ignition