[pve-devel] [PATCH qemu-server] fix #2068: allow disabling of package_upgrade for cloud-init
David Limbeck
d.limbeck at proxmox.com
Tue Jan 29 15:18:57 CET 2019
package_upgrade default is still 'true'. adds a new generic option 'cioptions'
that takes a list of property strings and is easy to extend. for now only
'package_upgrade=<true/false>' is supported. registers a new format
'pve-qm-cioptions' for parsing in different files.
tested with ubuntu 18.10.
Signed-off-by: David Limbeck <d.limbeck at proxmox.com>
---
PVE/API2/Qemu.pm | 1 +
PVE/QemuServer.pm | 18 ++++++++++++++++++
PVE/QemuServer/Cloudinit.pm | 4 +++-
3 files changed, 22 insertions(+), 1 deletion(-)
diff --git a/PVE/API2/Qemu.pm b/PVE/API2/Qemu.pm
index 148ea1a..7fee88e 100644
--- a/PVE/API2/Qemu.pm
+++ b/PVE/API2/Qemu.pm
@@ -295,6 +295,7 @@ my $cloudinitoptions = {
cipassword => 1,
citype => 1,
ciuser => 1,
+ cioptions => 1,
nameserver => 1,
searchdomain => 1,
sshkeys => 1,
diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index bc3bb1d..c5e2309 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -616,6 +616,18 @@ EODESCR
},
};
+my $cioptions_fmt = {
+ package_upgrade => {
+ type => 'string',
+ optional => 1,
+ description => 'cloud-init: Enable/Disable package upgrade on boot.',
+ default => 'true',
+ enum => [qw(true false)]
+ }
+};
+
+PVE::JSONSchema::register_format('pve-qm-cioptions', $cioptions_fmt);
+
my $confdesc_cloudinit = {
citype => {
optional => 1,
@@ -633,6 +645,12 @@ my $confdesc_cloudinit = {
type => 'string',
description => 'cloud-init: Password to assign the user. Using this is generally not recommended. Use ssh keys instead. Also note that older cloud-init versions do not support hashed passwords.',
},
+ cioptions => {
+ optional => 1,
+ type => 'string',
+ format => 'pve-qm-cioptions',
+ description => 'cloud-init: specify other options that are supported as a list of key=value pairs (e.g. package_upgrade=false,...).'
+ },
searchdomain => {
optional => 1,
type => 'string',
diff --git a/PVE/QemuServer/Cloudinit.pm b/PVE/QemuServer/Cloudinit.pm
index 5be820c..5f777a1 100644
--- a/PVE/QemuServer/Cloudinit.pm
+++ b/PVE/QemuServer/Cloudinit.pm
@@ -132,7 +132,9 @@ sub cloudinit_userdata {
$content .= " - default\n";
}
- $content .= "package_upgrade: true\n";
+ my $cioptions = $conf->{cioptions} ? PVE::JSONSchema::parse_property_string('pve-qm-cioptions', $conf->{cioptions}) : {};
+ my $package_upgrade = $cioptions->{package_upgrade} // 'true'; # default
+ $content .= "package_upgrade: $package_upgrade\n";
return $content;
}
--
2.11.0
More information about the pve-devel
mailing list