Commit Graph

7598 Commits

Author SHA1 Message Date
Thomas Lamprecht
c349e2ea5a bump version to 8.3.6
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Thomas Lamprecht
4a148ae4d9 d/control: update build-dependency version of libpve-storage-perl & qemu-server
For basic support to upload and import disk images and Virtiofs
support, respectively.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Thomas Lamprecht
72bfd176e2 ui: qemu: rework Virtiofs input panel layout and increase window size
This looked very crammed and unpolished, with labels spanning multiple
lines, not following our standard title casing for labels, having text
in parenthesis on labels, having something like 'dirid' as empty text,
which gives the users exactly zero useful info, most of these should
have been noted in early review already.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Thomas Lamprecht
48e7a07b64 ui: storage upload: quote path in hint
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Thomas Lamprecht
40e50c79d6 ui: datacenter options: re-add online help info for consent-banner
Now that pve-docs was bumped and we updated the build-dependency
requirements in debian/control.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Thomas Lamprecht
8b06e1d621 d/control: update build-dependency version of pve-doc-generator
to ensure new onlineHelp references are available for the web UI.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Markus Frank
d67f05bc6f ui: add options to add virtio-fs to qemu config
Signed-off-by: Markus Frank <m.frank@proxmox.com>
Link: https://lore.proxmox.com/20250407134950.265270-11-m.frank@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Markus Frank
40f3056e19 ui: form: add selector for directory mappings
Signed-off-by: Markus Frank <m.frank@proxmox.com>
Reviewed-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com
Reviewed-by: Daniel Kral <d.kral@proxmox.com>
Tested-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com>
Tested-by: Daniel Kral <d.kral@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Link: https://lore.proxmox.com/20250407134950.265270-10-m.frank@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Markus Frank
3ac01b4ede ui: add resource mapping view for directories
To save vertical space in the Resource Mappings tab, there is a
temporary Directory Mappings tab until we find content fitting the
general 'resource mapping' panel and can put all types as submenu items.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
Link: https://lore.proxmox.com/20250407134950.265270-9-m.frank@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Markus Frank
04078c7b9b ui: add edit window for dir mappings
Signed-off-by: Markus Frank <m.frank@proxmox.com>
Link: https://lore.proxmox.com/20250407134950.265270-8-m.frank@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Markus Frank
3eaa1cd6a9 api: add resource map api endpoints for directories
Signed-off-by: Markus Frank <m.frank@proxmox.com>
Reviewed-by: Fiona Ebner <f.ebner@proxmox.com>
Reviewed-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com
Reviewed-by: Daniel Kral <d.kral@proxmox.com>
Tested-by: Laurențiu Leahu-Vlăducu <l.leahu-vladucu@proxmox.com>
Tested-by: Daniel Kral <d.kral@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Link: https://lore.proxmox.com/20250407134950.265270-7-m.frank@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Dominik Csapak
cbc27c8a81 ui: upload window: show hint about upload storage location
so users are not surprised where this gets uploaded to.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Link: https://lore.proxmox.com/20250407101310.3196974-7-d.csapak@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Dominik Csapak
b72a01a873 ui: form: file selector: allow optional filter
this sometimes comes in handy when we only want to show specific files.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Link: https://lore.proxmox.com/20250407101310.3196974-5-d.csapak@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Dominik Csapak
f37294e00f ui: storage content: allow upload of guest images for import type
by allowing 'qcow2', 'vmdk', 'raw' and 'img' files to upload.

Implement 'extension aliases' for the upload window, that append the
'real' extension to the filename after selecting a file with such an
alias. This is necessary so that we have seperate lists for the file
selector and the filename validator. Use that to mark '.img' an alias of
'.raw' for import.

For the download, the api checks the filename for us first, so we
just have to rename '.img' to '.img.raw'.

partially fixes #2424

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Link: https://lore.proxmox.com/20250407101310.3196974-4-d.csapak@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-08 00:46:40 +02:00
Maximiliano Sandoval
419e473456 ui: do not split translatable strings
Splitting the strings adds extra work to translators as they now have
less context to work with.

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Link: https://lore.proxmox.com/20250228102342.163467-1-m.sandoval@proxmox.com
2025-04-07 15:16:15 +02:00
Michael Köppl
708de5b341 close #3181: ui: display guest name in confirm dialogs
The confirmation dialogs of the following actions are affected by this
change:
* Remove
* Clone
* Migrate
* Snapshot
* Snapshot restore
* Backup VM/CT from config view
* Restore VM/CT from config view

