Update README.md
diff --git a/README.md b/README.md
index 1c58996..75602e8 100644
--- a/README.md
+++ b/README.md
@@ -1,16 +1,16 @@
# openstack-cluster-setup
This repository contains [Ansible](http://docs.ansible.com) playbooks for installing and configuring an OpenStack Kilo cluster
-for use with XOS. This is how we build clusters for [OpenCloud](http://opencloud.us), but it should serve as a rough guide
-for any XOS-managed deployment (e.g., [CORD](http://cord.onosproject.org)).
+for use with XOS. This is how we build clusters for [OpenCloud](http://opencloud.us), and is the method of
+installing a [CORD](http://cord.onosproject.org) development POD as well.
All of the OpenStack controller services are installed in VMs on a
single "head node" and connected by an isolated private network. [Juju](http://www.ubuntu.com/cloud/tools/juju) is used
to install and configure the OpenStack services.
-## Prerequisites
+## Prerequisites (OpenCloud and CORD)
-* *Set up control machine:* The install playbooks in this repository are designed to be run on a
- separate control machine (e.g., a laptop).
+* *Set up control machine:* The install playbooks in this repository can either run on a
+ separate control machine (e.g., a laptop) or on the cluster head node. Either way:
* Install a recent version of Ansible (Ansible 1.9.x on Mac OS X or Ubuntu should work).
* Be able to login to all of the cluster servers from the control machine using SSH.
* *Set up servers:* One server in the cluster will be the "head" node, running the OpenStack
@@ -20,7 +20,27 @@
* Each server should have a single active NIC (preferably eth0) with connectivity to the
Internet.
-## How to use it
+## How to install a CORD POD
+
+In addition to the prerequisites above, the CORD POD installation procedure assumes that
+there is a bridge called *mgmtbr* on the head node that is connected to the management
+network. Also there must be a DHCP server on the management network to hand out IP addresses
+to VMs; if you need to set up dnsmasq to do this, take a look at [this example](files/etc/dnsmasq.d/cord).
+Then follow these steps:
+
+* Edit *cord-hosts* with the DNS names of your compute nodes, and update the *ansible_ssh_user* variable appropriately.
+ This needs to work: `ansible -i cord-hosts compute -m ping`
+* Run: `ansible-playbook -i cord-hosts cord-setup.yml`
+* After the playbook finishes, wait for the OpenStack services to come up. You can check on their progress
+ using `juju status --format=tabular`
+* Once the services are up, you can use the `admin-openrc.sh` credentials in the home directory to
+ interact with OpenStack. You can SSH to any VM using `ssh ubuntu@<vm-name>`
+
+This will bring up various OpenStack services, including Neutron with the VTN plugin. It will also create
+two VMs called *xos* and *onos-cord* and prep them. Configuring and running XOS and ONOS in these VMs is beyond
+the scope of this document.
+
+## How to install an OpenCloud cluster
Once the prerequisites are satisfied, here are the basic steps for installing a new OpenCloud cluster named 'foo':
@@ -41,8 +61,8 @@
$ ansible-playbook -i foo-hosts foo-compute.yaml
```
-## Things to note
+### Things to note
* The installation configures port forwarding so that the OpenStack services can be accessed from outside the private network. Some OpenCloud-specific firewalling is also introduced, which will likely require modification for other setups. See: [files/etc/libvirt/hooks/qemu](https://github.com/andybavier/opencloud-cluster-setup/blob/master/files/etc/libvirt/hooks/qemu).
* By default the compute nodes are controlled and updated automatically using *ansible-pull* from [this repo](https://github.com/andybavier/opencloud-nova-compute-ansible). You may want to change this.
-* All of the service interfaces are configured to use SSL because that's what OpenCloud uses in production. Again, may not be what you want. Look for the relevant Juju commands in *cloudlab-setup.yaml*.
+* All of the service interfaces are configured to use SSL because that's what OpenCloud uses in production. To turn this off, look for the relevant Juju commands in *cloudlab-setup.yaml*.