[pve-devel] HTTP API : Cloudinit

Dominik Csapak d.csapak at proxmox.com
Wed Mar 21 09:32:17 CET 2018

On 03/21/2018 09:01 AM, Mariusz Miodowski wrote:
> Hello,
> I am looking for any information about  support for cloudinit in HTTP
> API in upcoming 5.2 release.
> Where can I find some information about that?
> I will be very grateful if somebody can share some information about
> that. Basically I need information about:
>   - what methods will be available by API
>   - what parameters will be available


general documentation is currently only in git

(when this is packaged, this will also be available on the wiki)

we added the options in the vm config files, the options currently 
available are:

name (used as hostname)
ciuser (default cloud init user)
cipassword (password, will be hashed upon setting, this only works 
properly with cloudinit >= 17.1 afair)
citype (which type of configuration will be generated, e.g configdrive2 
or nocloud, if not set it depends on the os version)
ipconfigX (used for setting the ip address of interface netX)
sshkeys (newline seperated trusted ssh public keys)

those can be used the same way all other options are used

when you want to use it, you have to add a cloud init drive with the 
special syntax:


qm set 100 -ide2 local:cloudinit

this creates a cloudinit drive on ide2
the image will be regenerated when the vm is started or the image is 
ejected and recreated with

qm set 100 -ide2 none
qm set 100 -ide2 local:cloudinit

(api calls are the same)

i tested here with ubuntu 17.10 cloud init image (the openstack one) and 
this works, did not get it to work with windows cloud init from 
cloudbase.it (i will test this again soon)

the only thing not really clear is how we generate instance-ids

currently it is the hash of the config, so a config change means a new
instance-id (which triggers things as ssh-host key generation etc.)

this was done because there was a bug that cloud init only set the
configs when the instance id was changed (which is now fixed i think)

so we probably will either use the vmid as instance id (or 
clustername-vmid or something similar)

or we make it also a config value, so that the user can set it
(has anyone a strong opinion on this?)

hope this helps

More information about the pve-devel mailing list