Latest Publications

Contributing to Magnum

As the PTL of the Magnum project, I regularly meet new people who take an interest in what we are doing, and want to get involved with Magnum or contribute to OpenStack. I feel compelled to share my formula for becoming an awesome contributor to an OpenStack community project. This advice probably applies equally well to becoming an Open Source contributor for any project, but it has actually been tested and proven in the OpenStack community, so I am confident it will work for you.

The first thing new contributors usually say is “I don’t know Python yet, but I do know language XYZ, so how can I make an impact right away?” Universally all open source contributors want a chance to do something helpful and meaningful for the projects they love. What most of them don’t realize is that developing new software features is not the only way they can make their impact felt. Here is how I suggest newcomers start out. Follow these in order, and continue with steps 2+ ongoing as you start to advance through the list.

1) First cover the groundwork. Get yourself set up so that you have the *option* to contribute by getting your CLA taken care of. Visit the Contributing page for details on this.

2) Show up on the project IRC channel. Ours is #openstack-containers on Freenode. Set up your chat client to idle in there, and try to keep an eye on our public conversations. This will help you keep the pulse on what’s happening. Do not fear the public nature of this discussion. It is normal to be shy at first, but you will get used to it.

3) Attend the weekly IRC team meetings (whichever make sense in your timezone). Our team meeting schedule and agenda are posted on the OpenStack wiki for your reference. You have to chime in to be recorded in the attendance, which I strongly recommend. If you arrive late, that’s still okay. Nobody is perfect.

4) Subscribe to and read the openstack-dev@lists.openstack.org mailing list. In the subscription settings you can set up topic tag filtering, so if you only want messages from the [Magnum] topic that’s possible. Be sure when you send new emails to the list that you include [Magnum] in the subject line.

5) Start looking at code reviews. Once you have your LaunchPad account set up, you can use it to sign into Gerrit, and start reviewing code. To review Magnum code, check our review queue. This is a great way to get a sense of what is in flight now, and is about to land. It’s also a great way to see a lot of Python code. Check out our guidelines at the bottom of our Contributing page for more about how to vote on reviews. Anyone can vote. In the settings you can tune what emails the system sends you.

6) When you are confident and ready to do some coding work, check our our task queue, which includes bugs. There is also a task queue for our client software. Use the guidelines at our Contributing page to set up your development environment and submit your code for review.

7) Once you have closed out a couple of bugs, it might be time to get more ambitious and start helping out with new feature development. We will consider code from anywhere, but we are much happier if you discuss your plans as you start by chatting with us in IRC, and in our weekly meetings so we can start with confidence knowing that we share a clear vision of how it will be done.

If you do all of those things, you definitely will win friends and influence people. This is the way that you add real value as a member of the community, and can begin to multiply the value your contributions by helping everyone else as they show up to help as well. You will be surprised at how amazing it will feel to make your contribution, and be a part of a winning team on an inspirational mission. Thanks for being awesome!

Using docker-machine on Rackspace Cloud

docker-logoMy co-worker Simon wrote a blog post about docker-machine, which allows for easy creation of machines in the cloud for running Docker containers. I decided to make a video screencast demonstrating how this works, because it is surprisingly easy to use.

One thing you should pay attention to is how fast the base OS image transfers to my cloud server when I start the container. Using Docker locally with something like boot2docker requires that those images transfer over your local internet connection, which I’m willing to bet is not as fast as the 10 GigE network the cloud server is connected to. Check it out, and let me know your thoughts.

Announcing Magnum – CaaS for OpenStack

The Magnum community is pleased to announce the first release of Magnum available now for download.

Magnum is a Container-as-a-Service (CaaS) system for OpenStack.

Magnum is meant to launch a minimalistic host OS such as Fedora Atomic, CoreOS, or Ubuntu Snappy. The OS includes enough tools to launch Docker, Kubernetes, and Flannel. Once the OS is launched, Magnum configures the OS clusters for multi-tenant users.

Magnum has seven major objects:
Bay: A collection of node objects where work is scheduled
BayModel: An object stores template information about the bay which is used to create new bays consistently
Node: A baremetal or virtual machine where work executes
Pod: A collection of containers running on one physical or virtual machine
Service: An abstraction which defines a logical set of pods and a policy by which to access them
ReplicationController: An abstraction for managing a group of PODs to ensure a specified number of PODs are running
• Container: A docker container

Magnum also includes a python client.

To get started with the code, try out the developer oriented documentation for using Magnum.

Please contact us on Freenode IRC (#openstack-containers) for any questions during your quick start.

Notes:
• Multi-tenancy is not yet implemented, but coming soon.
• Magnum is designed to allow deployment of Containers on any compute form factor, including Bare metal, virtual machines, and nested within containers.
• Ironic integration is coming soon, using the nova ironic scheduler.
• Magnum is not limited to only using a uOS, we just don’t want to introduce extra dependencies beyond what are usually available there.

For more information on work completed in this milestone check out the blueprints completed.

magnum-contributions-by-companiesMagnum was written by a collaboration of open source software developers from over 8 different companies. Everything from the concept stage to now has been done completely in the open.

Interested? Please contribute to Magnum. Visit our project page on the OpenStack Wiki to find our meeting schedule and project information.

The Magnum Repo can be accessed with Git from:

git://git.openstack.org/stackforge/magnum