magnum/README.rst
Jay Lau a69c1dea1f Update README for magnum
1) The "Run" section is not accurate for "magnum-backend"
2) Adjust the font for "select a subcommand"

Change-Id: I4023880a925744415d90d00c42db813284c0bbc3
2014-12-01 00:40:48 -05:00

125 lines
3.6 KiB
ReStructuredText

======
Magnum
======
new Openstack project for containers.
* Free software: Apache license
* Documentation: http://docs.openstack.org/developer/magnum
* Source: http://git.openstack.org/cgit/stackforge/magnum
* Bugs: http://bugs.launchpad.net/magnum
* ReST Client: http://github.com/stackforge/python-magnumclient
Architecture
------------
There are four different types of objects in the Magnum system:
* Bay: A physical machine or virtual machine where work is scheduled
* Pod: A collection of containers running on one physical or virtual machine
* Service: A port to Pod mapping
* Container: A docker container
Three binaries work together to compose the Magnum system. The first binary
accessed by the python-magnumclient code is the magnum-api ReST server. The
ReST server may run as one process or multiple processes. When a ReST request
is sent to the client API, the request is sent via AMQP to the magnum-backend
process.
The magnum-backend process runs on each machine where a docker server is
running or where a k8s minion is located. The backend processor contacts the
appropriate backend (for the container object, docker, for the server & pod
objects, k8s). The backend then executes the operation requested and sends the
results to the third binary.
The third binary, magnum-conductor, reads and writes the database with
information related to the object operated upon. The conductor then returns
the new object back up the call stack, where it may be used to provide
information to the client or used for processing the operation. There is only
one magnum-conductor process running.
Features
--------
* Abstractions for bays, pods, services, and containers.
* Integration with Kubernetes and Docker for backend container technology.
* Integration with Keystone for multi-tenant security.
* Integraiton with Neutron for k8s multi-tenancy network security.
Installation
------------
* Configure Keystone::
$ source openrc admin admin
$ keystone user-create --name=magnum \
--pass=<secure-magnum-password> \
--email=magnum@example.com
$ keystone service-create --name=container \
--type=container \
--description="Magnum Container Service"
$ keystone endpoint-create --service=container \
--publicurl=http://127.0.0.1:9511/v1 \
--internalurl=http://127.0.0.1:9511/v1 \
--adminurl=http://127.0.0.1:9511/v1
* Install Magnum::
$ git clone http://github.com/stackforge/magnum
$ cd magnum
$ sudo python ./setup.py install
$ cd ..
* Install Magnum's Python Client::
$ git clone http://github.com/stackforge/python-magnumclient
$ cd python-magnumclient
$ sudo python ./setup.py install
$ cd ..
Run
---
* Start magnum-api::
$ magnum-api &
* Start magnum-conductor::
$ magnum-conductor &
* Start magnum-backend (should be started where a docker server or kubernetes api server is running)::
$ magnum-backend &
Access Magnum via ReST API
--------------------------
* Note the magnum ReST API is not yet plumbed *
* select a subcommand::
bay-create
bay-delete
bay-list
bay-show
container-create
container-delete
container-execute
container-list
container-logs
container-pause
container-reboot
container-show
container-start
container-stop
container-unpause
pod-create
pod-delete
pod-list
pod-show
service-create
service-delete
service-list
service-show
* Run the operation::
$ magnum bay-list