2. Running TripleO Quickstart on Openstack instances

By default, TripleO Quickstart uses libvirt to create virtual machines (VM) to serve as undercloud and overcloud nodes for a TripleO deployment. With some steps and modification, TripleO Quickstart can setup an undercloud and deploy the overcloud on instances launched on an Openstack cloud rather than libvirt VMs.

2.1. Beginning assumptions

This document details the workflow for running TripleO Quickstart on Openstack instances. In particular, the example case is instances created via Heat and Openstack Virtual Baremetal <https://github.com/cybertron/openstack-virtual-baremetal>.

The following are assumed to have been completed before following this document:

  • An Openstack cloud exists and has been set up (and configured as described in <https://github.com/cybertron/openstack-virtual-baremetal#patching-the-host-cloud> if the cloud is pre-Mitaka release). From the Mitaka release the cloud should not require patching
  • The undercloud image under test has been uploaded to Glance in the Openstack cloud.
  • A heat stack has been deployed with instances for the undercloud, bmc, and overcloud nodes.
  • The nodes.json file has been created (later to be copied to the undercloud as instackenv.json)

Below is an example env.yaml file used to create the heat stack that will support a tripleo-quickstart undercloud and overcloud deployment with network isolation:

parameters:
  os_user: admin
  os_password: password
  os_tenant: admin
  os_auth_url: http://10.10.10.10:5000/v2.0

  bmc_flavor: m1.medium
  bmc_image: 'bmc-base'
  bmc_prefix: 'bmc'

  baremetal_flavor: m1.large
  baremetal_image: 'ipxe-boot'
  baremetal_prefix: 'baremetal'

  key_name: 'key'
  private_net: 'private'
  node_count: {{ node_count }}
  public_net: 'public'
  provision_net: 'provision'

  # QuintupleO-specific params ignored by virtual-baremetal.yaml
  undercloud_name: 'undercloud'
  undercloud_image: '{{ latest_undercloud_image }}'
  undercloud_flavor: m1.xlarge
  external_net:  '{{ external_net }}'
  undercloud_user_data: |
        #!/bin/sh
        sed -i "s/no-port-forwarding.*sleep 10\" //" /root/.ssh/authorized_keys

#parameter_defaults:
## Uncomment and customize the following to use an existing floating ip
#  undercloud_floating_ip_id: 'uuid of floating ip'
#  undercloud_floating_ip: 'address of floating ip'

resource_registry:
## Uncomment the following to use an existing floating ip
#  OS::OVB::UndercloudFloating: templates/undercloud-floating-existing.yaml

## Uncomment the following to use no floating ip
#  OS::OVB::UndercloudFloating: templates/undercloud-floating-none.yaml

## Uncomment the following to create a private network
  OS::OVB::PrivateNetwork: {{ templates_dir }}/private-net-create.yaml

## Uncomment to create all networks required for network-isolation.
## parameter_defaults should be used to override default parameter values
## in baremetal-networks-all.yaml
  OS::OVB::BaremetalNetworks: {{ templates_dir }}/baremetal-networks-all.yaml
  OS::OVB::BaremetalPorts: {{ templates_dir }}/baremetal-ports-all.yaml

## Uncomment to deploy a quintupleo environment without an undercloud.
#  OS::OVB::UndercloudEnvironment: OS::Heat::None