How does curtin, cloud-init and the ephemeral image work?

Hi, I wanted to understand how dos cloud-init, curtin and the ephemeral image work together.
I’m trying to write the role of each in the MAAS architecture.

Cloud-init has two configuration sources:

  1. Cloud provider-supplied metadata: this stage happens before the image installation.
    Is this where curtin goes? it’s the configuration defined in curtin that goes in this stage?

  2. User-supply configuration runs after the machine has Deployed.
    Here it’s the files that the user can run when they deploy a machine correct?

Ephemeral images, use cloud-init to discover the node’s hardware (e.g., number of CPUs,RAM, disk, etc.) and send that information to the MAAS Region controller.

So ephemeral images also use cloud-init.


Curtin applies customization during operating system (OS) image installation. System parameterssuch as the type of kernel, disk partitioning, network configuration, swap memory configura-tion, among others, can be preconfigured in a preseed file that will automatically configureimages during the installation process

What I wanted to understand is the chronology of these events, what calls what and when.
And what are the differences between them.

Thanks for the help


@jbacelo, just noticed this one. do you still need the answer? don’t know off the top of my heat, but i can probably play with MAAS and figure it out – if you still need to know.