Commit Graph

3873 Commits

Author SHA1 Message Date
Stéphane Graber
aaae118e7e Merge pull request #831 from hallyn/2016-02-19/cgfs
2016 02 19/cgfs
2016-02-19 22:13:36 -05:00
Ubuntu
836514a877 lxc: cgfs: handle lxcfs
When containers have lxcfs mounted instead of cgroupfs, we have to
process /proc/self/mountinfo a bit differently.  In particular, we
should look for fuse.lxcfs fstype, we need to look elsewhere for the
list of comounted controllers, and the mount_prefix is not a cgroup path
which was bind mounted, so we should ignore it, and named subsystems
show up without the 'name=' prefix.

With this patchset I can start containers inside a privileged lxd
container with lxcfs mounted (i.e. without cgroup namespaces).

Closes #830

Signed-off-by: Ubuntu <ubuntu@localhost.localdomain>
2016-02-19 18:45:40 -08:00
Serge Hallyn
dddf7c5b7e cgfs: also check for EACCES when writing devices
Because that's what lxcfs gives us.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-19 18:43:50 -08:00
Stéphane Graber
b9138559c3 Merge pull request #829 from hallyn/2016-02-19/devices
cgroups: do not fail if setting devices cgroup fails due to EPERM
2016-02-19 18:25:02 -05:00
Serge Hallyn
4f875f707a cgroups: do not fail if setting devices cgroup fails due to EPERM
If we're trying to allow a device which was denied to our parent
container, just continue.

Cgmanager does not help us to distinguish between eperm and other
errors, so just always continue.

We may want to consider actually computing the range of devices
to which the container monitor has access, but OTOH that introduces
a whole new set of complexity to compute access sets.

Closes #827

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-19 14:12:47 -08:00
Serge Hallyn
ef95dc011e Merge pull request #826 from brauner/2016-02-19/exec_cast_null
cast NULL pointers passed to execl*()
2016-02-19 11:00:59 -08:00
Christian Brauner
acf47e1b5f cast NULL pointers passed to execl*()
NULL pointers passed to execl*() functions must be cast to (char *)NULL since
they are variadic functions.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-19 12:44:40 +01:00
Stéphane Graber
d89da6bf6e change version to 2.0.0.rc1 in configure.ac
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-18 12:20:43 -05:00
Christian Brauner
adc6167a60 Merge pull request #823 from stgraber/master
Fix doc build warnings
2016-02-16 08:01:25 +01:00
Stéphane Graber
129881b9d5
Fix doc build warnings
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-16 01:16:33 -05:00
Serge Hallyn
15e7ec11c3 Merge pull request #822 from stgraber/master
Couple of apparmor tweaks
2016-02-15 18:49:22 -08:00
Stéphane Graber
97f9856db3 Allow cgroupfs remount by systemd
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-15 20:08:25 -05:00
Stéphane Graber
15966fd086
Allow sysfs remount by mountall
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-15 20:03:50 -05:00
Christian Brauner
ae07a9bfda Merge pull request #821 from hallyn/2016-02-15/lognull
2016 02 15/lognull
2016-02-15 21:38:00 +01:00
Serge Hallyn
d9c9b1808a log.c:__lxc_log_set_file: completely close log file when overriding
Otherwise after a shortcut on error we could end up trying to write
to the closed log fd.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-15 12:19:52 -08:00
Serge Hallyn
3f53c691d2 log.c:__lxc_log_set_file: fname cannot be null
fname cannot be passed in as NULL by any of its current callers.  If it
could, then build_dir() would crash as it doesn't check for it.  So make
sure we are warned if in the future we pass in NULL.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-15 12:15:10 -08:00
Serge Hallyn
bad548de3b Merge pull request #813 from brauner/2016-02-01/lxc_destroy_ephemeral
lxc-destroy: deal with ephemeral containers
2016-02-10 10:34:49 -08:00
Christian Brauner
2c5f2edeb9 lxc-destroy: deal with ephemeral containers
- Ephemeral containers are destroyed on shutdown so we do not destroy them.
- Destroy ephemeral containers with clones: first destroy all the clones, then
  destroy the container.
- Ephemeral containers with snapshots cannot be easily handled but we can
  probably trust that no one will try to make snapshots of an ephemeral
  container.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-10 10:16:22 +01:00
