[pve-devel] [PATCH 1/8 container] cloudinit: introduce config parameters

Fiona Ebner f.ebner at proxmox.com
Thu Feb 13 11:22:10 CET 2025


Am 13.02.25 um 11:18 schrieb Mira Limbeck:
> On 2/13/25 11:10, Fiona Ebner wrote:
>> Am 10.02.25 um 13:07 schrieb Daniel Herzig:
>>> From: Leo Nunner <l.nunner at proxmox.com>
>>>
>>> Introduce configuration parameters for cloud-init. Like with VMs, it's
>>> possible to specify:
>>>     - user
>>>     - password
>>>     - ssh keys
>>>     - enable/disable updates on first boot
>>>
>>> It's also possible to pass through custom config files for the user and
>>> vendor settings. We don't allow configuring the network through
>>> cloud-init, since it will clash with whatever configuration we already
>>> did for the container.
>>
>> Unfortunately, Leo didn't write why configuring 'meta' for cicustom is
>> not allowed...
> Maybe because you can configure network interfaces via metadata as well?
> https://cloudinit.readthedocs.io/en/latest/reference/datasources/nocloud.html#example-meta-data
> 
> We don't do that in any of our code, but custom configs circumvent that.

Good to know. We can also leave it out for now, mention this in the
commit message and fix the docs example. Can still be added/evaluated
later if users request it.

>>
>>> diff --git a/src/PVE/LXC/Config.pm b/src/PVE/LXC/Config.pm
>>> index 5cc37f7..e3ed93b 100644
>>> --- a/src/PVE/LXC/Config.pm
>>> +++ b/src/PVE/LXC/Config.pm
>>> @@ -450,6 +450,63 @@ my $features_desc = {
>>>      },
>>>  };
>>>  
>>> +my $cicustom_fmt = {
>>> +    user => {
>>> +	type => 'string',
>>> +	optional => 1,
>>> +	description => 'To pass a custom file containing all user data to the container via cloud-init.',
>>> +	format => 'pve-volume-id',
>>> +	format_description => 'volume',
>>> +    },
>>> +    vendor => {
>>> +	type => 'string',
>>> +	optional => 1,
>>> +	description => 'To pass a custom file containing all vendor data to the container via cloud-init.',
>>> +	format => 'pve-volume-id',
>>> +	format_description => 'volume',
>>> +    },
>>
>> ...i.e. it's missing here. This might be an oversight, because the doc
>> patch mentions it in an example command: 'pct set 9000 --cicustom
>> "user=<volume>,meta=<volume>"'




More information about the pve-devel mailing list