[openstack-dev] [kolla][tripleo][nova][glance][keystone] announce of Kolla Milestone #1

Steven Dake sdake at redhat.com
Wed Oct 22 14:55:16 UTC 2014


The Kolla development community would like to announce the release of 
Kolla Milestone #1.  This milestone constitutes two weeks of effort by 
the developers and is available for immediate download from 
https://github.com/stackforge/kolla/archive/version-m1.tar.gz.

Kolla is a project to containerize OpenStack based upon Kubernetes and 
Docker.  With this release, we have minimally functional containers 
available for:

  * glance (glance-api, glance-registry)

  * mariadb

  * keystone

  * nova-compute (nova-network, nova-compute)

  * nova-controller (nova-conductor, nova-api, nova-scheduler)

  * rabbitmq

  * heat (heat-api, heat-engine)

While these containers will boot and provide the expected OpenStack 
APIs, they should be considered a technology demonstration rather than a 
functional OpenStack deployment.

We are hopeful the community gives Kolla a spin.

Setting up a test environment
=======================

OPTION 1 (run steps 1.1-1.5 and 3.1-3.4):
For  those without an existing Kubernetes environment, two options are 
available for configuring one:
The upstream Kubernetes community provides instructions for running 
Kubernetes using Vagrant, available 
from:https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/getting-started-guides/vagrant.md

The Kolla developers develop Kolla in OpenStack, using Heat to provision 
the necessary servers and other resources.  If you are familiar with 
Heat and you have a correctly configured environment available, this 
lets you deploy a working Kubernetes cluster automatically.  The Heat 
templates are available fromhttps://github.com/larsks/heat-kubernetes/. 
The templates require at least Heat 2014.1.3 (earlier versions have a 
bug that will prevent the templates from working).
Here are some simple steps to get things rolling using the Heat templates:

1.1. git clonehttps://github.com/larsks/heat-kubernetes/; cd heat-kubernetes

1.2. Create an appropriate image by running the get_image.sh script in 
this repository.  This will generate an image called 
"fedora-20-k8s.qcow2". Upload this image to Glance.  You can also obtain 
an appropriate image 
fromhttps://fedorapeople.org/groups/heat/kolla/fedora-20-k8s.qcow2.

1.3. Create a file "local.yaml" with settings appropriate to your 
OpenStack environment. It should look something like:

  * parameters:

  * server_image: fedora-20-k8s

  * ssh_key_name: sdake

  * dns_nameserver: 8.8.8.8

  * external_network_id: 6e7e7701-46a0-49c0-9f06-ac5abc79d6ae

  * number_of_minions: 1

  * server_flavor: m1.large


  * You *must* provide settings for external_network_id and
    ssh_key_name; these are local to your environment. You will probably
    also need to provide a value for server_image, which should be the
    name (or UUID) of a Fedora 20 cloud image or derivative.


1.4. heat stack-create -f kubecluster.yaml -e local.yaml my-kube-cluster
1.5. Determine the ip addresses of your cluster hosts by running:
     heat output-show my-kube-cluster kube_minions_external

OPTION 2 (run steps 2.1-2.12 and steps 3.1-3.4):

This document and the scripts provided assume Fedora on a virtual or 
physical environment outside of OpenStack. In this environment, Heat 
won't be accessible as the orchestration mechanism and scripts will be 
provided instead.
Install Master
------------------
2.1.: Install Fedora 20 x86-64 using whatever method is best for you 
(Kickstart+http works well if you have it setup)
2.2: Pick a node for your kubernetes master - note the IP address
2.3: Note the IP addresses of all other nodes. These will be referred to 
as "minions"
2.4: ssh root@{master-node} #It is very important that you ssh as root!
2.5: curlhttp://people.redhat.com/bholden/kube/master-install.sh> 
master-install.sh; chmod +x master-install.sh
2.6: Edit the master-install.sh file you just created. You will need to 
add the minion IP addresses to the variable MINION_ADDRESSES at the top, 
and then comment out the exit. MINION_ADDRESSES will expect commas 
between each minion IP address. This line have entries that match the 
MINION_HOSTNAME variables set on each minion. The script later will set 
each MINION_HOSTNAME to its IP address
2.7: sh master-install.sh

Can minion install run during master install or do we need to wait until 
after master is done to run minion installation?

Install Minions
-------------------
For this task, you may want to generate an SSH key from your workstation 
(if you're using Linux, run ssh-keygen) and then copy it around to your 
minions (if Linux, use ssh-copy-id root@${remote-ip})
You can then loop over the minion hostnames or IP addresses using a 
simple bash loop, example: for i in ip1 ip2 ip3; do ssh root@$i 
<command> ; done
This document will assume only one minion

2.8: ssh root@{minion-node}
2.9: curlhttp://people.redhat.com/bholden/kube/minion-install.sh> 
minion-install.sh; chmod +x minion-install.sh
2.10: Edit the minion-install.sh file you just created. You will need to 
change the KUBE_MASTER_IP variable at the top. Editing the 
BRIDGE_ADDRESS_BASE and LINKMANAGER_KEY variables are optional. Comment 
out the exit
2.11: sh minion-install.sh
2.12: An update has been made to /etc/environment . You can source this 
file, or log out and log back in. Make sure there is output when you 
run: env | grep KUBERNETES . This output should match the IP address of 
your kubernetes master


Installing kolla
===========

3.1. ssh <user>@${minion-ip}
3.2. minion$ git clonehttp://github.com/stackforge/kolla
3.3. minion$ cd kolla
3.4. minion$ ./tools/start

After executing these commands, Kolla will start with a minimum viable 
feature set to make OpenStack usable.  This includes running all of the 
OpenStack services currently enabled.  It takes approximately 20 minutes 
to download the pre-built containers for the various OpenStack 
services.  Once downloaded, the service will transition from WAITING to 
RUNNING (as can be seen with kubecfg list pods).  Our first milestone 
documented here (https://blueprints.launchpad.net/kolla/milestone-1) is 
fairly impressive, considering we had no code two weeks ago.

Our next milestone, #2 is planned for October 31st.  The blueprints are 
documented here:

  * https://blueprints.launchpad/net/kolla/milestone-2

Come join us in developing this really sweet technology!
     Regards
     -The Kolla Dev Team
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20141022/c60650ca/attachment.html>


More information about the OpenStack-dev mailing list