]> git.proxmox.com Git - pve-manager.git/log
pve-manager.git
44 hours agod/copyright: run wrap-and-sort -tkn master
Thomas Lamprecht [Mon, 16 Sep 2024 11:59:02 +0000 (13:59 +0200)]
d/copyright: run wrap-and-sort -tkn

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agobump version to 8.2.5
Thomas Lamprecht [Thu, 12 Sep 2024 12:37:28 +0000 (14:37 +0200)]
bump version to 8.2.5

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 days agoupdate shipped appliance info index
Thomas Lamprecht [Thu, 12 Sep 2024 06:40:26 +0000 (08:40 +0200)]
update shipped appliance info index

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
7 days agoui: qemu: hardware: fix permission check for adding tpmstate volume
Friedrich Weber [Mon, 5 Aug 2024 13:33:37 +0000 (15:33 +0200)]
ui: qemu: hardware: fix permission check for adding tpmstate volume

Previously, the "Add -> TPM State" menu item in the GUI was disabled
if the user did not have Sys.Console privileges. This deviated from
the permission check in the backend, which does not require
Sys.Console but (among others) VM.Config.Disk.

Fix this inconsistency by checking for VM.Config.Disk in the frontend
instead of Sys.Console.

Reported in enterprise support.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
4 weeks agometrics: add /cluster/metrics/export endpoint
Lukas Wagner [Mon, 12 Aug 2024 08:36:06 +0000 (10:36 +0200)]
metrics: add /cluster/metrics/export endpoint

This new endpoint returns node, storage and guest metrics in JSON
format. The endpoint supports history/max-age parameters, allowing
the caller to query the recent metric history as recorded by the
PVE::PullMetric module.

The returned data format is quite simple, being an array of
metric records, including a value, a metric name, an id to identify
the object (e.g. qemu/100, node/foo), a timestamp and a type
('gauge', 'derive', ...). The latter property makes the format
self-describing and aids the metric collector in choosing a
representation for storing the metric data.

    [
        ...
        {
            "metric": "cpu_avg1",
            "value": 0.12,
            "timestamp": 170053205,
            "id": "node/foo",
            "type": "gauge"
        },
        ...
    ]

Some experiments were made in regards to making the format
more 'efficient', e.g. by grouping based on timestamps/ids, resulting
in a much more nested/complicated data format. While that
certainly reduces the size of the raw JSON response by quite a bit,
after GZIP compression the differences are negligible (the
simple, flat data format as described above compresses by a factor
of 25 for large clusters!). Also, the slightly increased CPU load
of compressing the larger amount of data when e.g. polling once a
minute is so small that it's indistinguishable from noise in relation
to a usual hypervisor workload. Thus the simpler, format was
chosen. One benefit of this format is that it is more or less already
the exact same format as the one Prometheus uses, but in JSON format -
so adding a Prometheus metric scraping endpoint should not be much
work at all.

The API endpoint collects metrics for the whole cluster by calling
the same endpoint for all cluster nodes. To avoid endless request
recursion, the 'local-only' request parameter is provided. If this
parameter is set, the endpoint implementation will only return metrics
for the local node, avoiding a loop.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
[WB: remove unused $start_time leftover from benchmarks]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
4 weeks agopvestatd: store subsystem status data in a shared cache
Lukas Wagner [Mon, 12 Aug 2024 08:36:05 +0000 (10:36 +0200)]
pvestatd: store subsystem status data in a shared cache

This commit adds a new module PVE::PullMetric. This module allows
us to store the status data of various subsystems, including status
data for the most recent pvestatd update loops. Right now, we
store 6 old generations - including the most recent values, that gives
70 seconds of stat history (based on a 10 second pvestatd update loop
interval).

This cache allows us to add support for pull-style metric collection
systems, be it Prometheus/OpenMetrics or some custom, JSON based
metric format.

This patch raises the required lib{proxmox,pve}-perl-rs version
requirements, since we need the new bindings for proxmox-shared-cache.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
[WB: actually bump *runtime* deps in d/control]
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
5 weeks agoui: backup job detail: fix wrong gettext
Dominik Csapak [Tue, 6 Aug 2024 13:09:38 +0000 (15:09 +0200)]
ui: backup job detail: fix wrong gettext

'suspend' mode should not be shown as `gettext('Snapshot')`

reported in the forum:
https://forum.proxmox.com/threads/152365/

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
6 weeks agoui: dc summary: fix calculation of storage size
Igor Thaller [Wed, 31 Jul 2024 12:14:09 +0000 (14:14 +0200)]
ui: dc summary: fix calculation of storage size

The issue is related to the 'Summary' tab under 'Datacenter' inside a
cluster. To get a steady reading of the storage size data, the
frontend requests the '/api2/json/cluster/resources' every three
seconds to retrieve the necessary data to calculate the used and total
storage size.

The problem occurs when a shared storage is defined and a node goes
offline. As the node is not online, it cannot report the shared
storage size (both used and total) back to the other nodes. The order
of the JSON response is not always the same, so it is possible that
the offline node will appear first. Consequently, the frontend will
display the wrong total and used storage. This is because the shared
storage data has both the maximum disk size and the used disk set to
zero when the node is offline. This causes the total and used space
data to be calculated and displayed incorrectly, leading to
fluctuations in the displayed percentage of used disk space.

