The service 'cloud-init' is an open source project provisioning agent that can be baked into Linux images, and is responsible for completing the setup of a newly-created Virtual Machine (VM). 'cloud-init' can perform such tasks as setting the hostname, username, password/ssh keys, or mounting the ephemeral disk. The process of completing the setup is known as ‘provisioning’.
In addition to setting the minimum required configuration options described above, 'cloud-init' can process VM configurations, in multiple user-data formats, such as cloud-init configurations, scripts etc.
Azure cloud-init documentation defines which cloud-init versions and OS versions are supported, support defines that the configuration of those versions is supported, note, the OS image can be a custom image or an Azure Market Place image.
Support for 'cloud-init' is inherited from the article Support for Linux and open source technology in Azure, but with the following clarifications:
MS support will assist you if you have issues provisioning a Virtual Machine (VM) with the minimum required configuration options:
- VM Name
- SSH Keys
- Ensuring user data is passed to the VM
- Mounting and formatting the ephemeral disk
If you pass in user-data, that pass modifies the configuration of the VM. If you find that it is not processed as expected, and need support, Microsoft support will assist on a best effort basis, you may be asked to raise an issue with the 'cloud-init' upstream maintainers here.