summaryrefslogtreecommitdiff
path: root/docs/dev-quickstart.md
blob: e471ae79033215b5ea194beb7bd7fee42235b160 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# Developer Environment

If you are developing Kolla on an existing OpenStack cloud
that supports Heat, then follow the Heat template [README][].
Otherwise, follow the instructions below to manually create
your Kolla development environment.

[README]: https://github.com/stackforge/kolla/blob/master/devenv/README.md

## Installing Dependencies

In order to run Kolla, it is mandatory to run a version of `docker-compose`
that includes pid: host support.  The `docker-compose` master repository
includes support but the pip packaged version of 1.2.0 does not.  We expect
the pip packaged version of docker-compose 1.3.0 to include the necessary
features, so these next steps won't be necessary if installed from pip or
distro packaging.

    git clone http://github.com/docker/compose
    cd compose
    sudo pip install -e .

In order to run Kolla, it is mandatory to run a version of `docker`
that is a 1.6.0.  Docker 1.5.0 has a defect in `--pid=host` support where
the libvirt container cannot be stopped.

If a version of Docker less than 1.6.0 is running on your system, stop it:

    sudo systemctl stop docker
    sudo killall -9 docker

Next, download and run the Docker 1.6.0 binary provided by Docker Inc.:

    curl https://get.docker.com/builds/Linux/x86_64/docker-1.6.0 -o docker
    sudo ./docker -d &

Next, install the OpenStack python clients if they are not installed:

   sudo yum install python-keystoneclient python-glanceclient \
       python-novaclient python-heatclient python-neutronclient

Finally stop libvirt on the host machine.  Only one copy of libvirt may be
running at a time.

    service libvirtd stop

The basic starting environment will be created using `docker-compose`.
This environment will start up the openstack services listed in the
compose directory.

## Starting Kolla

To start, setup your environment variables.

    $ cd kolla
    $ ./tools/genenv

The `genenv` script will create a compose/openstack.env file
and an openrc file in your current directory. The openstack.env
file contains all of your initialized environment variables, which
you can edit for a different setup.

A mandatory step is customizing the FLAT_INTERFACE network interface
environment variable.  The variable defaults to eth1.  In some cases, the
second interface in a system may not be eth1, but a unique name.  For
exmaple with an Intel driver, the interface is enp1s0.  The interface name
can be determined by executing the ifconfig tool.  The second interface must
be a real interface, not a virtual interface.  Make certain to store the
interface name in `compose/openstack.env`:

    NEUTRON_FLAT_NETWORK_INTERFACE=enp1s0
    FLAT_INTERFACE=enp1s0

Next, run the start command:

    $ sudo ./tools/kolla start

Finally, run the status command:

    $ sudo ./tools/kolla status

This will display information about all Kolla containers.

## Debugging Kolla

All Docker commands should be run from the directory of the Docker binary,
by default this is `/`.

The `start` command to kolla is responsible for starting the containers
using `docker-compose -f <service-container> up -d`.

If you want to start a container set by hand use this template:

    $ docker-compose -f glance-api-registry.yml up -d


You can determine a container's status by executing:

    $ sudo ./docker ps -a

If any of the containers exited you can check the logs by executing:

    $ sudo ./docker logs <container-id>
    $ docker-compose logs <container-id>

If you want to start a individual service like `glance-api` manually, use
this template.  This is a good method to test and troubleshoot an individual
container.  Note some containers require special options.  Reference the
compose yml specification for more details:

    $ sudo ./docker run --name glance-api -d \
             --net=host \
             --env-file=compose/openstack.env \
             kollaglue/fedora-rdo-glance-api:latest