Add NOVCP HA OVS scenario (baremetal, virtual) 65/48765/15
authorAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 28 Nov 2017 23:06:44 +0000 (00:06 +0100)
committerAlexandru Avadanii <Alexandru.Avadanii@enea.com>
Tue, 6 Feb 2018 22:40:38 +0000 (23:40 +0100)
commitf49be97051c3c5c8bb4386d236197103d3682720
tree9b468dad5afbf51cc8ffb82df88754bf11d1d13f
parentb6689c3e319b66b64bc0fe49366dfdeb4152e664
Add NOVCP HA OVS scenario (baremetal, virtual)

Add a new class of scenarios, based on existing baremetal HA
scenarios, but instead of having a virtualized control plane (VCP),
all Openstack controller services will run directly on the cluster
nodes.
This change adds the common scaffolding, as well as the OVS scenario.

The new scenario(s) can be used on full-baremetal clusters, soon on
full-virtual clusters and later on hybrid (virt + bare) clusters.
This change defines old (current) style scenario definitions for
both baremetal and virtual, both named:
- os-nosdn-nofeature-novcp-ha;

Prerequisites:
1. Merge-able by name reclass.storage.node definitions
   Each cluster (e.g. database, telemetry) adds its own set of
   reclass storage node defitions, which for novcp scenarios should
   be merged into a single node (kvm) based on the 'name' property.
   This is not currently supported by upstream reclass 'node.sls'
   high state, so add support for it via an early patch (required
   before salt-master-init.sh tries to handle reclass.storage).
2. common reclass classes for novcp
   Some of the classes in `baremetal-...-common-ha` are not fit for
   novcp as they define VCP-specific config/inheritance, so add new
   versions of said classes with novcp in mind or adapt old classes:
   - parameterize ctl hostname in `openstack_compute.yml`;
   - new `openstack_control_novcp.yml`;
   - new `openstack_init_novcp.yml`;
3. Handle hard set names in state files for baremetal nodes
   Some of our state files (e.g. maas) hardcodes baremetal node names
   to 'kvm', 'cmp', so we need to align the names in novcp scenario
   with these values to re-use the maas state. As a future improvement
   we should parameterize these names in all state files.
   As a consequence, our baremetal controller nodes will also use
   'kvm*' hostnames (instead of 'ctl*').
4. Add 'noifupdown' to all interfaces on kvm nodes to prevent duplicate
   IPs/routes created at *any* ifup due to /etc/network/route-br-ex.
   Patch salt-formula-linux to skip network restart on 'noifupdown',
   also when routes are present on that interface.

JIRA: FUEL-310

Change-Id: Ic67778f63e5ee0334dbfe9547c7109ec1a938d61
Signed-off-by: Alexandru Avadanii <Alexandru.Avadanii@enea.com>
28 files changed:
README.rst
mcp/config/scenario/baremetal/os-nosdn-nofeature-novcp-ha.yaml [new file with mode: 0644]
mcp/config/scenario/virtual/os-nosdn-nofeature-novcp-ha.yaml [new file with mode: 0644]
mcp/patches/0011-routes-Skip-network-restart-on-noifupdown.patch [new file with mode: 0644]
mcp/patches/0014-reclass.storage.node-Merge-duplicate-nodes.patch [new file with mode: 0644]
mcp/patches/patch.sh
mcp/patches/patches.list
mcp/patches/patches_init.list [new file with mode: 0644]
mcp/patches/scripts/0002-salt-master-init.sh-Apply-OPNFV-Fuel-patches.patch [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-common-ha/infra/kvm_pdf.yml.j2
mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_control_novcp.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-common-ha/openstack_init_novcp.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/infra/config.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/infra/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/infra/kvm.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/infra/maas.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/compute.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/compute_pdf.yml.j2 [new symlink]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/control.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/database.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/init.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/message_queue.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/proxy.yml [new file with mode: 0644]
mcp/reclass/classes/cluster/mcp-pike-ovs-novcp-ha/openstack/telemetry.yml [new file with mode: 0644]
mcp/reclass/nodes/cfg01.mcp-pike-ovs-novcp-ha.local.yml [new file with mode: 0644]
mcp/scripts/lib.sh
mcp/scripts/salt.sh