]> git.proxmox.com Git - pve-container.git/log
pve-container.git
4 years agobump version to 3.0-9
Thomas Lamprecht [Tue, 29 Oct 2019 06:32:48 +0000 (07:32 +0100)]
bump version to 3.0-9

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agosetup: do host architecture translation ourself
Stefan Reiter [Mon, 28 Oct 2019 11:59:14 +0000 (12:59 +0100)]
setup: do host architecture translation ourself

This was done by the PVE:Tools backed get_host_arch method, but as we
were the only user of that specific translation and it's quite LXC
related it makes more sense to do it here. This also allows reuse of
the PVE::Tools function.

Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
4 years agoiterate pending config changes sorted
Oguz Bektas [Wed, 23 Oct 2019 16:48:27 +0000 (18:48 +0200)]
iterate pending config changes sorted

since we sort them while going through the delete hash, we can do it
for the other loops for consistency.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoadd 'lock' as a fastplug option
Oguz Bektas [Thu, 24 Oct 2019 13:58:56 +0000 (15:58 +0200)]
add 'lock' as a fastplug option

lock option needs to be fastpluggable when modifying with 'pct set'.
otherwise it registers as a pending change.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agofollowup: iterate over pending changes sorted
Thomas Lamprecht [Tue, 22 Oct 2019 11:22:33 +0000 (13:22 +0200)]
followup: iterate over pending changes sorted

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agopending apply/hotplug: use normal for loop iterate over
Oguz Bektas [Tue, 22 Oct 2019 10:40:41 +0000 (12:40 +0200)]
pending apply/hotplug: use normal for loop iterate over

format of pending_delete_hash is changed in guest-common, so we have to
use the new format while looping over the hash.

also it make no sense to have a `my ($foo, undef) = each` here, the
undef did nothing anyway.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agobump version to 3.0-8
Thomas Lamprecht [Fri, 18 Oct 2019 20:03:34 +0000 (22:03 +0200)]
bump version to 3.0-8

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agofixup error message
Thomas Lamprecht [Fri, 18 Oct 2019 19:59:50 +0000 (21:59 +0200)]
fixup error message

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoadd check to resize disk if current size could not be determined
Tim Marx [Thu, 12 Sep 2019 10:56:20 +0000 (12:56 +0200)]
add check to resize disk if current size could not be determined

This check ensures that disks aren't unintentionally shrunken, if the
size is zero due to an underlying problem.

4 years agowhitespace cleanup
Tim Marx [Thu, 12 Sep 2019 10:56:19 +0000 (12:56 +0200)]
whitespace cleanup

4 years agofix #1291: add option purge for destroy_vm api call
Christian Ebner [Tue, 15 Oct 2019 11:00:24 +0000 (13:00 +0200)]
fix #1291: add option purge for destroy_vm api call

When destroying a CT, we intentionally did not remove all related
configs such as backup or replication jobs.
The intention of this flag is to allow the removal of references to
the VM being removed from such configs on destroy.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoimplement pending changes
Oguz Bektas [Mon, 14 Oct 2019 08:28:51 +0000 (10:28 +0200)]
implement pending changes

previous behaviour directly applied the possible config changes, and
died when there was something which can't be applied while CT is
running.

instead, we now write all the changes directly into the config pending
section, and then apply or hotplug the changes depending on whether CT
is running. the non-hotpluggable changes are left as pending changes.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoapply pending changes during container start
Oguz Bektas [Mon, 14 Oct 2019 08:28:50 +0000 (10:28 +0200)]
apply pending changes during container start

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoadd vmconfig_hotplug_pending and vmconfig_apply_pending
Oguz Bektas [Mon, 14 Oct 2019 08:28:49 +0000 (10:28 +0200)]
add vmconfig_hotplug_pending and vmconfig_apply_pending

vmconfig_hotplug_pending is responsible for checking if a key/value pair
in the pending section can be hotpugged, if yes; perform a generic
replace, or perform specific actions for hotplugging the special cases.

vmconfig_apply_pending is only supposed to be called when ct isn't live.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoallow to check for in-use volumes in pending section
Oguz Bektas [Mon, 14 Oct 2019 08:28:48 +0000 (10:28 +0200)]
allow to check for in-use volumes in pending section

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoskip pending changes while taking backup
Oguz Bektas [Mon, 14 Oct 2019 08:28:46 +0000 (10:28 +0200)]
skip pending changes while taking backup

