Commit Graph

3574 Commits

Author SHA1 Message Date
David Ward
cd2b3cfe37 Fix /dev symlinks without a rootfs
Signed-off-by: David Ward <david.ward@ll.mit.edu>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 16:36:58 -05:00
David Ward
00370edd53 Fix container creation without a rootfs
It is not an error to create a container without a template or rootfs.

Signed-off-by: David Ward <david.ward@ll.mit.edu>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 16:36:54 -05:00
David Ward
8ede5f4c9d Fix automatic mounts without a rootfs
Signed-off-by: David Ward <david.ward@ll.mit.edu>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 16:36:50 -05:00
Stéphane Graber
0ab45a162e Merge pull request #617 from alkino/master
A little bit of refactor and doc
2015-08-27 16:58:06 -04:00
Stéphane Graber
d4b36defec Merge pull request #631 from alkino/doc
Add long option for -P in documentation
2015-08-27 16:34:00 -04:00
Stéphane Graber
a31c061cd3 Merge pull request #634 from alkino/config_mount
Split handle of lxc.mount* with 3 functions
2015-08-27 16:33:38 -04:00
Stéphane Graber
66b62e24ec Merge pull request #638 from schiele/master
check for NULL pointers before calling setenv()
2015-08-27 16:22:14 -04:00
Natanael Copa
e54864d363 Clone bridge interface MTU setting
Instead of require static mtu setting in config we simply clone the
existing MTU setting of the bridge interface.

This fixes issue when bridge interface has bigger MTU (like 9000 for
jumbo frame support) than the default 1500. When veth interface is
created it has by default MTU set to 1500 and when this is added to the
bridge, the kernel wee reduce the MTU for the bridge to 1500. We solve
this by cloning the MTU value from bridge interface.

This simplifies managing containers with bridge interface who supports
jumbo frames (mtu 9000) and makes it easier to move containers between
hosts with different MTU settings.

Signed-off-by: Natanael Copa <ncopa@alpinelinux.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-27 16:15:14 -04:00
Serge Hallyn
c01859e8ac fix open() results check to include 0
Signed-off-by: Serge Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:28 -05:00
Christian Brauner
19712e0473 Destroy container with snapshots & clone-snapshots
- This enables lxc-destroy to destroy a container with all its snapshots
  including clone-snapshots not located in the snaps/ folder.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:24 -05:00
Christian Brauner
0ea055b395 mod_rdep(): Write path and name of clone to file
If we currently create clone-snapshots via lxc-clone only the plain total
number of the containers it serves as a base-container is written to the file
"lxc-snapshots". This commit modifies mod_rdep() so it will store the paths and
names to the containers that are clone-snapshots (similar to the "lxc_rdepends"
file for the clones). **Users which still have containers that have a non-empty
(with a number > 0 as an entry) "lxc-snapshots" file in the old format are not
affected by this change. It will be used until all old clones have been
deleted!** For all others, the "lxc_snapshots" file placed under the original
container now looks like this:

      /var/lib/lxc
      bb
      /var/lib/lxc
      cc
      /opt
      dd

This is an example of a container that provides the base for three
clone-snapshots bb, cc, and dd. Where bb and cc both are placed in the usual
path for privileged containers and dd is placed in a custom path.

- Add additional argument to function that takes in the clone-snapshotted
  lxc_container.
- Have mod_rdep() write the path and name of the clone-snapshotted container the
  file lxc_snapshots of the original container.
- If a clone-snapshot gets deleted the corresponding line in the file
  lxc_snapshot of the original container will be deleted and the file updated
  via mmap() + memmove() + munmap().
- Adapt has_fs_snapshots().
- **If an lxc-snapshot file in the old format is found we'll keep using it.**

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:18 -05:00
Christian Brauner
5e8757eda5 Fix grammar in some of the executables
"NAME for name of the container" becomes "NAME of the container"

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:13 -05:00
Christian Brauner
3d7ad474b0 Make LXC_CLONE_KEEPNAME work
- Passing the LXC_CLONE_KEEPNAME flag to do_lxcapi_clone() was not respected and
  let to unexpected behaviour for e.g. lxc-clone. We wrap
  clear_unexp_config_line() and set_config_item_line() in an appropriate
  if-condition.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:08 -05:00
Christian Brauner
f29bb5d52b lxc-destroy: Remove container with all snapshots
- This enables the user to destroy a container with all its snapshots without
  having to use lxc-snapshot first to destroy all snapshots. (The enum values
  DESTROY and SNAP from the previous commit are reused here again.)
