cloud-init is developed by Canonical, cloud-init website.
The ReadTheDocs page for the documentation, for those that need to search for specific functionality,
is at https://cloudinit.readthedocs.io/en/latest/
On that page, there is an obscure link that the bottom left that says v: latest in green(?).
It’s a pop-up, and you can see that there is also an EPUB version of the documentation.
cloud-init, it makes sense to read the whole documentation in one go, so the PDF makes very good sense.
In terms of LXD, some features are supported in the container images (the cloud container images), while other may not fit in the use of system containers. Here, there is need for trial and error to produce nice recipes on interesting things to do with cloud-init.
For example, Ubuntu 16.04 only supports cloud-init v1 configurations.
The way a container image supports cloud-init, has to do with the image having the cloud-init package preinstalled in the image. LXD does not know about cloud-init instructions and passes them verbatim into the container, when it gets launched. So, it is advisable to get into the container and verify what has been actually received and executed by the container.
An early article on LXD and cloud-init, at https://blog.simos.info/how-to-preconfigure-lxd-containers-with-cloud-init/