we can only clone the current state of container (without pending
changes), as otherwise the on-disk state might not match the
configuration. this also makes it more consistent to qemu-server
behavior.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoskip pending changes while cloning
Oguz Bektas [Mon, 14 Oct 2019 08:28:45 +0000 (10:28 +0200)]
skip pending changes while cloning

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoapi: config: use shared guesthelpers in GET call
Oguz Bektas [Mon, 14 Oct 2019 08:28:44 +0000 (10:28 +0200)]
api: config: use shared guesthelpers in GET call

since containers can also have pending changes now, we need a method to
get the current applied config as well as the one with the pending
changes inside. this makes the GET config api more consistent with
qemu-server's by reusing load_current_config and load_snapshot_config from
AbstractConfig.
to decide which method to call, we look at the parameters.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoadd 'pct pending'
Oguz Bektas [Mon, 14 Oct 2019 08:28:43 +0000 (10:28 +0200)]
add 'pct pending'

same as 'qm pending', the code is shared via GuestHelpers

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agofixup: add lxc/pending API path
Thomas Lamprecht [Fri, 18 Oct 2019 18:44:16 +0000 (20:44 +0200)]
fixup: add lxc/pending API path

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoadd lxc/pending API path
Oguz Bektas [Mon, 14 Oct 2019 08:28:42 +0000 (10:28 +0200)]
add lxc/pending API path

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoadapt CT config parser for pending changes
Oguz Bektas [Mon, 14 Oct 2019 08:28:41 +0000 (10:28 +0200)]
adapt CT config parser for pending changes

config parser can now read/write [pve:pending] section. this was named
such, instead of [PENDING], after on- and offline discussion regarding
namespacing the pending section and snapshots.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agodelete_mp: warn if we ignore a volume deletion due to wrong owner
Thomas Lamprecht [Fri, 18 Oct 2019 10:51:21 +0000 (12:51 +0200)]
delete_mp: warn if we ignore a volume deletion due to wrong owner

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agofix #2412: ct destroy: only delete config after deleted from pools, fw
Thomas Lamprecht [Fri, 18 Oct 2019 10:01:49 +0000 (12:01 +0200)]
fix #2412: ct destroy: only delete config after deleted from pools, fw

commit message stolen from:
https://pve.proxmox.com/pipermail/pve-devel/2019-October/039594.html

Between calling destroy_lxc_container and removing the ID from
user.cfg (remove_vm_access) creating a new CT with this ID was
possible. CTs could go missing from pools as a consequence.

unlinking must happen at the very end of the deletion
process to avoid that other nodes use the ID in the meanwhile

Further lock the config after the VM was destroyed with a config lock
named, well, destroyed. This way it's easy to know that the CT was
destroyed but has still the config skelleton and FW, access etc.
stuff possible left over.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agouse print_snapshot_tree guest helper for pct listsnapshot
Oguz Bektas [Wed, 2 Oct 2019 09:39:54 +0000 (11:39 +0200)]
use print_snapshot_tree guest helper for pct listsnapshot

adds feature parity between qm/pct 'listsnapshot' w.r.t. showing
snapshot tree ordered by date.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agod/control: bump version dependency to libpve-guest-common-perl
Thomas Lamprecht [Fri, 18 Oct 2019 08:47:19 +0000 (10:47 +0200)]
d/control: bump version dependency to libpve-guest-common-perl

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoreuse guest-common destroy_config
Thomas Lamprecht [Fri, 18 Oct 2019 08:42:32 +0000 (10:42 +0200)]
reuse guest-common destroy_config

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoprepend underscores for is_volume_in_use private helper
Oguz Bektas [Mon, 14 Oct 2019 08:28:47 +0000 (10:28 +0200)]
prepend underscores for is_volume_in_use private helper