Serge Hallyn
cd30b4fa22 Merge pull request #812 from brauner/2016-02-10/quiet_lxc_copy
silence lxc-copy as well when asked
2016-02-09 17:00:42 -08:00
Christian Brauner
c89f1f7509 silence lxc-copy as well when asked
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-10 01:30:36 +01:00
Christian Brauner
2fa8e2cd0a Merge pull request #811 from hallyn/2016-02-09/destroyquiet
lxc_destroy: be quiet if asked
2016-02-10 01:25:04 +01:00
Serge Hallyn
2f0e6b7945 lxc_destroy: be quiet if asked
As per https://bugs.launchpad.net/bugs/1543016.

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-09 16:07:32 -08:00
Christian Brauner
f97ab3a639 Merge pull request #808 from hallyn/2016-02-07/aa.2
apparmor: don't fail if current aa label is given
2016-02-08 22:27:05 +01:00
Serge Hallyn
374625aa3f apparmor: don't fail if current aa label is given
Ideally a container configuration will specify 'unchanged' if
it wants the container to use the current (parent) profile.  But
lxd passes its current label.  Support that too.

Note that if/when stackable profiles exist, this behavior may
or may not be what we want.  But the code to deal with aa
stacking will need some changes anyway so this is ok.

With this patch, I can create nested containers inside a
lxd xenial container both using

lxc launch x2

and unprivileged

lxc-start -n x2

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-08 12:44:11 -08:00
Stéphane Graber
e8f8436cc1 Merge pull request #805 from benaryorg/patch-1
fix typo
2016-02-05 21:49:13 +01:00
Katze
740fe426b7 fix typo
Signed-off-by: benaryorg <binary@benary.org>
2016-02-05 18:54:45 +01:00
Serge Hallyn
c3d25c16ef Merge pull request #801 from brauner/2016-02-03/automatic_overlay_for_containers_without_rootfs
allow overlay lxc.mount.entry with no rootfs
2016-02-04 09:41:31 -08:00
Christian Brauner
9769034f65 allow overlay lxc.mount.entry with no rootfs
Allow lxc.mount.entry entries for containers without a rootfs.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-04 10:05:27 +01:00
Christian Brauner
8d1b71bb81 Merge pull request #798 from hallyn/2016-02-02/commentrootfs
Comment the lxc_rootfs structure
2016-02-04 08:20:53 +00:00
Serge Hallyn
59bb869809 Comment the lxc_rootfs structure
Comment rootfs.path and rootfs.mount so people can better figure
out which to use.

Remove the unused pivotdir argument from setup_rootfs_pivot_root().
Remove the unused pivot member of the lxc_rootfs struct.  And just
return 0 (success) when someone passes a lxc.pivotdir entry.  One
day we'll turn that into an error, but not yet...

Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2016-02-03 16:13:57 -08:00
Stéphane Graber
2a2d3caf57 Merge pull request #803 from tych0/add-fuse-kernel-config-check
lxc-checkconfig: warn about fuse as well
2016-02-04 01:10:44 +01:00
Tycho Andersen
8283fda23b lxc-checkconfig: warn about fuse as well
Since we need fuse to run lxcfs, which is required by systemd, let's warn
about that as well.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
2016-02-03 16:54:50 -07:00
Serge Hallyn
6b7c60e15f Merge pull request #800 from brauner/2016-02-03/no_rootfs_implies_abspath
no rootfs => mounts always relative to host's /
2016-02-03 09:49:19 -08:00
Christian Brauner
1433c9f9b6 no rootfs => mounts are always relative to hosts /
All lxc.mount.entry entries will be relative to the hosts / when a container
does not specify a lxc.rootfs.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-03 18:45:07 +01:00
Serge Hallyn
e855f21476 Merge pull request #799 from brauner/2016-02-03/aufs_mkdir_to_lxcaufs
move and rename mount_entry_create_aufs_dirs()
2016-02-03 09:42:36 -08:00
Christian Brauner
1d52bdf7b6 move and rename mount_entry_create_aufs_dirs()
- The function mount_entry_create_aufs_dirs() moves from conf.c to
  lxcaufs.{c,h} where it belongs.