- Some unification regarding the usage of exit() and return has been done.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:14:01 -05:00
Christian Brauner
513f23df5c Refactor lxc-snapshot
- lxc_snapshot.c lacked necessary members in the associated lxc_arguments struct
  in arguments.h. This commit extends the lxc_arguments struct to include
  several parameters used by lxc-snapshot which allows a rewrite that is more
  consistent with the rest of the lxc-* executables.
- All tests have been moved beyond the call to lxc_log_init() to allow for the
  messages to be printed or saved.
- Some small changes to the my_args struct. (The enum task is set to SNAP (for
  snapshot) per default and variables illustrating the usage of the command line
  flags are written in all caps.)
- arguments.h has been extended to accommodate a future rewrite of lxc-clone
- Traditional behaviour of the executable has been retained in this commit.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:13:46 -05:00
KATOH Yasufumi
2d8632d5b7 doc: Update lxc.cgroup.use in lxc.system.conf(5)
LXC now uses lxc.cgroup.use even when cgmanager is used.
So remove the description for the case of using cgmanager.
And add the case of not specifying it.
This commit only updates en and ja man pages.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-27 16:10:36 -04:00
Antonio Terceiro
c2a85d043b lxc-debian: allow not including contrib/non-free
Signed-off-by: Antonio Terceiro <terceiro@debian.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:43:50 -04:00
Antonio Terceiro
6a082d5a13 lxc-debian: support stretch (Debian 9) images
Signed-off-by: Antonio Terceiro <terceiro@debian.org>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:43:35 -04:00
Stéphane Graber
d2111444dd init: Support older apparmor
Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-27 15:35:01 -04:00
David Noyes
28e58a6a4f Test dpkg for multiarch support in lxc-debian template
Signed-off-by: David Noyes <david.j.noyes@gmail.com>
2015-08-26 15:23:31 +00:00
Robert Schiele
ab7efcf51d check for NULL pointers before calling setenv()
Latest glibc release actually honours calling setenv with a NULL
pointer by causing SIGSEGV but checking pointers before submitting
to any system function is a good idea anyway.

Signed-off-by: Robert Schiele <rschiele@gmail.com>
2015-08-21 12:41:50 +02:00
Nicolas Cornu
70f55bfd4f Split handle of lxc.mount* with 3 functions
Signed-off-by: Nicolas Cornu <nicolac76@yahoo.fr>
2015-08-16 00:54:24 +02:00
Tycho Andersen
5b4543292d c/r: enable tracefs
tracefs is a new filesystem that can be mounted by users. Only the options
and fs name need to be passed to restore the state, so we can use criu's
auto fs feature.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-14 12:29:24 -04:00
Serge Hallyn
a4567cd127 Merge pull request #632 from lxc/revert-621-arguments
Revert "Refactor lxc-snapshot, lxc-clone, make LXC_CLONE_KEEPNAME wor…
2015-08-14 11:01:56 -05:00
Serge Hallyn
965ef7f460 Revert "Refactor lxc-snapshot, lxc-clone, make LXC_CLONE_KEEPNAME work and add option to destroy container with all snapshots to lxc-destroy" 2015-08-14 10:59:19 -05:00
Nicolas Cornu
db4aba3874 Refactor and factorize mount entries
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:59:09 +02:00
Nicolas Cornu
f5b67b36e2 Add doc for optional, create=dir and create=file in lxc.container.conf man
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:59:09 +02:00
Nicolas Cornu
4d5b72a186 Factorize handle of create=dir and create=file
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:59:09 +02:00
Nicolas Cornu
3519a99c82 Add long option for -P in documentation
Signed-off-by: Nicolas Cornu <ncornu@aldebaran.com>
2015-08-14 17:57:53 +02:00
Serge Hallyn
f69d74e359 Merge pull request #621 from brauner/arguments
Refactor lxc-snapshot, lxc-clone, make LXC_CLONE_KEEPNAME work and add option to destroy container with all snapshots to lxc-destroy
2015-08-13 19:36:16 -05:00
Stéphane Graber
3cd058176c Merge pull request #596 from lazy404/master
Only use LOGPATH if lxcpath is unset or default
2015-08-13 17:00:19 -04:00
Michal Grzedzicki
479bba8b31 Only use LOGPATH if lxcpath is unset or default
Signed-off-by: Michał Grzędzicki <lazy404@gmail.com>
2015-08-13 22:53:33 +02:00
Stéphane Graber
61f619ba9b Merge pull request #628 from rldleblanc/cap_clone_fix
Caps are getting lost when cloning an LXC.
2015-08-13 16:38:07 -04:00
Stéphane Graber
95c140edd8 Merge pull request #629 from rldleblanc/clone_typo
Small trivial typo.
2015-08-13 16:37:32 -04:00
Antonio Terceiro
d203007e63 lxc-debian: skip security updates for unstable/sid
There is no such thing as security support for unstable/sid.

