Commit Graph

40 Commits

Author SHA1 Message Date
Thomas Lamprecht
fb64d2c785 pve6to7: update expected running kernel version to 5.13 or 5.15
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 7d7e1bf2755eb459fdcf2a47ac1bc15166c06640)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2022-03-14 10:44:20 +01:00
Rhonda D'Vine
41a2c7ab37 Only check deb sources.list entries
The check isn't specific enough, it also catches deb-src entries and
would give a false impression of security in certain circumstances, or
lead to false negatives in case you have a deb-src entry for
buster/updates even though you have bullseye-security in just the next
line -- something that isn't that uncommon for developers.

Signed-off-by: Rhonda D'Vine <rhonda@deb.at>
Reviewed-by: Fabian Ebner <f.ebner@proxmox.com>
(cherry picked from commit f00ebb3699621c795a515151b1f2632c731ed556)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-13 06:53:58 +02:00
Fabian Ebner
6234ee1f44 pve6to7: storage content: ignore misconfigured unreferenced volumes
If the same local storage is configured twice with content type
separation, migration in PVE 6 would lead to the volumes being
duplicated. As that would happen for every migration, such an issue
would likely be noticed already, and in PVE 7 such configuration is
not problematic for migration anymore. Also, misconfigured
unreferenced volumes are not an issue with respect to the upgrade
itself, just drop the check.

It's not necessary to scan storages with either 'images' or 'rootdir'
anymore, as only the log_info() remains.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 5dc51df910620a47459228e05675c2af81cbc46d)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 18:46:38 +02:00
Fabian Ebner
5f27a463a1 pve6to7: storage content: skip scanning storage if shared
Shared storages are not scanned for migration either, so they cannot
be problematic in this context. This could lead to false positives
where it actually is completely unproblematic:

https://forum.proxmox.com/threads/proxmox-ve-7-0-released.92007/post-401165

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
(cherry picked from commit 5071033e2e76defdf83971a6c434f10a74d771e6)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 18:46:38 +02:00
Fabian Ebner
559587bd62 pve6to7: add check for Debian security repository
since the pattern for the suite changed.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
(cherry picked from commit e88941e826c1edc2418e1b7a5d4a236be105dec9)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 18:39:13 +02:00
Thomas Lamprecht
1a38ffbce6 pve6to7: avoid parsing configs to often, merge lxc.cgroup check and note length one
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit d0ec7e3e2fca754ed9a92716392c47af75efb4e9)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 14:21:39 +02:00
Thomas Lamprecht
edb91999d5 pve6to7: remember if cgroup is forced to legacy
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 999b4335ef1dc69777198cdd2fd4c63bae0bbe97)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 14:21:39 +02:00
Stoiko Ivanov
71d936e7b3 pve6to7: add check for 'lxc.cgroup.' keys in container config
The check is rather straight forward - and might help users who
passthrough devices to their containers.

Reported in our community forum:
https://forum.proxmox.com/threads/pve-7-0-lxc-intel-quick-sync-passtrough-not-working-anymore.92025/

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 4cc5130b5678123135ae82ceb96e9c6da6fe1248)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-07 14:21:39 +02:00
Thomas Lamprecht
aaf792a5be pve6to7: adapt noout warn
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-06 14:52:50 +02:00
Fabian Grünbichler
3b776617ba pve6to7: enable noout before upgrade
even if the cluster-wide Ceph versions are uniform.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-06 14:22:11 +02:00
Fabian Grünbichler
4798ac1879 pve6to7: dont guard noout check on Ceph version
we don't have a mandatory Ceph major version upgrade this time around,
so this check does not make sense. instead, we want noout until the full
cluster is upgraded. let's use the simple approach and just flip the
switch to "turn off noout if all of Ceph is a single version" in the PVE
7.x branch.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
(cherry picked from commit 5617b13b915e79c582de5d2c9f8d8d814e79559a)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-06 14:21:54 +02:00
Fabian Grünbichler
742fbff57f pve6to7: check for >= Octopus
and drop the Nautilus OSD upgrade check while we are at it..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
(cherry picked from commit d1c51d86cab38d099fc64443f6b18717fb57eb9f)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-06 14:21:54 +02:00
Fabian Grünbichler
4d26644a59 pve6to7: remove PASS noise for ceph
these were mostly relevant for the Luminous -> Nautilus upgrade, and we
don't need to list all the default passing states that our tooling sets
up anyway.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
(cherry picked from commit efa7075778552938accc108368515f52343cbdfc)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-06 14:21:54 +02:00
Fabian Grünbichler
5a77d2ca78 pve6to7: use new flags API
the old one is not available post-upgrade, let's use a single codepath
for this.

the new API only allows querying user-settable flags, but the only flags
we check besides 'noout' are not relevant for an upgrade of PVE 6.x to
7.x (PVE 6.x only supports Nautilus+ which requires these flags to be
set in order to work) so we can just drop those outdated checks instead
of extending/refactoring the API.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
(cherry picked from commit 05dc1ab498ff457b43723ab3e166fa27eff37063)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-06 14:21:54 +02:00
Thomas Lamprecht
f32b1f03b8 pve6to7: rework full-check skip-message slightly
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 8e0530c4130051ddde74fbc4567954de46f80ead)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Thomas Lamprecht
4839422a99 pve6to7: rework cgroup message slightly
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 4e55d526905dc1d182e7e98c2f4276261879c82d)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Thomas Lamprecht
e37e8fc7cf pve6to7: try to iterate in a more stable fashion
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 8b805a70c8bd1f206a37b3f834600c35870af382)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Thomas Lamprecht
af5ddc95c8 pve6to7: handle undefined ostype
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 500ccca1a5cea8ccac2d18fb8d0b8ac8b5102768)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Stoiko Ivanov
6b5d487836 pve6to7: add 'full' parameter for expensive checks
and place the container cgroupv2 support checks behind it.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 98e6cd63cf5327ab522918f1a8001719bc0f5ae6)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Stoiko Ivanov
372b737202 pve6to7: check for containers not supporting pure cgroupv2
Helpers copied from pve-container to avoid versioned bumps.