- In accordance with the "aufs_" prefix naming scheme for functions associated
  with lxcaufs.{c,h} mount_entry_create_aufs_dirs() becomes aufs_mkdir().
- Add aufs_get_rootfs() which returns the rootfs for an aufs lxc.rootfs.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-03 10:39:48 +01:00
Serge Hallyn
cefbc615ac Merge pull request #797 from brauner/2016-02-02/fix_execute_null_ptr_deref
Fix mount_entry_on_generic()
2016-02-02 20:32:26 -08:00
Christian Brauner
ec50007fc2 Fix mount_entry_on_generic()
In mount_entry_on_generic() we dereferenced a NULL pointer whenever a container
without a rootfs was created. (Since mount_entry_on_systemfs() passes them with
NULL.) We have mount_entry_on_generic() check whether rootfs != NULL.

We also check whether rootfs != NULL in the functions ovl_mkdir() and
mount_entry_create_aufs_dirs() and bail immediately. Rationale: For overlay and
aufs lxc.mount.entry entries users give us absolute paths to e.g. workdir and
upperdir which we create for them. We currently use rootfs->path and the
lxcpath for the container to check that users give us a sane path to create
those directories under and refuse if they do not. If we want to allow overlay
mounts for containers without a rootfs they can easily be reworked.

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-03 00:29:58 +01:00
Stéphane Graber
5e75dea27b Merge pull request #796 from brauner/2016-02-02/fix_execute_null_ptr_deref
Fix NULL-ptr derefs for container without rootfs
2016-02-02 15:20:27 +01:00
Christian Brauner
1ec0e8e3fd Fix NULL-ptr derefs for container without rootfs
Since we allow containers to be created without a rootfs most checks in conf.c
are not sane anymore. Instead of just checking if rootfs->path != NULL we need
to check whether rootfs != NULL.

Minor fixes:
- Have mount_autodev() always return -1 on failure: mount_autodev() returns 0
  on success and -1 on failure. But when the return value of safe_mount() was
  checked in mount_autodev() we returned false (instead of -1) which caused
  mount_autodev() to return 0 (success) instead of the correct -1 (failure).

Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-02 14:43:33 +01:00
Stéphane Graber
06b5b4d96a Merge pull request #795 from brauner/2016-02-02/lxc_ls_exit_zero
lxc-ls: exit 0 when path is not found
2016-02-02 13:21:11 +01:00
Christian Brauner
607d784d34 lxc-ls: exit 0 when path is not found
Signed-off-by: Christian Brauner <christian.brauner@mailbox.org>
2016-02-02 12:46:15 +01:00
Christian Brauner
57e40de3bd Merge pull request #793 from stgraber/master
Remove legacy versions of lxc-ls
2016-02-02 11:45:30 +00:00
Stéphane Graber
5de4efe3b3 Fix typo
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-02 12:16:52 +01:00
Stéphane Graber
94891ea3e4 Remove legacy versions of lxc-ls
lxc-ls nowadays is a C binary so there's no need to keep the python and
shell versions around anymore, remove them from the branch and cleanup
documentation and Makefiles.

Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
2016-02-02 12:16:52 +01:00
Christian Brauner
81db418925 Merge pull request #794 from Blub/next
apparmor: allow binding /run/{,lock/} -> /var/run/{,lock/}
2016-02-02 11:06:03 +00:00
Wolfgang Bumiller
4a491a31c2 apparmor: allow binding /run/{,lock/} -> /var/run/{,lock/}
Some systems need to be able to bind-mount /run to /var/run
and /run/lock to /var/run/lock. (Tested with opensuse 13.1
containers migrated from openvz.)

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
2016-02-02 09:18:11 +01:00
Stéphane Graber
f1ed87e16c Merge pull request #787 from ysbnim/master
Update Korean manpages
2016-02-01 14:04:39 +01:00
Sungbae Yoo
275435b402 gitignore doc/ko/legacy/*.1
Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-01 20:55:30 +09:00
Sungbae Yoo
83a6b14280 doc: update overlayfs and aufs in Japanese lxc.container.conf(5)
add the description of multiple lower layer.
Update for commit 280d237

Signed-off-by: Sungbae Yoo <sungbae.yoo@samsung.com>
2016-02-01 20:52:41 +09:00