To fix this, add a conditional check to skip the storage report if its
status is 'unknown' (regardless of if the storage is local or shared).
This prevents the unreliable data from being processed.

Reported-by: Friedrich Weber <f.weber@proxmox.com>
Signed-off-by: Igor Thaller <igor.thaller@aon.at>
7 weeks agosdn: vnets: hide irrelevant fields depending on zone type
Stefan Hanreich [Fri, 22 Dec 2023 10:43:16 +0000 (11:43 +0100)]
sdn: vnets: hide irrelevant fields depending on zone type

Not all fields in the VnetEdit dialog are necessary for every zone
type. This lead to confusion for some users. Hide fields in the
VNetEdit dialog depending on which kind of zone is selected in order
to prevent potential confusion.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
Tested-by: Theodor Fumics <theodor.fumics@gmx.net>
Reviewed-by: Theodor Fumics <theodor.fumics@gmx.net>
7 weeks agoui: resource mappings: fix editing of mapping for non first node
Dominik Csapak [Fri, 26 Jul 2024 07:40:17 +0000 (09:40 +0200)]
ui: resource mappings: fix editing of mapping for non first node

when editing the pci mapping, we set the nodename of the pci/usbselector
to the selected node. At the same time we disable and hide the node
selector, but it still changes it's value to the 'first' node
(alphabetically sorted) and that triggers a change event.

To prevent that we accidentally set the node of the pci/usbselector
too, we need to check here if the field is disabled.

There seems to be a race when loading the nodes for the nodeselector
which leads to inconsistent behaviour, so this was only encountered for
the pciselector, but theoretically it could also happen for the
usbselector so adding that condition to both.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
8 weeks agod/control: bump proxmox-widget-toolkit dependency to 4.1.4
Lukas Wagner [Mon, 8 Jul 2024 09:38:05 +0000 (11:38 +0200)]
d/control: bump proxmox-widget-toolkit dependency to 4.1.4

We need
  "utils: add mechanism to add and override translatable notification
  event descriptions in the product specific UIs"
otherwise there is an error in the browser console.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
8 weeks agoui: utils: add overrides for translatable notification fields/values
Lukas Wagner [Mon, 8 Jul 2024 09:38:04 +0000 (11:38 +0200)]
ui: utils: add overrides for translatable notification fields/values

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
8 weeks agoapi: notification: add API for getting known metadata fields/values
Lukas Wagner [Mon, 8 Jul 2024 09:38:03 +0000 (11:38 +0200)]
api: notification: add API for getting known metadata fields/values

This new API route returns known notification metadata fields and
a list of known possible values. This will be used by the UI to
provide suggestions when adding/modifying match rules.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
8 weeks agoui: dc: backup: allow to set custom job id in advanced settings
Lukas Wagner [Mon, 8 Jul 2024 09:38:02 +0000 (11:38 +0200)]
ui: dc: backup: allow to set custom job id in advanced settings

This might be useful if somebody wants to match on the new
'backup-job' field in a notification match rule.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
8 weeks agoapi: jobs: vzdump: pass job 'job-id' parameter
Lukas Wagner [Mon, 8 Jul 2024 09:38:01 +0000 (11:38 +0200)]
api: jobs: vzdump: pass job 'job-id' parameter