Early returns when no containers are running, or the containers don't
use systemd, as well as returning after finding the first affected
container to minimize impact and resource usage.

Checking running containers first since following /proc/<pid>/root is
cheaper than mounting all volumes for a container

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
(cherry picked from commit 97441e982adcaaff52f80c8e7e28798817d18c44)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:43:32 +02:00
Thomas Lamprecht
24cbb9d87e pve6to7: make cert check only report on errors
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-05 17:39:07 +02:00
Thomas Lamprecht
953c9d22f4 pve6to7: fix description-length warning for guests
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-07-02 11:51:01 +02:00
Fabian Grünbichler
e7de384a49 pve6to7: drop PASS for Luminous -> Nautilus check
this should pass on pretty much every system running hyper converged
Ceph on PVE 6.x ..

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-02 11:51:01 +02:00
Fabian Grünbichler
e0c5485825 pve6to7: reduce number of cluster PASS statements
these were mostly releveant for upgrading from Corosync 2.x to 3.x - so
keep the warnings/errors, but reduce the noise a bit by skipping lots of
PASS output.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-07-02 11:51:01 +02:00
Dominik Csapak
86aa9d441e pve6to7: skip user.cfg if it does not exist
Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
(cherry picked from commit 480445c500fd3b9c0c4b133428f9caeccd3f3236)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-30 16:34:48 +02:00
Fabian Ebner
4968c94488 pve6to7: more fine-grained detection of misconfigured guest volumes
If neither 'rootdir' nor 'images' are configured on a storage, but
there are guest images, just log the number of volumes found. If they
are relevant for migration, the check for unreferenced volumes will
catch them later.

Also detect content type mismatch for all volumes of existing guests,
which also covers the case of a VM image on a storage with only
'rootdir' and vice versa. To catch all such unreferenced volumes too,
it is necessary to scan all storages that do not have both content
types configured.

Change the message from 'will not work' to 'might not work'. If a
volume only referenced by a snapshot is misconfigured, it doesn't mean
that the guest doesn't work at all. Or it might be an ISO on a
misconfigured storage.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-06-30 14:08:20 +02:00
Fabian Ebner
04421bd745 pve6to7: content check: fix detecting pass
If there is a log_fail, because of misconfigured 'none' content type, the final
log_pass should not be printed.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-06-30 14:08:20 +02:00
Thomas Lamprecht
5886cca256 pve6to7: make content-type check output an actual list
As else it gets rather confusing when one has more than one or two
such images.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-21 17:11:52 +02:00
Fabian Ebner
8e120220da pve6to7: check for misconfigured content type 'none'
which will be a hard error (i.e. section will be skipped when parsing) in PVE
7.0

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
(cherry picked from commit 1cad0c7fdf1398e08625077dfa30d53256ef475b)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-21 16:52:55 +02:00
Fabian Ebner
0982871734 pve6to7: add check for guest images on misconfigured storages
migration and (container) startup will no longer work when the storage's content
type is not correct, and unreferenced volumes on such storages will not be
scanned for anymore.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
(cherry picked from commit fffa98eaf05dc944a78a9fa23f9882c6357f9f6c)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-21 16:52:55 +02:00
Thomas Lamprecht
56142f8c79 pve6to7: re-work output of description length check and add passes too
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
(cherry picked from commit 33015eb881f65030a1a2a6ebee57c5891edc6c6f)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-18 16:49:48 +02:00
Lorenz Stechauner
1be86a3678 pve6to7: add check for guest and node description length
Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
(cherry picked from commit 69677d51f7ac0c671577e70f62d95a0c7aba3e6a)
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-18 16:49:48 +02:00
Thomas Lamprecht
21aa5446b1 pve6to7: bump free space requirement to 4 GiB
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-06-18 14:27:00 +02:00
Fabian Grünbichler
d817b52449 pve6to7: use file_get_contents
instead of File::Slurp

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-18 10:59:52 +02:00
Fabian Grünbichler
b5f89880eb pve6to7: improve user.cfg parser
make it a bit more like the actual one - remove whitespace padding, use
same regex/split calls.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-18 10:54:28 +02:00
Lorenz Stechauner
31e4ad5da2 pve6to7: add check for pool permissions
the two checks make sure that:
* no user defined role 'PVEPoolUser' exists
* the user gets a hint for roles only containing Pool.Allocate and
    not Pool.Audit

a very simple parser for user.cfg was implemented to be able to
parse the (in pve 6 invalid) Pool.Audit permission

Signed-off-by: Lorenz Stechauner <l.stechauner@proxmox.com>
2021-06-18 10:54:28 +02:00
Fabian Ebner
0390b62e01 pve6to7: add check for CIFS credentials
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-06-16 14:04:30 +02:00
Fabian Grünbichler
359334501a pve6to7: improve vzdump.cron check
handle errors, and fix filename referenced in the warning.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
2021-06-16 14:04:30 +02:00
Fabian Ebner
440908162e pve6to7: add checks for backup retention options
Note that it's not possible to use read_vzdump_defaults() and storage_config(),
because they auto-converts maxfiles already.

Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
2021-06-16 14:04:30 +02:00
Thomas Lamprecht
4177a14d13 add pve6to7 WIP
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
2021-05-19 19:01:51 +02:00