# OpenSteak ## OPNFV light installer ### 25th of March 2015 Morgan Richomme -- [morgan.richomme@orange.com](mailto:morgan.richomme@orange.com) Arnaud Morin -- [arnaud1.morin@orange.com](mailto:arnaud1.morin@orange.com) David Blaisonneau -- [david.blaisonneau@orange.com](mailto:david.blaisonneau@orange.com) Bertrand Le Lamer -- [bertrand.lelamer@orange.com](mailto:bertrand.lelamer@orange.com)
# Motivations * Simple system * Highly modular * Upgrade * Isolation * HA * Limited (all-in-one) Installer dependancies
## Target architecture ![opensteak](./images/opensteak_ha.png "OpenSteak")
## Features * Ubuntu 14.04 * OpenStack juno (MySQL, Rabbit, Keystone, Glance with Ceph, Cinder with Ceph, Nova, Neutron) => OK * Ceph Storage => OK * Bare metal provisioning => OK * ODL Helium => WIP * HA Mode => WIP
## Bare Metal ![opensteak](./images/maas.png "MAAS")
## Puppet * automatic configuration done with Puppet * based on specific stackforge based modules (see https://github.com/stackforge/?query=puppet). * r10k: to keep the module dependencies up to date (and to download modules automatically) * storage handled by Ceph. * valid Hiera configuration files must be provided
## Installation * Each controller part of Openstack is created separatly in a KVM machine. So that it can easily be updated or redeployed. * Each KVM machine is automatically created by a script (opensteak-create-vm) * Basic configuration comes through cloud-init. * Openstack related configuration is handled by puppet.
## Control/compute Node ![opensteak](./images/bridge_topology_controller_compute.jpg "OpenSteak")
## Control/compute Node * OVS bridges * br-int : Integration bridge. Tag/untag VLAN for VM. veth for VM will be in this bridge. * br-vm : Distributed bridge between compute nodes. Used to transport VM flows. * br-adm : Administration bridge. This is used by controller part of OpenStack (which are in KVM) and other administrative tasks. * 1 dedicated interface for Ceph storage.
## Network Node ![opensteak](./images/bridge_topology_network.jpg "OpenSteak")
## Network Node * idem Control/Compute Node * br-ex : Bridge to communicate with external networks.
# Demo * Physical node gets an IP address (DHCP) from MAAS * Connect over SSH * (temp hack: Set IP address on admin interface, WiP with MAAS to avoid this step)
## Before Installation ![opensteak](./images/before_install.jpg "Before Install")
## Run install ``` wget "https://gist.githubusercontent.com/arnaudmorinol/408b8c829aafce91deba/raw/common.yaml" wget "https://gist.githubusercontent.com/arnaudmorinol/5abc1e869eba97663ecf/raw/physical-nodes.yaml" wget "https://gist.githubusercontent.com/arnaudmorinol/41a94c5ac5c0a22e3fa2/raw/network.sh" wget "https://raw.githubusercontent.com/Orange-OpenSource/opnfv/master/ci/install.sh" bash install.sh --network-script network.sh ```
## After installation ![opensteak](./images/bridge_topology_allinone.jpg "After Install")
## Step by Step inside install.sh * Install dependencies (libvirt, openvswitch, puppet client, etc.) * Git Clone opensteak repo into /usr/local/opensteak * Get back configuration files (for hiera in YAML, see next slide) * Configure libvirt (ubuntu image, pools, etc.) * Configure networking (ovs) * Create each controller part of OpenStack in a KVM machine * Run puppet on physical node with allinone profile (network + compute)
## The configuration files * https://gist.githubusercontent.com/arnaudmorinol/408b8c829aafce91deba/raw/181f60111a8234e88cae96fd5dc7d3c8391ef92c/common.yaml * https://gist.githubusercontent.com/arnaudmorinol/5abc1e869eba97663ecf/raw/0b1bfcc9a280531634921e6623a6b88c3433650c/physical-nodes.yaml
## Tests ![opensteak](./images/Rally.png "OpenSteak")
## Tests * Create a dedicated VM (to be automated in Puppet) * Installation of Rally * Complete Openstack-rc file * Run Rally test suite
# Next steps * Install * ODL * HA * Install in a public POD * CI * Work with CI guys to let them use OpenSteak * Tests * Understand first results * Puppetization of the test VM * Automation of tests / link with CI
# Questions?
# Thank you