From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from gate001.proxmox.com (gate001.proxmox.com [IPv6:2a0f:8001:1:32::40]) by lore.proxmox.com (Postfix) with ESMTPS id D87321FF0AB for ; Wed, 07 Oct 2026 13:09:13 +0200 (CEST) Received: from gate001.proxmox.com (localhost.localdomain [127.0.0.1]) by gate001.proxmox.com (Proxmox) with ESMTP id 7A62F212F7; Wed, 07 Oct 2026 13:09:13 +0200 (CEST) Mime-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset=UTF-8 Date: Wed, 07 Oct 2026 13:08:58 +0200 Message-Id: Subject: Re: [PATCH container] api: template: allow creating template from ct with disk on LVM From: "Elias Huhsovitz" To: "Lukas Sichert" , X-Mailer: aerc 0.20.0 References: <20260312182714.108583-1-l.sichert@proxmox.com> In-Reply-To: <20260312182714.108583-1-l.sichert@proxmox.com> X-Bm-Milter-Handled: 55990f41-d878-4baa-be0a-ee34c49e34d2 X-Bm-Transport-Timestamp: 1791371338792 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.539 Adjusted score from AWL reputation of From: address DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment (newer systems) RCVD_IN_DNSWL_MED -2.3 Sender listed at https://www.dnswl.org/, medium trust SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record Message-ID-Hash: WBGTWVOIV2S23FO3WFE3TZNKZ2SJEY6I X-Message-ID-Hash: WBGTWVOIV2S23FO3WFE3TZNKZ2SJEY6I X-MailFrom: e.huhsovitz@proxmox.com X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; loop; banned-address; emergency; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header X-Mailman-Version: 3.3.10 Precedence: list List-Id: Proxmox VE development discussion List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: I agree with @Fiona [1], but IMO this a good intermediate solution and I don't see any downside in applying this. The current state is somewhat annoying and this patch makes the behaviour more consistent with VM equivalent function. I gave this a quick test with a container containing 2 volumes: - Root Disk: lvm-thin - mp0: lvm Creating the template worked without issues.=20 When attempting to create a linked clone of the template, the user is correctly stopped with an error. Creating a full clone worked without any issues. Reviewed-by: Elias Huhsovitz Tested-by: Elias Huhsovitz [1] https://lore.proxmox.com/pve-devel/328e1266-003a-42fd-bfea-2801b5afb88d= @proxmox.com/ On Thu Mar 12, 2026 at 7:27 PM CET, Lukas Sichert wrote: > Currently, in the UI, one can create a template from a VM with a disk on > LVM storage, but not from a container. This is because the LVM plugin > does not have the functionality to create base images from disks > implemented. While the system simply skips this function for VMs, it > throws an error and aborts for LXC containers. > > To allow converting to a template, skip the volumes where the required > functionality is not present by exiting early instead of aborting. > > Signed-off-by: Lukas Sichert > --- > src/PVE/LXC.pm | 12 +----------- > 1 file changed, 1 insertion(+), 11 deletions(-) > > diff --git a/src/PVE/LXC.pm b/src/PVE/LXC.pm > index caba952..e77d208 100644 > --- a/src/PVE/LXC.pm > +++ b/src/PVE/LXC.pm > @@ -1613,17 +1613,7 @@ sub template_create { > =20 > my $volid =3D $mountpoint->{volume}; > =20 > - die "Template feature is not available for '$volid'\n" > - if !PVE::Storage::volume_has_feature($storecfg, 'templat= e', $volid); > - }, > - ); > - > - PVE::LXC::Config->foreach_volume( > - $conf, > - sub { > - my ($ms, $mountpoint) =3D @_; > - > - my $volid =3D $mountpoint->{volume}; > + return if !PVE::Storage::volume_has_feature($storecfg, 'temp= late', $volid); > =20 > PVE::Storage::activate_volumes($storecfg, [$volid]); > =20