OpenStack User Group Italia

OpenStack On OpenStack

TripleO reality check


A management cloud and a production cloud

Undercloud and Overcloud

A program aimed at installing, upgrading and operating OpenStack clouds using OpenStack's own cloud facilities as the foundations.


Any OpenStack deployment which provides Heat, Nova, Glance, Neutron, Ironic

Is used to deploy, update, scale up or down, delete and redeploy the Overcloud, on baremetal nodes or on VMs, as if these were local resources

Instack can deploy the Undercloud as an AllInOne, on baremetal or on a VM

Will (in the future) do Heat autoscaling and Mistral workflows

Overcloud deployment process

Heat logic provides Hiera data for Puppet

  1. Heat demands creation of the basic resources (servers, networks)
  2. Nova (and Ironic) deploy unconfigured images on baremetal or virtual nodes
  3. On call-back, Heat unlocks different metadata per server/role
  4. Metadata containts Puppet manifests and Hiera data
  5. A local Puppet apply configures the node; on success receives further data

Both the Hiera data and the manifest can be edited and reapplied via Heat update


Controller/Compute/Ceph/Cinder/Swift roles

Can do HA (with Pacemaker)

Can do Ceph (managed or external)

Can do network isolation (also on IPv6)

Can be upgraded (only in between minors for now)

Configured by Puppet (Hiera)

Is very hackable (Hiera, Puppet manifests, Shell scripts)

How I set up the demo

  1. Used Instack to create 4 VMs on a single baremetal
  2. Installed an AllInOne Undercloud on the first VM
  3. Built the Overcloud images
  4. Registered the remaining 3 VMs in Ironic
  5. Deployed an Overcloud made up of 3 nodes

Docs are at

              Automates TripleO setup steps.

              --repo-setup         -- Perform repository setup.
              --delorean-setup     -- Install local delorean build environment.
              --delorean-build     -- Build a delorean package locally
              --undercloud         -- Install the undercloud.
              --overcloud-images   -- Build and load overcloud images.
              --register-nodes     -- Register and configure nodes.
              --introspect-nodes   -- Introspect nodes.
              --flavors            -- Create flavors for deployment.
              --overcloud-deploy   -- Deploy an overcloud.
              --use-containers     -- Use a containerized compute node.
              --all, -a            -- Run all of the above commands.
              -x                   -- enable tracing
              --help, -h           -- Print this help message.

Not in the docs, you should checkout tripleo-common

Demo configuration params

              ControlPlaneSubnetCidr: "24"
              ExternalAllocationPools: [{'start': '', 'end': ''}]
              DnsServers: ['']

            $ more ceph.yaml
            ceph::profile::params::osd_journal_size: 1024
            ceph::profile::params::osd_pool_default_pg_num: 32
            ceph::profile::params::osd_pool_default_pgp_num: 32
            ceph::profile::params::osd_pool_default_size: 3
            ceph::profile::params::osd_pool_default_min_size: 1
            ceph::profile::params::osds: {/srv/data: {}}
            ceph::profile::params::manage_repo: false
            ceph::profile::params::authentication_type: cephx


    Composable roles

    Deploy all roles in containers

    Overcloud guests HA

    A friendly UI


Giulio Fidente @ Red Hat

IRC: gfidente