LXD polish for xenial
Marco Ceppi
marco.ceppi at canonical.com
Sat Apr 23 19:45:42 UTC 2016
Thanks for the update, appreciate the consideration!
On Sat, Apr 23, 2016, 2:29 PM Alexis Bruemmer <alexis.bruemmer at canonical.com>
wrote:
> Thank you all for the great feedback on 2.0! Based on this thread and
> similar feedback the juju-core dev team has made some updates to the plan
> for lxd support in juju 2.0. Most notably on how juju 2.0 will handle
> bundles specifying use of containers. A summary of container support for
> juju 2.0:
>
> (1) Juju 2.0 will manage containers with LXD exclusively
> (2) On the command line the user will need to specify "--to lxd"; Juju 2.0
> will provide a clear error message if "--to lxc" is used
> (3) For bundles, Juju 2.0 will retain backwards compatibility by accepting
> the name of "lxc" and "lxd" to mean "you want a container managed by lxd",
> this will allow yaml files written for juju 1.x to be used for juju 2.0
> without requiring updates. There will be a clear message post deployment
> that lets the user know lxd was used to deploy and manage containers and
> that the yaml file should be updated. We will retain this backwards
> compatibility for the life of 2.0.
>
> Please also note that the current beta versions of Juju still has the
> previous lxc support (along side the lxd) to allow for proper test coverage
> of Juju 2.0 while the lxd "kinks" are worked through. When the team is
> satisfied with test coverage of LXD on juju 2.0 we will remove the previous
> lxc implementation.
>
> Please continue to provide the team with great feedback and let us know if
> you have questions or concerns.
>
> Alexis
>
> On Thu, Apr 21, 2016 at 8:00 AM, Dean Henrichsmeyer <dean at canonical.com>
> wrote:
>
>> On Tue, Apr 19, 2016 at 10:39 PM, John Meinel <john at arbash-meinel.com>
>> wrote:
>>
>>> ...
>>>
>>>
>>>> So the plan as I understand it is that we're planning on updating
>>>>> Bundles to use the term "lxd" as the container they are requesting. And
>>>>> then updating the deployer and other tools to understand that they need to
>>>>> translate that back to LXC for Juju-1.X. The rationale is that we don't
>>>>> want to be stuck using old terminology forever, and the change is easy to
>>>>> do for bundles.
>>>>>
>>>>
>>>> My understanding was different. My understanding was that Juju 2.0 was
>>>> to understand both lxc and lxd so old bundles work just fine with Juju 2.0.
>>>> If you have a bundle with lxd in it, it was clearly written for 2.0 so it's
>>>> fine that it doesn't deploy with Juju 1.x.
>>>>
>>>> Having Juju 2.0 not understand lxc seems silly given that in fact a lxd
>>>> container is just an lxc. We seem to be splitting hairs at the cost of
>>>> users.
>>>>
>>>> -Dean
>>>>
>>>
>>> So I'd like to clarify a few points here. The first *very* key point is
>>> that the old "lxc" containers are *not* the same as "lxd" containers. It is
>>> a bit unfortunate, but I'll go through some reasons:
>>>
>>> 1. Both of them do use cgroups, etc to create isolation between
>>> containers, but so does docker, and I don't think people feel docker
>>> containers are interchangable with lxc or lxd containers.
>>> 2. There is a package called "lxc" that you can install, which
>>> provides the old "lxc-foo" commands (lxc-start, lxc-stop, lxc-launch, etc)
>>> 3. There is also a package called "lxdclient" which installs a local
>>> binary named "/usr/bin/lxc". That, however, does *not* interact with the
>>> former package.
>>> 4. Very concretely, if you do "lxc-launch -t ubuntu-cloud" then that
>>> container will *not* show up in "lxc list". "lxc" is the lxdclient
>>> and talks to the lxd daemon to get work done. "lxc-*" commands do all of
>>> the container creation, etc, themselves.
>>> 5. Going forward I'll call the old thing 'lxc1' because that is the
>>> new package for it (AIUI). And I'll enumerate some more of the differences
>>> 1. lxc1 containers are priviledged by default and require you to
>>> be root to create them. lxd containers are unpriviledged by default and can
>>> be requested by any user. The daemon itself runs as root to provide the
>>> functionality, but the container you get will not have a root-elevation
>>> escape mechanism.
>>> 2. lxc1 containers download from cloud-images to /var/cache/lxc
>>> and populate /var/lxc/* with the rootfs and where the container files
>>> themselves are. lxd caches images differently (/var/lib/lxd/images, IIRC)
>>> and supports the use of things like ZFS filesystem mounts to provide fast
>>> cloning to launch a new image.
>>>
>>>
>>> Juju itself *could* continue to support its existing logic to create
>>> and manage 'lxc' containers as a separate bunch of containers from 'lxd'
>>> containers. They would end up on different bridges, have different code
>>> paths for creating them (lxd we talk directly to the HTTP REST api of the
>>> daemon, 'lxc' we have to exec a command and parse the string output.)
>>> We have been directed that we really don't want to be supporting 2 very
>>> similar-but-not-the-same container mechanism for the next 5 years, and
>>> going to 2.0 is the one time we're going to get to break support for the
>>> old mechanism.
>>>
>>
>> OK, there's confusion. When I say supporting 'lxc' in bundles, I mean
>> literally supporting the word 'lxc' - not actually supporting traditional
>> LXC containers. If Juju 2.0 sees 'lxc' in a bundle, it will use LXD
>> containers for those targets. In the case of bundles and Juju 2.0, the word
>> 'lxc' and 'lxd' will be interchangeable in order to allow for backwards
>> compatibility. Juju 2.0 won't support both LXC and LXD containers. Does
>> that make more sense?
>>
>> That simply allows for having bundles that work with both Juju 1 and Juju
>> 2 and does NOT require Juju 2.0 to support traditional LXC containers.
>>
>> -Dean
>>
>> --
>> Juju-dev mailing list
>> Juju-dev at lists.ubuntu.com
>> Modify settings or unsubscribe at:
>> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>>
>>
>
>
> --
> Alexis Bruemmer
> Juju Core Manager, Canonical Ltd.
> (503) 686-5018
> alexis.bruemmer at canonical.com
> --
> Juju-dev mailing list
> Juju-dev at lists.ubuntu.com
> Modify settings or unsubscribe at:
> https://lists.ubuntu.com/mailman/listinfo/juju-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.ubuntu.com/archives/juju-dev/attachments/20160423/eac4feb3/attachment-0001.html>
More information about the Juju-dev
mailing list