this helper was defined twice, once as 'my $is_volume_in_use' sub and
second as a helper sub. as our other helpers with a similar structure,
it is better to prepend the variable sub with two underscores.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoadd upcomming Ubuntu 19.10 Eoan as supported
Thomas Lamprecht [Thu, 3 Oct 2019 11:03:04 +0000 (13:03 +0200)]
add upcomming Ubuntu 19.10 Eoan as supported

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agorestore lxc.* entries once
Fabian Grünbichler [Wed, 25 Sep 2019 12:35:04 +0000 (14:35 +0200)]
restore lxc.* entries once

either via recover_config, OR via restore_configuration. non-root behaviour stays the same.

Tested-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agofix issue where ttys aren't correctly set after restore
Oguz Bektas [Fri, 13 Sep 2019 10:35:57 +0000 (12:35 +0200)]
fix issue where ttys aren't correctly set after restore

restore from unpriv to priv causes a problem with the log-in from web
console, since the /etc/securetty file isn't modified after a restore to
reflect that change (/dev/lxc/tty1 and so on).

template_fixup is normally called in post_create_hook, but we have no
$password or $ssh_keys to call the hook with during the restore. instead
we call template_fixup by itself to fix the ttys on some distributions.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
4 years agoapi lxc: remove trailing whitespace
Oguz Bektas [Thu, 5 Sep 2019 14:11:16 +0000 (16:11 +0200)]
api lxc: remove trailing whitespace

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoNewline cleanups
Christian Ebner [Mon, 1 Jul 2019 13:43:49 +0000 (15:43 +0200)]
Newline cleanups

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
4 years agobump version to 3.0-7
Thomas Lamprecht [Tue, 3 Sep 2019 05:21:27 +0000 (07:21 +0200)]
bump version to 3.0-7

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agod/control: bump version dependency from pve-common to 6.0-4
Thomas Lamprecht [Tue, 3 Sep 2019 05:19:33 +0000 (07:19 +0200)]
d/control: bump version dependency from pve-common to 6.0-4

to ensure we've the new fchownat syscall helper available

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoumount_all tell caller if we succeeded in $noerr case
Thomas Lamprecht [Wed, 28 Aug 2019 08:46:28 +0000 (10:46 +0200)]
umount_all tell caller if we succeeded in $noerr case

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodon't leave fstrim lock if mount_all fails
Oguz Bektas [Mon, 26 Aug 2019 14:06:32 +0000 (16:06 +0200)]
don't leave fstrim lock if mount_all fails

when a container has a mountpoint which can't be mounted for some
reason, mount_all dies and the fstrim lock stays. prevent this by
moving the call into eval, warn if any error occurs.

Still try to unmount all already mounted MPs so that nothing blocking
remains left.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agosetup: allow CentOS 5 and CentOS 8
Thomas Lamprecht [Tue, 27 Aug 2019 16:49:01 +0000 (18:49 +0200)]
setup: allow CentOS 5 and CentOS 8

One is in the extended support phase, it should not be used but
people report that the CentOS 6 code path works just fine, so why
not...

The other is for the upcoming CentOS 8, while not fully testable for
compatibility yet, CentOS 7 code path should do the trick, else
we'll need to adapt it anyway, so see this as experimental

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agomountpoints: create parent dirs with correct owner
Fabian Grünbichler [Wed, 24 Jul 2019 11:37:13 +0000 (13:37 +0200)]
mountpoints: create parent dirs with correct owner

otherwise unprivileged containers might end up with directories that
they cannot modify since they are owned by the user root in the host
namespace, instead of root inside the container.

note: the problematic behaviour is only exhibited when an intermediate
directory needs to be created, e.g. a mountpoint /test/mp gets mounted,
and /test does not yet exist.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agobump version to 3.0-5
Fabian Grünbichler [Fri, 26 Jul 2019 10:41:24 +0000 (12:41 +0200)]
bump version to 3.0-5

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agorestore: correctly handle fw config from archive
Fabian Grünbichler [Thu, 25 Jul 2019 12:40:42 +0000 (14:40 +0200)]
restore: correctly handle fw config from archive

and skip restoring it if the user only has VM.Backup permissions, the
contained config file is a symlink, or if it is empty.

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agovzdump: always add (empty) firewall config
Fabian Grünbichler [Thu, 25 Jul 2019 12:40:41 +0000 (14:40 +0200)]
vzdump: always add (empty) firewall config

