Containerisation update

Tim Penhey tim.penhey at canonical.com
Fri Jun 14 04:34:20 UTC 2013


Hi folks,

End of another week and good progress has been made.

We can manually create containers in state using the 'add-machine' command.

juju add-machine 0/lxc
 - creates an lxc container on machine 0
juju add-machine /lxc
 - creates a new machine, and an lxc container on it

I have started breaking up my work for landing on trunk.

Prep branches mostly so far:

lp:~thumper/juju-core/instance-instance ⇒ lp:juju-core
 - moves environ.Instance into instance.Instance

lp:~thumper/juju-core/machine-id-from-tag ⇒ lp:juju-core
 - simple state function used later

lp:~thumper/juju-core/lxc-cloud-init ⇒ lp:juju-core
 - make sure lxc is installed by cloud-init

and a golxc branch:

lp:~thumper/golxc/mockable ⇒ lp:golxc
 - adds interfaces around the lxc bits so they can be mocked out

I'm currently working on: lp:~thumper/juju-core/lxc-container

This has the juju version of the lxc container.  This knows is more juju
specific, and creates the appropriate cloud-init, and I have managed to
test this manually.

There is one more branch in the pipeline, lxc-broker.

These last two aren't fully functional yet because I broke the API by
changing golxc, but I'm working on fixing it and adding tests using mock
lxc objects.

So, I have managed to manually fire up some lxc containers on ec2
instances using the same provider_tasks and broker interfaces defined in
trunk right now.  This was able to register with state and set the agent
to started.  I was able to deploy a charm to the lxc container using
--force-machine, and it appeared to work.

Still todo:
 - land the new watcher - Ian has this mostly done and is updating due
to review comments
 - land the status update to show containers indented - reviews done I
believe
 - add tests around the juju-core/container/lxc work, get it reviewed,
and land it
 - add tests for the lxc-broker, get it reviewed, and land it
 - address the addressability of the containers themselves, right now
they can view out, but nothing can view in.
 - handle the open/close ports for the container
 - add container constraints
 - handle automagical assignment of units to containers

And that will be iteration 1 :-)

Cheers,
Tim



More information about the Juju-dev mailing list