This allows us to access the backup job id in the send_notification
function, where we can set it as metadata for the notification.
The 'job-id' parameter can only be used by 'root@pam' to prevent
abuse. This has the side effect that manually triggered backup jobs
cannot have the 'job-id' parameter at the moment. To mitigate that,
manually triggered backup jobs could be changed so that they
are not performed by a direct API call by the UI, but by requesting
pvescheduler to execute the job in the near future (similar to how
manually triggered replication jobs work).

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
 [ TL: fleece in d/control bump for guest-common now that the version
   is known ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 weeks agofix #5010: ceph: pool set only changed properties
Aaron Lauterer [Tue, 9 Jul 2024 11:41:16 +0000 (13:41 +0200)]
fix #5010: ceph: pool set only changed properties

By only setting properties that have changed, we can avoid potential
errors in the task.

For example, if one configures the "nosizechange" property on a pool,
to prevent accidental size changes, the task will now only error if
the user is actually trying to change the size.

Prior to this patch, we would always try to set all parameters, even if
they were the same value. In the above example, this would result in the
task ending in error state, as we are not allowed to change the size.

To disable size changing you can run the following command:
 ceph osd pool set {pool} nosizechange 1

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
8 weeks agoui: cephfs: disallow blank field for now required MDS ID
Thomas Lamprecht [Mon, 22 Jul 2024 16:54:15 +0000 (18:54 +0200)]
ui: cephfs: disallow blank field for now required MDS ID

while the ID part was formerly added to the nodename, and thus could
be completely left out, it's now used as full ID, so it must not be
empty as otherwise one gets an error from the API.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 weeks agofix #5570 ui: ceph: make MDS ID configurable
Aaron Lauterer [Wed, 10 Jul 2024 12:43:00 +0000 (14:43 +0200)]
fix #5570 ui: ceph: make MDS ID configurable

Since the ID of an MDS cannot start with a number [0], we cannot just
use the hostname in all situations, as they are allowed to start with
a number.

By having an extra field for the MDS ID, we can check for that via a
regex. This field is filled with the hostname when the host on which
it should be installed is selected.

This means, we can remove the extra ID field, as additional MDS, and
their unique ID can be set with the new ID field.

[0] https://docs.ceph.com/en/latest/man/8/ceph-mds/

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
 [ TL: use camelCase for local serviceID variable ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
8 weeks agoapi: ceph mds: avoid creating MDS when ID starts with number
Aaron Lauterer [Wed, 10 Jul 2024 12:42:59 +0000 (14:42 +0200)]
api: ceph mds: avoid creating MDS when ID starts with number

Ceph MDS IDs cannot start with a number [0].

[0] https://docs.ceph.com/en/latest/man/8/ceph-mds/

Signed-off-by: Aaron Lauterer <a.lauterer@proxmox.com>
Tested-by: Christoph Heiss <c.heiss@proxmox.com>
Reviewed-by: Christoph Heiss <c.heiss@proxmox.com>
8 weeks agosdn: ipam: fix editing custom mappings
Stefan Hanreich [Wed, 17 Jul 2024 13:06:03 +0000 (15:06 +0200)]
sdn: ipam: fix editing custom mappings

Currently custom mappings cannot be edited, due to them having no VMID
value. The VMID parameter was always sent by the frontend to the
update call - even if it was empty - leading to validation failure on
the backend. Fix this by only sending the vmid parameter when it is
actually set.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
8 weeks agowww: utils: fix inconsistency in host cpu usage display in search view
Christoph Heiss [Wed, 17 Jul 2024 12:49:51 +0000 (14:49 +0200)]
www: utils: fix inconsistency in host cpu usage display in search view

Between the number of CPUs and the actual label, a space was missing -
resulting in an inconsistency vs. the "CPU usage" column.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
8 weeks agowww: utils: fix `maxcpu` validity check in render_hostcpu()
Christoph Heiss [Wed, 17 Jul 2024 12:49:50 +0000 (14:49 +0200)]
www: utils: fix `maxcpu` validity check in render_hostcpu()

Comparing with Proxmox.Utils.render_cpu() seems just a slight oversight
in the condition. Fix it by aligning it with how it is done in
Proxmox.Utils.render_cpu() for consistency.

Signed-off-by: Christoph Heiss <c.heiss@proxmox.com>
8 weeks agoceph: osd: fix canot typo
Maximiliano Sandoval [Wed, 17 Jul 2024 12:16:50 +0000 (14:16 +0200)]
ceph: osd: fix canot typo

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
8 weeks agomakefile: fix waring typo
Maximiliano Sandoval [Wed, 17 Jul 2024 12:16:49 +0000 (14:16 +0200)]
makefile: fix waring typo

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
8 weeks agoguest import: fix attaced typo in translatable string
Maximiliano Sandoval [Wed, 17 Jul 2024 12:16:48 +0000 (14:16 +0200)]
guest import: fix attaced typo in translatable string

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
8 weeks agoui: ceph: rename wizzard variable to wizard
Maximiliano Sandoval [Wed, 17 Jul 2024 12:16:47 +0000 (14:16 +0200)]
ui: ceph: rename wizzard variable to wizard

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
8 weeks agofix typos in comments
Maximiliano Sandoval [Wed, 17 Jul 2024 12:16:46 +0000 (14:16 +0200)]
fix typos in comments

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
8 weeks agoutils: align regex of parse_ceph_version with Perl equivalent
Max Carrara [Mon, 1 Jul 2024 14:10:35 +0000 (16:10 +0200)]
utils: align regex of parse_ceph_version with Perl equivalent

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
8 weeks agoceph: services: refactor version existence check as guard clause
Max Carrara [Mon, 1 Jul 2024 14:10:34 +0000 (16:10 +0200)]
ceph: services: refactor version existence check as guard clause

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
8 weeks agoceph: services: remove old cluster broadcast
Max Carrara [Mon, 1 Jul 2024 14:10:33 +0000 (16:10 +0200)]
ceph: services: remove old cluster broadcast

The `ceph-version` key is not used anymore, so it can go.

Double-checked by `rg`ing through all of our repositories.

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
8 weeks agoceph: tools: parse Ceph version in separate sub and update regex
Max Carrara [Mon, 1 Jul 2024 14:10:32 +0000 (16:10 +0200)]
ceph: tools: parse Ceph version in separate sub and update regex

The part of the `get_local_version` sub that's concerned with actually
parsing the Ceph version is factored into a separate sub
`parse_ceph_version`. That way the parsing logic can easily be reused.

Make the version regex more maintainable declaring it as a variable,
breaking it up and commenting it by using the x flag.

Also remove the part that parses our Debian revision (e.g. -pve1) from
the version, as we do not actually include that in our Ceph builds.

The part of the regex that parses the build commit hash is made
mandatory (remove '?' after its group).

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
8 weeks agoceph: tools: refactor installation check as guard clause
Max Carrara [Mon, 1 Jul 2024 14:10:31 +0000 (16:10 +0200)]
ceph: tools: refactor installation check as guard clause

Signed-off-by: Max Carrara <m.carrara@proxmox.com>
Tested-by: Lukas Wagner <l.wagner@proxmox.com>
Reviewed-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Igor Thaller <igor.thaller@brg9.at>
2 months agochangelog: fix typos
Maximiliano Sandoval [Wed, 17 Jul 2024 12:21:09 +0000 (14:21 +0200)]
changelog: fix typos

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
2 months agoapi: node status: fix description of current-kernel schema entry
Thomas Lamprecht [Mon, 15 Jul 2024 07:44:25 +0000 (09:44 +0200)]
api: node status: fix description of current-kernel schema entry

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2 months agowww: backup: clarify experimental change detection modes
Christian Ebner [Wed, 26 Jun 2024 07:00:13 +0000 (09:00 +0200)]
www: backup: clarify experimental change detection modes

Currently, the whole mode selector is labeled as experimental, this
does however give the impression that also the default legacy mode is
an experimental mode.
To clarify that only the `data` and `metadata` change detection modes
are experimental, move the experimental label to the individual
modes and explicitly mention the experimental modes in the message.

Also, make it more clear that the archive encoding format depends on
the selected mode.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
2 months agopve7to8: fix typo in log message
Stoiko Ivanov [Wed, 10 Jul 2024 10:59:36 +0000 (12:59 +0200)]
pve7to8: fix typo in log message

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
2 months agoapi: replication: include 'hostname' field for notifications
Lukas Wagner [Mon, 10 Jun 2024 08:40:26 +0000 (10:40 +0200)]
api: replication: include 'hostname' field for notifications

The field contains the hostname of the host (without any domain part)
which sends the notification. This field can be used in match-field
match rules.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2 months agovzdump: apt: notification: do not include domain in 'hostname' field
Lukas Wagner [Mon, 10 Jun 2024 08:40:25 +0000 (10:40 +0200)]
vzdump: apt: notification: do not include domain in 'hostname' field

 - The man page warns about the usage of `hostname -f`, since a host
   may have multiple domains (or none at all)
 - The fallback PVE::INotify::nodename() already only returned the
   hostname without the domain part
 - Fencing notifications didn't include the domain part anyway

This may result in soft-breakage for any users who have already relied
on the domain being present. If there is need for it, it could include
a fqdn metadata field.

The hostname property used for rendering the notification template
is unaffected for now.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2 months agoapi: replication: add 'job-id' to notification metadata
Lukas Wagner [Mon, 10 Jun 2024 08:40:24 +0000 (10:40 +0200)]
api: replication: add 'job-id' to notification metadata

This allows users to create notification match rules for specific
replication jobs, if they so desire.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
2 months agopve7to8: allow arbitrary newer running '-pve' kernels after upgrade
Fiona Ebner [Tue, 28 May 2024 10:59:23 +0000 (12:59 +0200)]
pve7to8: allow arbitrary newer running '-pve' kernels after upgrade

As recently reported in the community forum [0], 6.8 pve kernels would
not be detected correctly by the script. Allow arbitrary newer
versions if already upgraded for future-proofing.

[0]: https://forum.proxmox.com/threads/145723/post-664612

Suggested-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
[FG: made `return 0;` explicit in closure]
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2 months agovzdump: fix unit for bandwidth limit in log message
Fiona Ebner [Wed, 26 Jun 2024 14:32:30 +0000 (16:32 +0200)]
vzdump: fix unit for bandwidth limit in log message

The documentation 'man vzdump' states that the value is in KiB/s. This
is correct, as seen in the plugin implementations, where the value is
multiplied by 1024.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
2 months agoapi: aplinfo: rename REs for iso and vztmpl extensions
Lorenz Stechauner [Fri, 22 Oct 2021 12:23:12 +0000 (14:23 +0200)]
api: aplinfo: rename REs for iso and vztmpl extensions

Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
3 months agoui: fix align mode of two column container
Dominik Csapak [Wed, 24 Apr 2024 11:39:45 +0000 (13:39 +0200)]
ui: fix align mode of two column container

'stretch' is most often the wrong value, as that will stretch
everything, to the height of the whole container, including fields.
That is not desirable, since fields look not good when stretched this
way (e.g. the controls are not correctly aligned).

To fix it, simply set it to 'begin'.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
3 months agovzdump config: add fleecing property string
Fiona Ebner [Wed, 12 Jun 2024 08:16:34 +0000 (10:16 +0200)]
vzdump config: add fleecing property string

This makes it clear(er) that fleecing can be configured as a node-wide
default too.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
3 months agoui: qemu: hardware: use asynchronous remove API call for disk hot-unplug
Fiona Ebner [Fri, 3 May 2024 11:19:56 +0000 (13:19 +0200)]
ui: qemu: hardware: use asynchronous remove API call for disk hot-unplug

The backend uses a 10 minute timeout for disk hot-unplug, so avoid
using the synchronous call which only has a 30 second timeout.

Commit 3b2e557f ("close #584: ui qemu: changed remove unused disk to
asynchron call") introduced the necessary functionality when removing
unused disks.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
3 months agoui: qemu: hardware: use background delay for asynchronous remove tasks
Fiona Ebner [Fri, 3 May 2024 11:19:55 +0000 (13:19 +0200)]
ui: qemu: hardware: use background delay for asynchronous remove tasks

Avoids spawning a progress window for tasks that do complete more
quickly than the background delay.

Currently, the remove task is only asynchronous (i.e. using POST) when
it's for an unused disk, but this might change in the future (e.g. for
hot-unplug).

When adding a disk, a background delay of 5 seconds is already used.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
3 months agobump version to 8.2.4
Fabian Grünbichler [Mon, 10 Jun 2024 12:00:15 +0000 (14:00 +0200)]
bump version to 8.2.4

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
3 months agod/control: bump pve-container
Fabian Grünbichler [Mon, 10 Jun 2024 11:57:37 +0000 (13:57 +0200)]
d/control: bump pve-container

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
3 months agovzdump: add pbs-change-detection-mode to config template
Christian Ebner [Mon, 10 Jun 2024 09:57:46 +0000 (11:57 +0200)]
vzdump: add pbs-change-detection-mode to config template

Include the additional parameter to set the `change-detection-mode`
for backup jobs with Proxmox Backup Server target as node wide
configuration, including possible variants to be set.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
3 months agowww: advanced backup: add pbs change detection mode selector
Christian Ebner [Mon, 10 Jun 2024 09:57:45 +0000 (11:57 +0200)]
www: advanced backup: add pbs change detection mode selector

The proxmox backup client allows to switch the method used to encode
data based on a change-detection-mode parameter.  Expose this setting
as experimental feature in the advanced panel for a backup job.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
3 months agopvestatd: clear trailing newlines
Lukas Wagner [Tue, 4 Jun 2024 09:23:40 +0000 (11:23 +0200)]
pvestatd: clear trailing newlines

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
3 months agobump version to 8.2.3
Wolfgang Bumiller [Tue, 4 Jun 2024 09:09:02 +0000 (11:09 +0200)]
bump version to 8.2.3

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
3 months agonotifications: use named templates instead of in-code templates
Lukas Wagner [Tue, 21 May 2024 13:31:48 +0000 (15:31 +0200)]
notifications: use named templates instead of in-code templates

This commit adapts notification sending for
    - package update
    - replication
    - backups

to use named templates (installed in /usr/share/pve-manager/templates)
instead of passing template strings defined in code to the
notification stack.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
3 months agotests: remove vzdump_notification test
Lukas Wagner [Tue, 21 May 2024 13:31:47 +0000 (15:31 +0200)]
tests: remove vzdump_notification test

With the upcoming changes in how we send notifications, this one
really becomes pretty annoying to keep working. The location where
templates are looked up are defined in the proxmox_notify crate, so
there is no easy way to mock this for testing.
The test itself seemed not super valuable, mainly testing if
the backup logs are shortened if they ware too long - so they are just
removed.

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
3 months agogitignore: ignore any test artifacts
Lukas Wagner [Tue, 21 May 2024 13:31:46 +0000 (15:31 +0200)]
gitignore: ignore any test artifacts

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Max Carrara <m.carrara@proxmox.com>
Reviewed-by: Max Carrara <m.carrara@proxmox.com>
3 months agoapi: add proxmox-firewall to versions pkg list
Mira Limbeck [Wed, 24 Apr 2024 11:35:02 +0000 (13:35 +0200)]
api: add proxmox-firewall to versions pkg list

Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
4 months agoupdate shipped appliance info index
Thomas Lamprecht [Tue, 7 May 2024 09:55:24 +0000 (11:55 +0200)]
update shipped appliance info index

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoupdate shipped appliance info index
Thomas Lamprecht [Tue, 23 Apr 2024 19:45:53 +0000 (21:45 +0200)]
update shipped appliance info index

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agobump version to 8.2.2
Thomas Lamprecht [Tue, 23 Apr 2024 19:33:35 +0000 (21:33 +0200)]
bump version to 8.2.2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: importer: try to better convey what live-import does
Thomas Lamprecht [Tue, 23 Apr 2024 17:51:26 +0000 (19:51 +0200)]
ui: importer: try to better convey what live-import does

It's hard to cram a easy to understandable meaning in the space we
have, to get a bit more space move the warning hint to a separate line
and use the box-label to show an always visible hint about the VM to
be stopped previously.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agofix #5251: login: set autocomplete on password and user
Maximiliano Sandoval [Mon, 19 Feb 2024 10:37:03 +0000 (11:37 +0100)]
fix #5251: login: set autocomplete on password and user

By default they have 'autocomplete=off'. From [1]:

 > In most modern browsers, setting autocomplete to "off" will not
 > prevent a password manager from asking the user if they would like to
 > save username and password information, or from automatically filling
 > in those values in a site's login form. See the autocomplete
 > attribute and login fields [2].

[1] https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete
[2] https://developer.mozilla.org/en-US/docs/Web/Security/Securing_your_site/Turning_off_form_autocompletion#the_autocomplete_attribute_and_login_fields

Signed-off-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
4 months agoui: user edit: protect user's TFA settings again
Fiona Ebner [Fri, 9 Feb 2024 13:08:19 +0000 (14:08 +0100)]
ui: user edit: protect user's TFA settings again

Same rationale as in 5b25580d ("Protect the user's tfa key setting."):
it should not be possible to change the value when it's not an actual
secret but a reference to what TFA method is used or, in case of 'x',
whether TFA is used.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
4 months agovzdump: also warn when hook script fails for backup-abort or log-end phase
Fiona Ebner [Mon, 22 Jan 2024 09:55:21 +0000 (10:55 +0100)]
vzdump: also warn when hook script fails for backup-abort or log-end phase

to make it more visible, also in task logs.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
4 months agoui: backup job: fixup missing trailing comma
Thomas Lamprecht [Tue, 23 Apr 2024 14:40:17 +0000 (16:40 +0200)]
ui: backup job: fixup missing trailing comma

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: mobile: enable subscription popup
Dominik Csapak [Thu, 14 Dec 2023 09:55:17 +0000 (10:55 +0100)]
ui: mobile: enable subscription popup

not sure if this was lost at some point or never implemented, but we
want to be consistent with the remaining web ui and apps, so show
the subscription popup here too.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: mobile: fix totp login
Dominik Csapak [Thu, 14 Dec 2023 09:55:16 +0000 (10:55 +0100)]
ui: mobile: fix totp login

Log-in with TOTP enabled account on mobile was broken due to these two
commits:
- pve-manager: 509d7a20 ("mobile ui: implement dummy message box and
  scrip loader")
- pve-access-control: cb64967 ("api: drop old verify_tfa api call")

The pve-manager one overwrote the Ext.MessageBox and Ext.Msg classes
and thus removed the Ext.MessageBox.OKCANCEL constant that represented
the buttons of popup messages (without those no buttons on message
boxes where shown).

This override did not work as intended, as we still  showed the
message box by accident, because at that point the Ext.MessageBox was
already initialized (so it was overwritten), but Ext.Msg was not (this
happens later).

And the pve-access-control removed the old tfa verify api (which is
now done via the /access/ticket api)

So to fix that, we have to adapt to the api changes and restore the
stock Ext.MessageBox and Ext.Msg classes by removing the overrides
(i couldn't find where we would need those)

We still cannot handle u2f/WebAuthn or recovery methods though.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job editor: fix disable behavior for fleecing storage
Dominik Csapak [Tue, 23 Apr 2024 12:15:00 +0000 (14:15 +0200)]
ui: backup job editor: fix disable behavior for fleecing storage

commit 569b0388 (ui: fix reset behavior of backup job editor) disabled
the fleecing storage field by default (as that is the default state)
to fix the reset behavior. This broke editing the job when fleecing
was enabled and the user did not navigate to the advanced tab yet.

It seems that the 'bind' here only gets triggered once the panel is
rendered, but we actually need it before that.

To work around the issue for now, manually enable/disable the field
when toggling the fleecing checkbox. (Though this warrants a bit of
deeper investigation into this bind behavior)

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 months agoui: backup jobs: fix fleecing parameters for 'run now' button
Dominik Csapak [Tue, 23 Apr 2024 12:14:59 +0000 (14:14 +0200)]
ui: backup jobs: fix fleecing parameters for 'run now' button

we have to 'printPropertyString' the fleecing parameters, otherwise
we'll get api parameter errors for that

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 months agoui: fix reset behavior of backup job editor
Dominik Csapak [Tue, 23 Apr 2024 07:30:24 +0000 (09:30 +0200)]
ui: fix reset behavior of backup job editor

when we `bind` we also have to set the initial value correctly,
otherwise the form dirty tracking is off (the initial bind set does not
reset the `originalValue`)

also the bandwidth selector auto transformed the value `null` to `0`
when there was no initial transformation. Since this is not a valid
value anyway, skip that.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 months agobump version to 8.2.1
Thomas Lamprecht [Mon, 22 Apr 2024 17:36:25 +0000 (19:36 +0200)]
bump version to 8.2.1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: qemu: clarify that the intel vIOMMU is compatible with AMD
Thomas Lamprecht [Mon, 22 Apr 2024 17:46:39 +0000 (19:46 +0200)]
ui: qemu: clarify that the intel vIOMMU is compatible with AMD

This is definitively a source of confusion otherwise.

Reported-by: Fiona Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job: allow to set up fleecing for a job in advanced config
Thomas Lamprecht [Mon, 22 Apr 2024 10:44:02 +0000 (12:44 +0200)]
ui: backup job: allow to set up fleecing for a job in advanced config

Use the new advanced options tab to expose the fleecing enable and
storage selections per backup job.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job: rework assembling deleted keys + style fixes
Thomas Lamprecht [Mon, 22 Apr 2024 10:42:05 +0000 (12:42 +0200)]
ui: backup job: rework assembling deleted keys + style fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job: use boolean expression directly for boolean result
Thomas Lamprecht [Mon, 22 Apr 2024 10:43:39 +0000 (12:43 +0200)]
ui: backup job: use boolean expression directly for boolean result

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: qemu machine: update link to better docs section
Dominik Csapak [Mon, 22 Apr 2024 13:20:44 +0000 (15:20 +0200)]
ui: qemu machine: update link to better docs section

qm_machine_type is more relevant to this panel thatn qm_system_settings

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
4 months agoui: machine: add link to documentation of the system settings
Markus Frank [Mon, 15 Apr 2024 08:50:02 +0000 (10:50 +0200)]
ui: machine: add link to documentation of the system settings

4 months agoui: machine: add viommu ComboBox
Markus Frank [Mon, 15 Apr 2024 08:50:01 +0000 (10:50 +0200)]
ui: machine: add viommu ComboBox

Added a proxmoxKVComboBox for selecting a vIOMMU implementation for a VM.
If i440fx is selected, another ComboBox will be enabled/visible that does not
have the Intel option, as Intel-vIOMMU is not compatible with i440fx.

Uses the new machine property-string from the qemu-server's "config: define
machine schema as property-string" commit and the viommu option added in the
qemu-server's "fix #3784: config: Parameter for guest vIOMMU + test-cases"
commit.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
4 months agoui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit
Markus Frank [Mon, 22 Apr 2024 10:27:56 +0000 (12:27 +0200)]
ui: qemu: add clipboard ComboBox as a advanced option in DisplayEdit

For SPICE and VNC, a different message is displayed.

The backend code for the clipboard option can be found in the
'config: enable vnc clipboard parameter in vga_fmt'-commit in qemu-server.

Signed-off-by: Markus Frank <m.frank@proxmox.com>
4 months agoui: qemu: change logic to use ViewModel instead of listener function
Markus Frank [Mon, 22 Apr 2024 10:27:55 +0000 (12:27 +0200)]
ui: qemu: change logic to use ViewModel instead of listener function

Signed-off-by: Markus Frank <m.frank@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
Tested-by: Dominik Csapak <d.csapak@proxmox.com>
4 months agoacme: ui: handle missing meta field in directory response
Folke Gleumes [Mon, 22 Apr 2024 09:01:02 +0000 (11:01 +0200)]
acme: ui: handle missing meta field in directory response

When none of the meta fields is set by the directory, the whole
dictionary is missing from the response, leading to an exception
when testing for fields inside it.

Reported-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Folke Gleumes <f.gleumes@proxmox.com>
Tested-by: Stoiko Ivanov <s.ivanov@proxmox.com>
4 months agoui: backup job: rework empty-text for advanced fields again
Thomas Lamprecht [Mon, 22 Apr 2024 09:24:52 +0000 (11:24 +0200)]
ui: backup job: rework empty-text for advanced fields again

This partially reverts commit a32a5c4a6 ("ui: backup job: rework hint
about fallback config and make it less flashy"), i.e., the part about
the fallback values, as those was barely visible now.

Add the schema default to the end of the description and expand the
hint at the bottom to also mention that this is used as second level
fallback, if the vzdump.conf does not has the option set.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job: correctly align descriptions with fields in advanced options
Dominik Csapak [Mon, 22 Apr 2024 08:16:46 +0000 (10:16 +0200)]
ui: backup job: correctly align descriptions with fields in advanced options

Merges the column1/2/B into just single items so that the vertical
alignment is still correct even if a description wraps over multiple
lines.

Use the new pveTwoColumnContainer to achieve this without extra
boilerplate code and use a 1/3 of the width for the field and the 2/3
rest for the description.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: adapt to changes in prev. commit, reword message, fix eslint ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: add new container widget to layout two child widgets into two columns
Dominik Csapak [Mon, 22 Apr 2024 08:16:45 +0000 (10:16 +0200)]
ui: add new container widget to layout two child widgets into two columns

The new pveTwoColumnContainer can show a widget on the start (left)
column and another one on the end (right) one, with a (default) flex
ratio of 1:2

This is helpful when wanting fields to align vertically in an input
panel that have different height, e.g., because of text wrapping.

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: s/Widget/Column/;s/ratio/flex/ and expose starFlex ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: backup job: refactor preparation of form values into own function
Thomas Lamprecht [Sun, 21 Apr 2024 14:15:39 +0000 (16:15 +0200)]
ui: backup job: refactor preparation of form values into own function

The indentation level was rather deep here so move the preparation of
the API response for getting set to the UI form into a separate
function.

No semantic change intended.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agod/control: add proxmox-firewall as recommended dependency
Thomas Lamprecht [Sun, 21 Apr 2024 12:18:24 +0000 (14:18 +0200)]
d/control: add proxmox-firewall as recommended dependency

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agod/control: wrap-and-sort -tkn
Thomas Lamprecht [Sun, 21 Apr 2024 12:15:04 +0000 (14:15 +0200)]
d/control: wrap-and-sort -tkn

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agod/copyright: update years
Thomas Lamprecht [Sun, 21 Apr 2024 11:06:52 +0000 (13:06 +0200)]
d/copyright: update years

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agobump version to 8.2.0
Thomas Lamprecht [Sun, 21 Apr 2024 11:04:08 +0000 (13:04 +0200)]
bump version to 8.2.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agod/control: bump versioned dependency for widget-toolkit and common
Thomas Lamprecht [Sun, 21 Apr 2024 11:01:53 +0000 (13:01 +0200)]
d/control: bump versioned dependency for widget-toolkit and common

To ensure that the lifting of the bridge name == vmbr\d+ restriction
works correctly and that the new notes view double-click editing
setting can work.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agosdn: vlan: fix indentation in vlan edit dialogue
Stefan Hanreich [Fri, 12 Apr 2024 08:07:35 +0000 (10:07 +0200)]
sdn: vlan: fix indentation in vlan edit dialogue

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
4 months agosdn: qinq: vlan: properly validate bridge name
Stefan Hanreich [Fri, 12 Apr 2024 08:07:34 +0000 (10:07 +0200)]
sdn: qinq: vlan: properly validate bridge name

Reviewed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
4 months agoui: dc: backup: improve UX for the different 'notification-mode's
Lukas Wagner [Mon, 15 Apr 2024 09:51:01 +0000 (11:51 +0200)]
ui: dc: backup: improve UX for the different 'notification-mode's

  - Switch order of 'mailto' and 'mailnotification' field
  - When mode is 'auto', disable 'mailtnotification' field

Signed-off-by: Lukas Wagner <l.wagner@proxmox.com>
Tested-by: Maximiliano Sandoval <m.sandoval@proxmox.com>
 [ TL: drop the hint, not really explaining much as is so mostly
   visible noise ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: guest stop: show overrule checkbox also if no task is active
Thomas Lamprecht [Sat, 20 Apr 2024 18:15:03 +0000 (20:15 +0200)]
ui: guest stop: show overrule checkbox also if no task is active

The UI state about running tasks can be out of sync, especially for
situations where one quickly follows up with a stop, e.g. after
triggering a shutdown by mistake.

So, show the checkbox always for users that got Sys.Modify on (some)
node, but pre-check it still only if there where task detected on
component creation (we could watch the state though and show a hint,
but that's a bit over the top IMO).

Show it also when HA is enabled but explicitly disable it there,
hopefully this increases the chance that the users can understand that
this is done by design, and isn't a bug – ideally we would also show
an extra hint.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agofix #4474: ui: guest stop: offer to overrule active shutdown tasks
Friedrich Weber [Fri, 12 Apr 2024 14:15:53 +0000 (16:15 +0200)]
fix #4474: ui: guest stop: offer to overrule active shutdown tasks

Implement a new "guest stop" confirmation message box which first
checks if there is an active shutdown task for the same guest that is
visible to the logged-in user. If there is at least one, the dialog
displays an additional default-on checkbox for overruling active
shutdown tasks. If the user confirms and the checkbox is checked, the
UI sends a guest stop API request with the `overrule-shutdown`
parameter set to 1. If there are no active shutdown tasks, or the
checkbox is unchecked, the UI sends a guest stop API request without
`overrule-shutdown`.

To avoid an additional API request for querying active shutdown tasks,
check the UI's current view of cluster tasks instead, which is fetched
from the `pve-cluster-tasks` store.

As the UI might hold an outdated task list, there are some
opportunities for races, e.g., the UI may miss a new shutdown task or
consider a shutdown task active even though it has already terminated.
These races either result in a surviving shutdown task that the user
still needs to abort manually, or a superfluous `override-shutdown=1`
parameter that does not actually abort any tasks. Since "stop
overrules shutdown" is merely a convenience feature, both outcomes
seem bearable.

The confirmation message box is now always marked as dangerous (with a
warning sign icon), whereas previously it was only marked dangerous if
the stop issued from the guest panel, but not when issued from the
resource tree command menu.

Signed-off-by: Friedrich Weber <f.weber@proxmox.com>
Reviewed-by: Dominik Csapak <d.csapak@proxmox.com>
 [ TL: squash in some slightly opinionated code/style clean-ups ]
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: browser local settings: add new edit-notes-on-double-click option
Thomas Lamprecht [Sat, 20 Apr 2024 15:27:44 +0000 (17:27 +0200)]
ui: browser local settings: add new edit-notes-on-double-click option

The NotesView in the widget-toolkit learned to respect this opt-out
setting recently.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agoui: virtual machines: add Windows Server 2025 to OS types
Thomas Lamprecht [Sat, 20 Apr 2024 14:17:33 +0000 (16:17 +0200)]
ui: virtual machines: add Windows Server 2025 to OS types

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 months agofirewall: expose configuration option for new nftables firewall
Stefan Hanreich [Fri, 19 Apr 2024 09:42:37 +0000 (11:42 +0200)]
firewall: expose configuration option for new nftables firewall

There's a new firewall implementation available as `proxmox-firewall`
package, in contrast to the existing `pve-firewall` package it is
using nftables directly, not the legacy iptables, and can thus
leverage a modern stack with atomic updates, avoiding the need for
different tools (e.g., ebtables), and not requiring intermediate
firewall bridges to handle VM flow correctly. Additionally it's
written in rust, making it more efficient and safer to change.

The new implementation is using the same configuration file as source
and should be mostly the same in semantic behavior, it basically is a
drop-in replacement besides one known issue:

There is currently one major issue that we still need to solve:
REJECTing packets from the guest firewalls is currently not possible
for incoming traffic (it will instead be dropped).

This is due to the fact that we are using the postrouting hook of
nftables in a table with type bridge for incoming traffic. In the
bridge table in the postrouting hook we cannot tell whether the packet
has also been sent to other ports in the bridge (e.g. when a MAC has
not yet been learned and the packet then gets flooded to all bridge
ports). If we would then REJECT a packet in the postrouting hook this
can lead to a bug where the firewall rules for one guest REJECT a
packet and send a response (RST for TCP, ICMP port/host-unreachable
otherwise).

While this is being addressed, and the whole stack is better tested in
general, the new FW will be only enabled if the admin enables a
boolean configuration which this patch exposes on the UI.

Signed-off-by: Stefan Hanreich <s.hanreich@proxmox.com>
4 months agopveversion: fix whitespaces
Alexander Zeidler [Fri, 19 Apr 2024 16:33:45 +0000 (18:33 +0200)]
pveversion: fix whitespaces

Signed-off-by: Alexander Zeidler <a.zeidler@proxmox.com>
4 months agobump version to 8.1.11
Fiona Ebner [Fri, 19 Apr 2024 14:46:55 +0000 (16:46 +0200)]
bump version to 8.1.11

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>
4 months agod/control bump versioned dependency for libpve-(guest-)common-perl and qemu-server
Fiona Ebner [Fri, 19 Apr 2024 14:23:04 +0000 (16:23 +0200)]
d/control bump versioned dependency for libpve-(guest-)common-perl and qemu-server

to make the backup fleecing feature available. The bump for
qemu-server is also required for moving unused disks of VMs.

The bump for libpve-common-perl is required because of pve-common
commit c302a28 ("json schema: add format description for
pve-storage-id standard option"), which is required for API
verification.

Signed-off-by: Fiona Ebner <f.ebner@proxmox.com>