just like we always add the container config

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agobump version to 3.0-4
Thomas Lamprecht [Fri, 19 Jul 2019 14:05:10 +0000 (16:05 +0200)]
bump version to 3.0-4

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agodebian: bump compat to 12 and don't restart container.slice
Thomas Lamprecht [Fri, 19 Jul 2019 13:42:13 +0000 (15:42 +0200)]
debian: bump compat to 12 and don't restart container.slice

since compat 10 the restart is default, as I want to use
'dh_installsystemd' (vs 'dh_systemd_start') I need at least compat
level 11, so go for the now recommended compat level 12.

diffoscope tells me that the main change us the wanted:

./postinst
> @@ -1,10 +1,15 @@
>  #!/bin/sh
>  set -e
> -# Automatically added by dh_systemd_start/12.1.1
> +# Automatically added by dh_installsystemd/12.1.1
>  if [ "$1" = "configure" ] || [ "$1" = "abort-upgrade" ] || [ "$1" = "abort-deconfigure" ] || [ "$1" = "abort-remove" ] ; then
>   if [ -d /run/systemd/system ]; then
>           systemctl --system daemon-reload >/dev/null || true
> -         if [ -n "$2" ]; then
> -                 _dh_action=restart
> -         else
> -                 _dh_action=start
> -         fi
> -         deb-systemd-invoke $_dh_action 'system-pve\x2dcontainer.slice' >/dev/null || true
> +         deb-systemd-invoke start 'system-pve\x2dcontainer.slice' >/dev/null || true
>   fi
>  fi
>  # End automatically added section

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agosetup getty: ensure the getty.target is not masked
Thomas Lamprecht [Wed, 17 Jul 2019 10:07:40 +0000 (12:07 +0200)]
setup getty: ensure the getty.target is not masked

some distro templates have this masked by default, it makes sense to
always ensure that it can work, a CT admin can still prevent this by
using the .pve-ignore.$file mechanism.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agosetup getty: drop now obsolete setup_systemd_console
Thomas Lamprecht [Thu, 18 Jul 2019 15:17:17 +0000 (17:17 +0200)]
setup getty: drop now obsolete setup_systemd_console

The setup_container_getty_service can now handle also old
getty@.service if the newer container-getty@.service is not
available. So drop, and convert the two remaining users to calling
the now compatible setup_container_getty_service

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agosetup getty: generalize setup_container_getty_service
Thomas Lamprecht [Thu, 18 Jul 2019 15:10:30 +0000 (17:10 +0200)]
setup getty: generalize setup_container_getty_service

to allow switching the two remaining users and then finally dropping
the setup_systemd_console method

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Co-developed-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agosetup getty: ensure the correct services are enabled
Thomas Lamprecht [Wed, 17 Jul 2019 10:02:34 +0000 (12:02 +0200)]
setup getty: ensure the correct services are enabled

I.e., some distro templates do not have anything enabled, thus also
ensure that the respective container-getty@ services are enabled.

But, as to getty on the same TTY makes for a strange experience also
ensure that the getty@ are all removed (and vice versa in the other
case)

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agogetty setup: move hack for old systemd getty services out
Thomas Lamprecht [Thu, 18 Jul 2019 13:25:33 +0000 (15:25 +0200)]
getty setup: move hack for old systemd getty services out

This makes it easier to remove the setup_systemd_console method in
the future.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
Acked-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
4 years agoadd support for debian bullseye/sid
Mira Limbeck [Thu, 18 Jul 2019 13:56:12 +0000 (15:56 +0200)]
add support for debian bullseye/sid

Add support for the newest DebianTesting aka bullseye.

Signed-off-by: Mira Limbeck <m.limbeck@proxmox.com>
Tested-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agoremove obsolete lxc@.service.d
Thomas Lamprecht [Wed, 17 Jul 2019 17:03:54 +0000 (19:03 +0200)]
remove obsolete lxc@.service.d

follow through with the preparations of commit
e407207213f3e23c7f274b101c6e49233b4ff0d2 which was part of the series
cleaning the whole handling up [0]