A combination of VM/CT id and name is added to each confirmation dialog.
The order of id and name depends on the sort field selected in the tree
settings. If "Name" is selected, the confirmation dialogs will show "VM
name (VMID)". In any other case, "VMID (VM name)" will be used.

The VM/CT name is considered optional in all handled cases. If it is
undefined, only the VMID will be displayed in the dialog window. No
exceptions are thrown in case of an undefined guest name because it
only extends the information displayed to the user and is not essential
for performing any of the actions above.

Signed-off-by: Michael Köppl <m.koeppl@proxmox.com>
2025-04-07 14:07:35 +02:00
Christoph Heiss
0457881c56 www: utils: add description for reloadnetworkall task
This task name is used by the SDN stack when applying the configuration,
i.e. reloading the network configuration completely on all cluster
nodes.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Link: https://lore.proxmox.com/20250402103431.524220-1-c.heiss@proxmox.com
2025-04-07 13:35:37 +02:00
Dominik Csapak
4ecd28022c ui: qemu pci edit: select correct radiobutton when editing
This panel uses a view model for changing between mapping and raw for
disabling fields. Since the view model bindings take effect after
setVMConfig is called, the default value for 'isMapped' of true
overwrote the mode chosen from the config.

To fix that, set the value in the view model there too.

Additionally, check the 'mapped' radiobutton by default instead of
'raw', so that it is the same as the view model.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Link: https://lore.proxmox.com/20250407095029.2950635-1-d.csapak@proxmox.com
2025-04-07 11:52:45 +02:00
Christoph Heiss
29e53e5f46 ui: guest migrate window: use predefined constant for error alert title
This is already defined, so use it where possible.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Link: https://lore.proxmox.com/20250407091647.202800-2-c.heiss@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-07 11:37:48 +02:00
Christoph Heiss
5c8e6e5a6e ui: guest migrate window: make all user-visible strings translatable
Quite a few user-visible strings in the dialog currently are not using
gettext(), thus not making them translatable.

While at it, also remove some contractions from error/warning messages.
Not strictly necessary per our style guide, but it avoids escaping
single quotes and reads quite a bit nicer IMHO.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
Link: https://lore.proxmox.com/20250407091647.202800-1-c.heiss@proxmox.com
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-07 11:37:00 +02:00
Thomas Lamprecht
488340aacb d/control: update build-dependency version of libpve-storage-perl
vzdump tests now require the new storage_has_feature method.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-07 10:43:53 +02:00
Fiona Ebner
cd2cec6e87 user: password edit: clarify that password changes for PAM realm only apply to connected node
Reported in the community forum:
https://forum.proxmox.com/threads/158518/

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Link: https://lore.proxmox.com/20250407081657.23658-1-f.ebner@proxmox.com
2025-04-07 10:40:32 +02:00
Christian Ebner
133d244516 fix #5936: ui: backup: add CT PBS change detection mode selector
Allow to select the change detection mode when performing manual
backups of containers with Proxmox Backup Server as target, just like
for the advanced backup job options introduced by commit 3b21f19f
("www: advanced backup: add pbs change detection mode selector").

The selector is shown for virtual machine and container backup in
order to maintain the same layout for both, but only enabled for
container backup with a Proxmox Backup Server selected as target
storage.

