While exploring some upcoming capabilities and providing early feedback to Engineering, I came to learn about a new Cloud-init datasource called VMware GuestInfo that was recently merged into the project last August. The Cloud-init Datasource for VMware GuestInfo started out as an OSS project created by Andrew Kutz of VMware and it provides an easy way for a vSphere-based VM to leverage the popular Cloud-init tool for OS initialization and configuration.
Unlike the recent vSphere Guest OS Customization with Cloud-init feature in vSphere 7.0 Update 3, the Cloud-init Datasource for VMware GuestInfo works by configuring specific guestinfo variables on a VM which are then transported into the guest operating system (GOS) using VMware Tools and is then processed by the cloud-init service that is running inside of the GOS. The nice thing about using this new Cloud-init datasource is that it is not tied to a specific release of vSphere and for those with Cloud-init experience, this is an easy way to incorporate your existing workflows. While I was somewhat familiar with Cloud-init and Linux GOS, I did not know that support for Microsoft Windows was also possible through the use of another project similiar to Cloud-Init called Cloudbase-Init.
It took me some time to figure out how to setup Cloudbase-init with Windows and I have to give a huge shoutout to Jay Vyas for pointing me over to one of his pet projects SIG Windows Development Environment that provided a clue to what the configuration file should look like. While learning about both Cloud-init Datasource for VMware GuestInfo and Cloudbase-init, I found that it was not trivial to get started and I wanted to document some concrete examples that can easily illustrate the power of this capability but also help anyone that might be interested in using this feature and how to quickly get started.