[0]: https://pve.proxmox.com/pipermail/pve-devel/2017-October/029077.html

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agofix #1042: inotify: increase watches, instances & queue default limits
Thomas Lamprecht [Wed, 17 Jul 2019 16:20:28 +0000 (18:20 +0200)]
fix #1042: inotify: increase watches, instances & queue default limits

Some recent distributions running as a LXC container eat the relative
low default limits up very fast. Thus increase all those
(semi-related) limits by a factor of 512. This was chosen by using
one of our bigger know CT setup (~1500 CTs per host) and the fact
that I can have only a very low count (circa 5 - 7) of running
"inotify watch hungry" CTs (e.g., ones with a recent systemd > 240).

So, as 5 * 512 is well >> 1500, we can assume with confidence to
allow most reasonable and existing setups by default.

As with the kernel commit d46eb14b735b11927d4bdc2d1854c311af19de6d
"fs: fsnotify: account fsnotify metadata to kmemcg" [0] the memory
usage from the watch and queue overhead is accounted to the users
respective memory CGroup (i.e., for LXC containers their memory
limit) we can do this without to much fear of negative implications.

[0]: https://git.kernel.org/torvalds/c/d46eb14b735b11927d4bdc2d1854c311af19de6d

Don't change the hardcoded kernel default values directly though,
ship a sysctl.d configuration file, which is a bit more transparent
about what happens and can be shipped by the component needing this
(i.e., pve-container).

Follow the considerations of `man 5 sysctl.d` for shipping:
> Packages should install their configuration files in /lib/. Files
> in /etc/ are reserved for the local administrator, who may use this
> logic to override the configuration files installed by vendor
> packages. All configuration files are sorted by their filename in
> lexicographic order, regardless of which of the directories they
> reside in. If multiple files specify the same option, the entry in
> the file with the lexicographically latest name will take
> precedence. It is recommended to prefix all filenames with a
> two-digit number and a dash, to simplify the ordering of the files.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoconfig: whitelist lxc.seccomp.notify.proxy/cookie
Wolfgang Bumiller [Thu, 4 Jul 2019 14:42:01 +0000 (16:42 +0200)]
config: whitelist lxc.seccomp.notify.proxy/cookie

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
4 years agobump version to 3.0-3
Thomas Lamprecht [Thu, 11 Jul 2019 17:26:15 +0000 (19:26 +0200)]
bump version to 3.0-3

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agofix #2270: allow custom lxc options to be restored as root
Stefan Reiter [Tue, 9 Jul 2019 15:20:57 +0000 (17:20 +0200)]
fix #2270: allow custom lxc options to be restored as root

