Move to Icehouse

Now that a stable/havana branch of puppet_openstack_builder has been
cut, we need to move the default settings to Icehouse in the master
branch.  This commit does that.

Change-Id: I026e0cb1b932c71db433f65df76a0fae5a824fee
Removed unused cinder and glance data mappings.

Expanded cinder and glance backend in data_mappings.
Delete cinder and glance backend in hiera_data.
Added new vars to user.common.yaml to support cephdeploy module changes.

Change-Id: I93625d25f9d3f5f764e964e67f15e8dd302332d3
Merge "Move to Icehouse"
Drop rubygems install for trusty / icehouse

ruby packaging in trusty includes ruby gem command already. Also
installing rubygems is unnecessary and results in multiple ruby
toolchains being installed.

Change-Id: Ic5bc93c0926c29fa5116f9cf7a0a3b23addda3ba
Closes-Bug: #1295327
Remove automatic configuration of nagios

Drop calls of naginator module classes to configure nagios by default as
the module design does not align with Puppet workflows as used with
stackforge modules, and as most users have preferred NMS solutions which
they use instead of the default example Nagios setup this created.

Change-Id: I51ba18b7c059a07e686ef0f2410d266ef08a37b8
Implements: blueprint nagios-ectomy
Support separate apt repo for puppet modules

Starting in Icehouse, Cisco OpenStack Installer will split Puppet
modules into their own apt repository rather than including
them in the same repository as OpenStack core components and
supporting dependencies.  This patch adds support to the puppet-coi
module's base class for setting up the new Puppet repository.

Change-Id: Id3bd01188b01b5bd387cd6a5306238677855c474
Implements: blueprint separate-puppet-repo
Update deprecated libvirt_type parameter

Migrate from libvirt_type to libvirt_virt_type.

Change-Id: Ia8a8336be4c0a3ec90fa5607f0af47c92e59e6de
Partial-Bug: #1295662
Options for configuring live migration on NFS

Added options to configure NFS mounts for live migration. This support
adds the ability for a user to specify NFS mounts and options for puppet
to manage.

Change-Id: I27ec435f9f0e565ff8bbb14433274de92995617f
Add support for puppet-mysql 2.2

The PuppetLabs MySQL module has been updated to a much cleaner
version, but is not completely backward compatible with the old
0.9 version we're presently using.  Changes have been made to
puppet-nova, puppet-neutron, puppet-heat, etc to add a parameter
allowing users to select which of the two supported versions of
puppet-mysql to use.  This patch adds a data mapping that allows
users to choose which version they want to use via a single variable.
It defaults to 2.2 as we intend to use that going forward.

Change-Id: I6cdcde7d1f67acf7570f2ef15c0997b67f0f144c
Merge "Removed unused cinder and glance data mappings."
Merge "Add support for puppet-mysql 2.2"
Merge "Update deprecated libvirt_type parameter"
Merge "Support separate apt repo for puppet modules"
Remove controller and compute class groups.

These two class groups are composed from other class
groups. The forthcoming rewrite of the data model to
support pure hiera does not support this, and since
controller and compute are basically just restating
the role names and hiding what is actually on the node,
this patch removes them and places the set of groups
they were abstracting in their place.

Change-Id: Ice72703cbd5523e03876d09513e42c2c0ad050d7
Disable supplemental_repo for trusty+icehouse

The supplemental_repo is not expected to be needed for icehouse on
trusty.

Change-Id: I58bd59b9622b2d7124f6f42388f38c2128170463
Implements: blueprint separate-puppet-repo
Merge "Drop rubygems install for trusty / icehouse"
Merge "Disable supplemental_repo for trusty+icehouse"
Merge "Remove controller and compute class groups."
Rewrite data model to be pure hiera

This (enormous) patch adds experimental support
for a distribution that uses pure hiera in place
of the scenario_node_terminus.

A python script can be used to convert from the SNT
data model to the pure hiera one:
contrib/aptira/build/convert.py
It requires PyYaml, and will back up the old data
directory to data.old. It is not even remotely idempotent.

Data mappings are expressed using interpolation except
in the case where they are non-string, in which case
yaml anchors are used. At this time, YAML anchors are not
working across files, which places some restrictions on
their use.

Scenarios are now a part of the hiera_data folder,
and each scenario yaml file contains its mappings,
globals, and in future probably its 'user.scenario.yaml'
data.

Roles are under scenarios/%scenario/$role, and use a hiera
lookup of 'classes' and 'class_groups' to include classes.

Class groups are a new yaml file in hiera_data, and have
been changed to be string quoted since starting yaml keys
with a % is invalid.

Globals are not handled correctly at this point. They need to be
converted into a new structure based around hiera_data/contrib, which
will allow arbitrary class includes, but is not quite finished.

A new install script has been added at
contrib/aptira/install/bootstrap.sh that is an idempotent bash script.
This script will install ruby 2.0.0 from a prebuild rpm and then
install puppet from gem. It then configures hiera and uses the data
model to set up pre-puppet config without needing to run puppet.

A new Vagrantfile has been added under contrib/aptira/build that is
Vagrant 1.5 compatible, which uses the new bootstrap script.

In addition, a new scenario called stacktira has been added, which
uses a new galera module and a new module for openstack general
functionality called openstacklib. This scenario is added using
the node_terminus style of yaml, but functions when converted using
the aforementioned convert.py

Change-Id: Iaa00b165e2933cdb8c5149343b3cfe40bcc8b3db
Added options to set nova user's uid and gid

This enables the user to have a uniform uid and gid for nova
across all servers. This is required to do live migration over
NFS or Ceph, as nova stores metadata in /var/lib/nova/instances
by default regardless of storage type.

Change-Id: I1cbf478cfb3fabfc58f2ebb48e30da1bc35f8fc8