Signed-off-by: Antonio Terceiro <terceiro@debian.org>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-13 16:31:16 -04:00
KATOH Yasufumi
585f3c6b69 doc: Add the rename option to lxc-clone(1)
Update Japanese and English man pages.

Signed-off-by: KATOH Yasufumi <karma@jazz.email.ne.jp>
Acked-by: Stéphane Graber <stgraber@ubuntu.com>
2015-08-13 16:30:41 -04:00
Tycho Andersen
ec8449f8dc c/r: get rid of dump_net_info()
This was originally used to propagate the bridge and veth names across
hosts, but now we extract both from the container's config file, and
nothing reads the files that dump_net_info() writes, so let's just get rid
of them.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:26:05 -04:00
Tycho Andersen
65b2022137 c/r: allow empty networks to be checkpointed/restored
Empty networks don't have anything (besides lo) for us to dump and restore,
so we should allow these as well.

Reported-by: Dietmar Maurer <dietmar@proxmox.com>
Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:26:01 -04:00
Tycho Andersen
0efc06e7d7 gitignore: add TAGS files
Somehow our `make tags` target generates TAGS and not tags, so let's ignore
that too.

Signed-off-by: Tycho Andersen <tycho.andersen@canonical.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:25:58 -04:00
Arjun Sreedharan
17706a4628 lxc_monitor: free @preg on error
reuse label cleanup since free(NULL) is a no-op
Signed-off-by: Arjun Sreedharan <arjun024@gmail.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:24:09 -04:00
Wolfgang Bumiller
8bee885130 pass on reboot flag and delete old veth on reboot
When setting lxc.network.veth.pair to get a fixed interface
name the recreation of it after a reboot caused an EEXIST.
-) The reboot flag is now a three-state value. It's set to
1 to request a reboot, and 2 during a reboot until after
lxc_spawn where it is reset to 0.
-) If the reboot is set (!= 0) within instantiate_veth and
a fixed name is used, the interface is now deleted before
being recreated.

Signed-off-by: Wolfgang Bumiller <w.bumiller@proxmox.com>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:24:05 -04:00
Przemek Rudy
8bea9fae93 Prevent from error on umount /proc if userns are used.
Signed-off-by: Przemek Rudy <prudy1@o2.pl>
Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
2015-08-13 16:23:59 -04:00
Robert LeBlanc
222dc581ce Small trivial typo. 2015-08-13 14:14:52 -06:00
Stéphane Graber
1f466bbba0 Merge pull request #623 from christiaan/ephemeral_bind
Bind mount at different location
2015-08-13 16:11:29 -04:00
Stéphane Graber
96fbe9e02a Merge pull request #619 from alkino/contributing
Fresh CONTRIBUTING
2015-08-13 16:08:41 -04:00
Stéphane Graber
f2a7f2a080 Merge pull request #577 from CameronNemo/systemd-instanced
Add instanced systemd service
2015-08-13 16:03:33 -04:00
Robert LeBlanc
d02ee577ca Caps are getting lost when cloning an LXC. Adding the -X parameter copies the extended attributes. This allows things like ping to continue to be used by a non-privilged user in Debian at least. 2015-08-13 13:36:55 -06:00
Christian Brauner
7909bb03e6 lxc-destroy: Remove container with all snapshots
- This enables the user to destroy a container with all its snapshots without
  having to use lxc-snapshot first to destroy all snapshots. (The enum values
  DESTROY and SNAP from the previous commit are reused here again.)
- Some unification regarding the usage of exit() and return has been done.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 14:59:59 +02:00
Christian Brauner
b2966d59ac Fix grammar in some of the executables
"NAME for name of the container" becomes "NAME of the container"

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 02:36:12 +02:00
Christian Brauner
eab218fbf7 Make LXC_CLONE_KEEPNAME work
Passing the LXC_CLONE_KEEPNAME flag to do_lxcapi_clone() was not respected. We
wrap clear_unexp_config_line() and set_config_item_line() in an appropriate
if-condition.

Signed-off-by: Christian Brauner <christianvanbrauner@gmail.com>
2015-08-08 02:35:03 +02:00