Running cloud-init on LXC containers

In the internet I can’t find information how to populate cloud-init with configuration files on LXC containers, there’s only documented how to do it in LXD and Incus. How can I pass user-data etc. to the LXC containers?

What should I do to use different cloud-init files for different LXC containers, and is it a good idea to do this or should be rather only one cloud-init config per entire managed environment?

I think that the way cloud-init works, is that the instance gets created (not started yet), then your cloud-init script is placed by you in the appropriate directory with the proper name in the instance, and finally you start the instance. Upon starting, the instance will run the cloud-init service and perform the commands listed in the cloud-init script.

Obviously, for this to work, the instance should have support for cloud-init.