[pve-devel] [PATCH container 1/1] api: create/store: allow adding CT as HA resource after creation
Michael Köppl
m.koeppl at proxmox.com
Mon Oct 6 17:52:30 CEST 2025
Extend the creation and restore actions with a 'ha-managed' parameter
that, if enabled, will also add the CT as a new HA resource. The 'state'
parameter for this new resource will match the value of the 'start'
parameter used during creation of the CT, such that the resulting state
of the resource and CT both match the user's expectation (avoid
situation where user creates a CT, does not select 'Start after
creation', but the default 'started' state of the resource would start
the CT anyway).
Signed-off-by: Michael Köppl <m.koeppl at proxmox.com>
---
src/PVE/API2/LXC.pm | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
diff --git a/src/PVE/API2/LXC.pm b/src/PVE/API2/LXC.pm
index 37b9d055..e53b388d 100644
--- a/src/PVE/API2/LXC.pm
+++ b/src/PVE/API2/LXC.pm
@@ -218,6 +218,12 @@ __PACKAGE__->register_method({
default => 0,
description => "Start the CT after its creation finished successfully.",
},
+ 'ha-managed' => {
+ optional => 1,
+ type => 'boolean',
+ default => 0,
+ description => "Add the CT as a HA resource after it was created.",
+ },
}),
},
returns => {
@@ -236,6 +242,7 @@ __PACKAGE__->register_method({
my $ignore_unpack_errors = extract_param($param, 'ignore-unpack-errors');
my $bwlimit = extract_param($param, 'bwlimit');
my $start_after_create = extract_param($param, 'start');
+ my $ha_managed = extract_param($param, 'ha-managed');
my $basecfg_fn = PVE::LXC::Config->config_file($vmid);
my $same_container_exists = -f $basecfg_fn;
@@ -616,6 +623,15 @@ __PACKAGE__->register_method({
} elsif ($start_after_create) {
PVE::API2::LXC::Status->vm_start({ vmid => $vmid, node => $node });
}
+
+ if ($ha_managed) {
+ print "Add as HA resource\n";
+ my $state = $start_after_create ? 'started' : 'stopped';
+ eval {
+ PVE::API2::HA::Resources->create({ sid => "ct:$vmid", state => $state });
+ };
+ warn $@ if $@;
+ }
};
return $rpcenv->fork_worker($workername, $vmid, $authuser, $realcmd);
--
2.47.3
More information about the pve-devel
mailing list