Link to issue in bugtracker:
https://bugzilla.proxmox.com/show_bug.cgi?id=5936

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2025-04-06 21:59:49 +02:00
Fiona Ebner
0326691c2f fix #6116: ui: qemu: create wizard: order install ISO before additional ISO in boot order
Also clarify the function comment with the original intention for why
this was added in the frontend (the backend cannot know which is
which), see commit fc3a88ad ("ui: qemu wizard: use better boot order
for second cd drive").

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Link: https://lore.proxmox.com/20250130094956.11374-1-f.ebner@proxmox.com
2025-04-06 21:51:20 +02:00
Thomas Lamprecht
e48f2d9186 d/control: update dependencies for external backup provider support
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-06 21:46:57 +02:00
Fiona Ebner
ebfd6dd79b backup: implement backup for external providers
Call job_{init,cleanup}() and backup_{init,cleanup}() methods so that
backup providers can prepare and clean up for the whole backup job and
for individual guest backups.

It is necessary to adapt some log messages and special case some
things like is already done for PBS, e.g. log file handling.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Tested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Reviewed-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Link: https://lore.proxmox.com/20250404133204.239783-30-f.ebner@proxmox.com
2025-04-06 21:45:13 +02:00
Fiona Ebner
3f82460304 ui: backup: also check for backup subtype to classify archive
In anticipation of future storage plugins that might not have
PBS-specific formats or adhere to the vzdump naming scheme for
backups.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
Tested-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Reviewed-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Link: https://lore.proxmox.com/20250404133204.239783-29-f.ebner@proxmox.com
2025-04-06 21:45:13 +02:00
Friedrich Weber
93cbef3804 fix #3716: api: nodes: query metadata: use proxy option for https
When downloading an ISO, VZ template, or OVA file via the web UI, the
web UI uses the query-url-metadata endpoint to query file size, file
name and MIME type via an HTTP HEAD request. In a setup where this
request has to go over a proxy (configured via the http_proxy
datacenter option), querying the metadata only works for http:// URLs,
not https:// URLs. The reason is that the query-url-metadata handler
uses LWP and does not register the proxy for the https scheme.

Fix this by registering the proxy also for the https scheme.

This will break setups that rely on http_proxy not being respected for
https:// URLs. For example, setups that have a proxy for external
connections, but download e.g. ISO files (only) via https from an
internal repository that the proxy doesn't serve.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Reviewed-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Tested-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
Link: https://lore.kernel.org/r/20250326105108.34911-3-f.weber@proxmox.com
2025-04-05 18:24:54 +02:00
Thomas Lamprecht
e6f39a2f8f ui: node options: simplify renderer
And drop the paranoid htmlEndoce for a integer that only users with
powerful admin privs can control anyway...

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-05 18:16:32 +02:00
Friedrich Weber
780e053d9a ui: node options: allow editing the ballooning RAM usage target
This corresponds to the `ballooning-target` node config option.

Also make the left column slightly wider, so the texts fit better.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Link: https://lore.kernel.org/r/20250312151506.128311-4-f.weber@proxmox.com
2025-04-05 18:04:35 +02:00
Friedrich Weber
c5f0aec546 fix #2413: pvestatd: read ballooning RAM usage target from node config
Currently, the automatic memory management (ballooning) performed by
pvestatd targets 80% memory usage. Users have reported that this
target is unnecessarily low on hosts with large amounts of RAM.

Thus, read the target from the node config option `ballooning-target`.
Also change the ballooning debug log output to include the target.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Link: https://lore.kernel.org/r/20250312151506.128311-3-f.weber@proxmox.com
2025-04-05 18:04:10 +02:00
Friedrich Weber
cca3eaded2 node: options: add config option for ballooning target
The option is intended for the percentage of host memory that pvestatd
uses as the target for automatic memory allocation (ballooning).

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Reviewed-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Link: https://lore.kernel.org/r/20250312151506.128311-2-f.weber@proxmox.com
2025-04-05 18:04:09 +02:00
Thomas Lamprecht
c8773dced1 d/control: bump versioned dependency for libpve-notify-perl
to ensure the new common_template_data method is available.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-04 20:26:30 +02:00
Lukas Wagner
abb06e4ebd notifications: test: style fixup
Other commits introduced a consistent style for handlebars expressions,
this commit applies the same style to test notification templates.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2025-04-04 20:25:46 +02:00
Lukas Wagner
a70240a32b notification: replication: add common properties to template data
The new PVE::Notify::common_template_data helper gives us a hash of
properties which should be available in all notifications (hostname,
fqdn, cluster-name at this moment). This commit makes sure that
replication notifications have these available.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2025-04-04 20:25:46 +02:00
Lukas Wagner
82fc0f6cdf notifications: apt: clean up notification template
Clean up the notification templates to prepare for user-customizable
templates
 - Change some of the template variable names to improve clarity
 - Generate the table for available updates in the template itself,
   not via the 'table' helper. This makes it possible for users
   to change the style/structure of the table.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2025-04-04 20:25:46 +02:00
Lukas Wagner
5577f9da2d notification templates: vzdump: generate HTML table in template
Instead of relying on the 'magic' table helper, we generate the guest
list in the vzdump HTML notification template using native Handlebars
syntax ({{#each}}). The template becomes a bit more ugly, mostly due to
HTML email's requirements to use inline CSS styling, but in the context
of providing user-customizable notification templates this is much
nicer. It gives the user a starting point for their modificiations
(custom styling, changing table formatting/order/etc.), which was not
possible before.

The plaintext template stays as is for now, mostly due to the fact that
the table helper automatically aligns table columns - something that
is not easily possible with native Handlebars syntax.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2025-04-04 20:25:46 +02:00
Thomas Lamprecht
f9f24dd140 d/control: update versioned dependency for libpve-cluster-perl
To ensure the datacenter config understands the newly used and exposed
consent-text property.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-04 20:14:45 +02:00
Gabriel Goller
2e42468a87 show optional consent-banner before login
Add a ConsentBanner variable to html template and populate it from the
`datacenter.cfg` config file. Add Datacenter option to set the text
and trigger the pop up on login. The max length of the input is 64
kiB.

Signed-off-by: Gabriel Goller <g.goller@proxmox.com>
 [TL: comment out onlineHelp for now to avoid bumping pve-docs and
  increase limit from 63 kiB to 64 kiB as the http-server's post limit
  got recently increased to 512 kiB]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-04 20:14:45 +02:00
Thomas Lamprecht
207a4a4075 d/control: bump versioned dependency for libpve-access-control
To ensure the newer OpenID Connect realm features (group claims, skip
querying user info) are available, as we got UI integration now here.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-04 20:13:19 +02:00
Philipp Giersfeld
3497c01420 Add configuration options for AMD SEV-SNP
Expand input panel with AMD SEV-SNP selection, and relevant optional
parameters similar to existing options for AMD SEV(-ES).

Further, upon selecting AMD SEV-SNP, issue a warning that EFI disks
are not included when using SEV-SNP.

Signed-off-by: Philipp Giersfeld <philipp.giersfeld@canarybit.eu>
Tested-by: Markus Frank <m.frank@proxmox.com>
Reviewed-by: Markus Frank <m.frank@proxmox.com>
2025-04-04 18:45:24 +02:00
Aaron Lauterer
306e812013 ui: tasks: add actioncolumn to open task
Many (new) users don't realize that the task view can be used to open
the task details.
By adding a small action column we can have a button to open the task as
well, next to double clicking it.

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-by: Friedrich Weber <f.weber@proxmox.com>
 [TL: reduce indentation level]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2025-04-04 16:38:16 +02:00
Thomas Skinner
03a494e03a fix #4234: add GUI option for openid optional userinfo request
Signed-off-by: Thomas Skinner <thomas@atskinner.net>
Tested-by: Mira Limbeck <m.limbeck@proxmox.com>
2025-04-04 16:30:05 +02:00
Thomas Skinner
902a380626 fix #4411: openid: add ui config for openid groups support
Signed-off-by: Thomas Skinner <thomas@atskinner.net>
Tested-by: Mira Limbeck <m.limbeck@proxmox.com>
Reviewed-by: Mira Limbeck <m.limbeck@proxmox.com>
2025-04-04 16:30:05 +02:00
Friedrich Weber
62579dd707 ui: qemu: hardware: htmlEncode unused disk
to avoid interpreting HTML.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00
Friedrich Weber
a39a2dd550 api: ceph: restrict valid pool and fs names
Disallow colons, slashes and whitespace in pool and filesystem names,
creating such pools/filesystems either fails or results in unusable
pools.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00
Friedrich Weber
a8a0a53b16 ui: mobile: add some missing htmlEncodes
to avoid interpreting HTML in task information or VM configuration.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00
Friedrich Weber
2d18eccece ui: ceph pool selector: htmlEncode the pool name
to avoid interpreting HTML.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00
Friedrich Weber
c0a99934e9 ui: ceph: add some missing htmlEncodes
to avoid interpreting HTML in pool or filesystem names.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00
Friedrich Weber
978df393cd ui: htmlEncode task information
to avoid interpreting HTML.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
2025-04-04 15:26:23 +02:00