Seems to be a regression introduced with
f360d7f16b094fa258cf82d2557d06f3284435e4 (related to #2028).
$conf->{'lxc'} would always be defined, hence we never replaced it with
the restored options.

Co-developed-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Stefan Reiter <s.reiter@proxmox.com>
4 years agofollowup: code cleanup and uninitialized value access fix
Thomas Lamprecht [Fri, 5 Jul 2019 16:48:33 +0000 (18:48 +0200)]
followup: code cleanup and uninitialized value access fix

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agofix #1451: allow one to add mount options to CT mountpoints
Oguz Bektas [Fri, 5 Jul 2019 11:27:05 +0000 (13:27 +0200)]
fix #1451: allow one to add mount options to CT mountpoints

for now allows the following non-problematic ones:
* noexec - Do not permit execution of binaries on the mounted FS
* noatime - Do not update inode access times on this filesystem
* nosuid - Do not allow suid or sgid bits to take effect
* nodev - Do not interpret character or block devices on the FS

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
4 years agotests: avoid ipcc usage by mocking PVE::Cluster::get_config
Wolfgang Bumiller [Fri, 28 Jun 2019 09:58:32 +0000 (11:58 +0200)]
tests: avoid ipcc usage by mocking PVE::Cluster::get_config

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
4 years agobump version to 3.0-2
Thomas Lamprecht [Mon, 24 Jun 2019 16:38:10 +0000 (18:38 +0200)]
bump version to 3.0-2

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoFix #576: Fix dangling files for Move Disk
Dominic Jäger [Wed, 12 Jun 2019 10:04:57 +0000 (12:04 +0200)]
Fix #576: Fix dangling files for Move Disk

When Move Disk is called for a container rsync starts copying it to a
new destination. This initial rsync process gets killed when the Stop
button gets pressed. At this moment the destination file is not fully
copied and useless as a consequence. Our code already tries to remove
it. However, rsync has forked and those forks are still accessing the
destination file for some time. Thus, the attempt to remove it fails.

With the patch we wait for other processes to release the destination
files. As we are in a mount namespace and protected by a config lock,
those other processes should be children of rsync only. The waiting
time was less than a second when I tried it. Afterwards, the existing
remove procedure is carried out.

Co-developed-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Signed-off-by: Dominic Jäger <d.jaeger@proxmox.com>
4 years agofixup: nitpick: no parenthesis on simple post if
Thomas Lamprecht [Thu, 23 May 2019 07:28:45 +0000 (09:28 +0200)]
fixup: nitpick: no parenthesis on simple post if

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
4 years agoFix: check if compression_map format is undefined
Alwin Antreich [Thu, 23 May 2019 07:13:40 +0000 (09:13 +0200)]
Fix: check if compression_map format is undefined

We want to check for an supported compression type, but the check was
not correct as this only works if both sides are scalars, but an
assignment to an array is always "truthy", so actually check explicitly
if the compression type is supported before.

Signed-off-by: Alwin Antreich <a.antreich@proxmox.com>
Co-authored-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agotests: fix lxc-usernsexec invocation for uid != gid
Wolfgang Bumiller [Wed, 22 May 2019 12:25:11 +0000 (14:25 +0200)]
tests: fix lxc-usernsexec invocation for uid != gid

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
5 years agobuildsys: switch upload dist over to buster
Thomas Lamprecht [Wed, 22 May 2019 11:16:39 +0000 (13:16 +0200)]
buildsys: switch upload dist over to buster

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobump version to 3.0-1
Thomas Lamprecht [Wed, 22 May 2019 10:41:52 +0000 (12:41 +0200)]
bump version to 3.0-1

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobump debian compat level to 10
Thomas Lamprecht [Wed, 22 May 2019 10:40:50 +0000 (12:40 +0200)]
bump debian compat level to 10

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobuildsys: write source file to correct build dir
Thomas Lamprecht [Wed, 22 May 2019 10:40:13 +0000 (12:40 +0200)]
buildsys: write source file to correct build dir

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobuildsys: use dpkg-dev makefile helpers for pkg info
Thomas Lamprecht [Wed, 22 May 2019 10:37:58 +0000 (12:37 +0200)]
buildsys: use dpkg-dev makefile helpers for pkg info

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoset debian source format to 1.0
Thomas Lamprecht [Wed, 22 May 2019 10:37:44 +0000 (12:37 +0200)]
set debian source format to 1.0

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobump version to 2.0-39
Thomas Lamprecht [Wed, 15 May 2019 14:38:53 +0000 (16:38 +0200)]
bump version to 2.0-39

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoremove Data::Dumper usages
Thomas Lamprecht [Mon, 13 May 2019 11:45:42 +0000 (11:45 +0000)]
remove Data::Dumper usages

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi config: cleanup indentation and whitespace issues
Thomas Lamprecht [Mon, 13 May 2019 11:45:29 +0000 (11:45 +0000)]
api config: cleanup indentation and whitespace issues

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agod/control: remove undefined ${shlib:depends} from arch-independent package
Thomas Lamprecht [Mon, 13 May 2019 11:41:36 +0000 (11:41 +0000)]
d/control: remove undefined ${shlib:depends} from arch-independent package

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi status: indentation, whitespace and empty newline fixes
Thomas Lamprecht [Mon, 13 May 2019 11:40:49 +0000 (11:40 +0000)]
api status: indentation, whitespace and empty newline fixes

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi status: code cleanup for HA calls
Thomas Lamprecht [Mon, 13 May 2019 11:39:52 +0000 (11:39 +0000)]
api status: code cleanup for HA  calls

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi status: use own variable for frequent hash use
Thomas Lamprecht [Fri, 10 May 2019 10:04:37 +0000 (10:04 +0000)]
api status: use own variable for frequent hash use

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi status: cleanup nested closures
Thomas Lamprecht [Fri, 10 May 2019 10:03:37 +0000 (10:03 +0000)]
api status: cleanup nested closures

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoapi status: indentation cleanup
Thomas Lamprecht [Fri, 10 May 2019 10:01:44 +0000 (10:01 +0000)]
api status: indentation cleanup

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofix #2200: vm_stop: add nokill-after-timeout parameter
Thomas Lamprecht [Wed, 8 May 2019 07:07:22 +0000 (07:07 +0000)]
fix #2200: vm_stop: add nokill-after-timeout parameter

This allows to have the same semantics as qemu-server:
* immediate hard-kill
* shutdown with kill after timeout
* shutdown without kill after timeout

And thus we finally can move the vm_shutdown API call to a correct
semantic, i.e., do not immediate hard kill if forceStop is not passed
but rather see it as stop after timeout knob.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agovm_stop: remove unused exit_timeout parameter
Thomas Lamprecht [Wed, 8 May 2019 06:59:40 +0000 (06:59 +0000)]
vm_stop: remove unused exit_timeout parameter

No call-site used this parameter, and thus it was dead code,
remove it not only for cleanup sake but also to make space for a new
"nokill-after-timeout" parameter, comming in a future patch.

This code was always dead since it was introduced with the addition
of vm_stop in commit b1bad293c4f7a6024bbd363b6784b3875ca5d098
so pretty safe to remove anyway.

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofix #2027: do not disable IPV6_AUTOCONF on centos
Oguz Bektas [Thu, 9 May 2019 11:57:29 +0000 (13:57 +0200)]
fix #2027: do not disable IPV6_AUTOCONF on centos

we used to disable IPV6_AUTOCONF when the DHCP option was chosen for the
container network (was only activated with SLAAC option).

however, this option is actually dependent on IPV6FORWARDING (which is
set to no by default), according to this rule:

IPV6_AUTOCONF=!IPV6FORWARDING

which enables it automatically when forwarding is disabled. this way, we
respect the defaults set by centos.

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
5 years agobump version to 2.0-38
Thomas Lamprecht [Tue, 7 May 2019 11:12:14 +0000 (11:12 +0000)]
bump version to 2.0-38

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoraise supported fedora version to 30
Stoiko Ivanov [Mon, 6 May 2019 14:27:44 +0000 (16:27 +0200)]
raise supported fedora version to 30

Tested by installing a fedora 29 container and upgrading it via dnf [0].
The upgraded container boots, but in order to get networking running (and many
warnings and errors less in the journal) 'nesting' needs to be activated both
for privileged and unprivileged containers.

[0] https://fedoraproject.org/wiki/DNF_system_upgrade

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
5 years agofix: #1075: Correctly restore CT templates form backup
Christian Ebner [Wed, 17 Apr 2019 14:38:28 +0000 (16:38 +0200)]
fix: #1075: Correctly restore CT templates form backup

Restoring a backup from a CT template wrongly resulted in a CT with the template
flag set in the config.
This makes sure the CT template backup gets restored to a CT and only if the
storage supports templates, the resulting CT is converted to a template.
Otherwise the backup restores simply to a CT.

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
5 years agoadd fstrim lock to enum
Oguz Bektas [Thu, 11 Apr 2019 13:07:49 +0000 (15:07 +0200)]
add fstrim lock to enum

forgot to add this while adding 'pct fstrim' parameter

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
5 years agoadd create lock to enum
Dominik Csapak [Thu, 11 Apr 2019 07:16:52 +0000 (09:16 +0200)]
add create lock to enum

we use that lock on create/restoration

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>
5 years agobump version to 2.0-37
Thomas Lamprecht [Thu, 4 Apr 2019 14:25:00 +0000 (16:25 +0200)]
bump version to 2.0-37

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofollowup: reword bwlimit default wording
Thomas Lamprecht [Tue, 2 Apr 2019 09:29:00 +0000 (11:29 +0200)]
followup: reword bwlimit default wording

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobwlimit: add parameter to API2 calls
Stoiko Ivanov [Mon, 1 Apr 2019 09:31:08 +0000 (11:31 +0200)]
bwlimit: add parameter to API2 calls

for migrate_vm, clone_vm and move_volume. The 'migrate_vm' call passes it to
PVE::LXC::Migrate->migrate for handling.

Additionally the bwlimit option's description of the 'create_vm' call gets
consistent capitalization of I/O.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
5 years agobwlimit: add parameter to rsync in copy_volume
Stoiko Ivanov [Mon, 1 Apr 2019 09:31:07 +0000 (11:31 +0200)]
bwlimit: add parameter to rsync in copy_volume

Unconditionally add a '--bwlimit' parameter to the rsync invocation, defaulting
to an argument of '0' (= unlimited - see `man rsync).
Normally this is a rate per second, with a passed unit. With no unit
passed rsync assumes "K", which is exactly what our units are in, so
make our life easy and omit it.

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agostorage migrate: add bwlimit parameter
Stoiko Ivanov [Mon, 1 Apr 2019 09:31:06 +0000 (11:31 +0200)]
storage migrate: add bwlimit parameter

pass bwlimit parameter to storage_migrate

Signed-off-by: Stoiko Ivanov <s.ivanov@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofix some reasonable lintian warnings on dsc
Thomas Lamprecht [Tue, 2 Apr 2019 08:06:49 +0000 (10:06 +0200)]
fix some reasonable lintian warnings on dsc

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofollowup: remove double parenthesis and hook regex
Thomas Lamprecht [Tue, 2 Apr 2019 08:06:02 +0000 (10:06 +0200)]
followup: remove double parenthesis and hook regex

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofix: #1218 Add flag 'unique' to pct restore in order to set new MAC addresses to...
Christian Ebner [Mon, 1 Apr 2019 15:45:24 +0000 (17:45 +0200)]
fix: #1218 Add flag 'unique' to pct restore in order to set new MAC addresses to NICs

Signed-off-by: Christian Ebner <c.ebner@proxmox.com>
5 years agofix #2147: re-add support for current opensuse tumbleweed
Oguz Bektas [Fri, 29 Mar 2019 16:16:33 +0000 (17:16 +0100)]
fix #2147: re-add support for current opensuse tumbleweed

this enables opensuse-tumbleweed templates to be used in Proxmox VE
_again_. It was already supported but it seems that the os-release
backed ID changed and thus our distro detection code didn't detect it
anymore.

a few things didn't work properly in my tests, so some things to consider:
* (probably) because of network configuration issues, it takes a while
for the container to start fully (~30s on my setup)
* unprivileged containers (w/ and w/o nesting enabled) had no network
after starting, and needed to be enabled manually with ip addr and
route.
* privileged containers seemed to function normally, except the
startup delay

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
5 years agofix #1607: implement pct fstrim
Oguz Bektas [Thu, 28 Mar 2019 13:01:44 +0000 (14:01 +0100)]
fix #1607: implement pct fstrim

runs fstrim on the rootfs and all mountpoints of a given container. this
works for both running and stopped containers.

lock the CT during this operation using a config lock as it is
potentially long running. While fstrim itself wouldn't really need
the lock, as multiple parallel fstrim calls can be made without
problems, we want to forbid migrations during it and want to avoid
that we unmount a with the CT mounted with 'mount' lock (race) -
while we could handle and allow this its just not needed and easier
this way

Signed-off-by: Oguz Bektas <o.bektas@proxmox.com>
Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agobuildsys: add dsc target
Thomas Lamprecht [Wed, 27 Mar 2019 16:21:19 +0000 (17:21 +0100)]
buildsys: add dsc target

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agodepreacate pve-lxc-snapshot-name in favor of identical pve-snapshot-name
Thomas Lamprecht [Wed, 27 Mar 2019 14:14:05 +0000 (15:14 +0100)]
depreacate pve-lxc-snapshot-name in favor of identical pve-snapshot-name

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agofollowup: which lock
Thomas Lamprecht [Thu, 21 Mar 2019 17:38:01 +0000 (18:38 +0100)]
followup: which lock

Signed-off-by: Thomas Lamprecht <t.lamprecht@proxmox.com>
5 years agoadd lock to vm status
Dominik Csapak [Thu, 21 Mar 2019 09:55:19 +0000 (10:55 +0100)]
add lock to vm status

Signed-off-by: Dominik Csapak <d.csapak@proxmox.com>