From f555e4b422f5a3acbb820128f7b20308d020ac01 Mon Sep 17 00:00:00 2001
From: James Slagle <jslagle@redhat.com>
Date: Thu, 20 Dec 2018 07:37:37 -0500
Subject: [PATCH] Add Distributed Compute roles

Adds new roles for DistributedCompute and DistributedComputeHCI. These
roles closely match the existing Compute roles but also include the
CinderVolume service.

implements split-controlplane

Change-Id: Ia7f5ba93a9fc31b4653e6cbd9b3e5d8f00d26a27
---
 .../distributed-roles-a3a5a5d9eb25e6b0.yaml   |  8 +++
 roles/DistributedCompute.yaml                 | 64 +++++++++++++++++
 roles/DistributedComputeHCI.yaml              | 69 +++++++++++++++++++
 3 files changed, 141 insertions(+)
 create mode 100644 releasenotes/notes/distributed-roles-a3a5a5d9eb25e6b0.yaml
 create mode 100644 roles/DistributedCompute.yaml
 create mode 100644 roles/DistributedComputeHCI.yaml

diff --git a/releasenotes/notes/distributed-roles-a3a5a5d9eb25e6b0.yaml b/releasenotes/notes/distributed-roles-a3a5a5d9eb25e6b0.yaml
new file mode 100644
index 0000000000..fbbdc83ac8
--- /dev/null
+++ b/releasenotes/notes/distributed-roles-a3a5a5d9eb25e6b0.yaml
@@ -0,0 +1,8 @@
+---
+features:
+  - |
+    New roles for DistributedCompute and DistributedComputeHCI are added. These
+    roles match the existing Compute roles, but also include the CinderVolume
+    service. The CinderVolume service is included using the
+    BlockStorageCinderVolume service name so that it can be mapped
+    independently from CinderVolume.
diff --git a/roles/DistributedCompute.yaml b/roles/DistributedCompute.yaml
new file mode 100644
index 0000000000..a385da2c9a
--- /dev/null
+++ b/roles/DistributedCompute.yaml
@@ -0,0 +1,64 @@
+###############################################################################
+# Role: DistributedCompute                                                    #
+###############################################################################
+- name: DistributedCompute
+  description: |
+    Distributed Compute Node role with Cinder volume.
+  CountDefault: 1
+  networks:
+    InternalApi:
+      subnet: internal_api_subnet
+    Tenant:
+      subnet: tenant_subnet
+    Storage:
+      subnet: storage_subnet
+  RoleParametersDefault:
+    TunedProfileName: "virtual-host"
+  ServicesDefault:
+    - OS::TripleO::Services::Aide
+    - OS::TripleO::Services::AuditD
+    - OS::TripleO::Services::BootParams
+    - OS::TripleO::Services::CACerts
+    - OS::TripleO::Services::CephClient
+    - OS::TripleO::Services::CephExternal
+    - OS::TripleO::Services::CertmongerUser
+    - OS::TripleO::Services::BlockStorageCinderVolume
+    - OS::TripleO::Services::Collectd
+    - OS::TripleO::Services::ComputeCeilometerAgent
+    - OS::TripleO::Services::ComputeNeutronCorePlugin
+    - OS::TripleO::Services::ComputeNeutronL3Agent
+    - OS::TripleO::Services::ComputeNeutronMetadataAgent
+    - OS::TripleO::Services::ComputeNeutronOvsAgent
+    - OS::TripleO::Services::Docker
+    - OS::TripleO::Services::Fluentd
+    - OS::TripleO::Services::Ipsec
+    - OS::TripleO::Services::Iscsid
+    - OS::TripleO::Services::Kernel
+    - OS::TripleO::Services::LoginDefs
+    - OS::TripleO::Services::MetricsQdr
+    - OS::TripleO::Services::MySQLClient
+    - OS::TripleO::Services::NeutronBgpVpnBagpipe
+    - OS::TripleO::Services::NeutronLinuxbridgeAgent
+    - OS::TripleO::Services::NeutronVppAgent
+    - OS::TripleO::Services::NovaCompute
+    - OS::TripleO::Services::NovaLibvirt
+    - OS::TripleO::Services::NovaLibvirtGuests
+    - OS::TripleO::Services::NovaMigrationTarget
+    - OS::TripleO::Services::ContainersLogrotateCrond
+    - OS::TripleO::Services::OpenDaylightOvs
+    - OS::TripleO::Services::Podman
+    - OS::TripleO::Services::Rhsm
+    - OS::TripleO::Services::RsyslogSidecar
+    - OS::TripleO::Services::Securetty
+    - OS::TripleO::Services::SensuClient
+    - OS::TripleO::Services::SkydiveAgent
+    - OS::TripleO::Services::Snmp
+    - OS::TripleO::Services::Sshd
+    - OS::TripleO::Services::Timesync
+    - OS::TripleO::Services::Timezone
+    - OS::TripleO::Services::TripleoFirewall
+    - OS::TripleO::Services::TripleoPackages
+    - OS::TripleO::Services::Tuned
+    - OS::TripleO::Services::Vpp
+    - OS::TripleO::Services::OVNController
+    - OS::TripleO::Services::OVNMetadataAgent
diff --git a/roles/DistributedComputeHCI.yaml b/roles/DistributedComputeHCI.yaml
new file mode 100644
index 0000000000..5b2b8662a0
--- /dev/null
+++ b/roles/DistributedComputeHCI.yaml
@@ -0,0 +1,69 @@
+###############################################################################
+# Role: DistributedComputeHCI                                                 #
+###############################################################################
+- name: DistributedComputeHCI
+  description: |
+    Distributed Compute Node role hosting Ceph OSD and Cinder volume.
+  networks:
+    InternalApi:
+      subnet: internal_api_subnet
+    Tenant:
+      subnet: tenant_subnet
+    Storage:
+      subnet: storage_subnet
+  RoleParametersDefault:
+    TunedProfileName: "throughput-performance"
+  ServicesDefault:
+    - OS::TripleO::Services::Aide
+    - OS::TripleO::Services::AuditD
+    - OS::TripleO::Services::BootParams
+    - OS::TripleO::Services::CACerts
+    - OS::TripleO::Services::CephClient
+    - OS::TripleO::Services::CephExternal
+    - OS::TripleO::Services::CephMds
+    - OS::TripleO::Services::CephMgr
+    - OS::TripleO::Services::CephMon
+    - OS::TripleO::Services::CephRbdMirror
+    - OS::TripleO::Services::CephRgw
+    - OS::TripleO::Services::CephOSD
+    - OS::TripleO::Services::CertmongerUser
+    - OS::TripleO::Services::BlockStorageCinderVolume
+    - OS::TripleO::Services::Collectd
+    - OS::TripleO::Services::ComputeCeilometerAgent
+    - OS::TripleO::Services::ComputeNeutronCorePlugin
+    - OS::TripleO::Services::ComputeNeutronL3Agent
+    - OS::TripleO::Services::ComputeNeutronMetadataAgent
+    - OS::TripleO::Services::ComputeNeutronOvsAgent
+    - OS::TripleO::Services::Docker
+    - OS::TripleO::Services::Fluentd
+    - OS::TripleO::Services::Ipsec
+    - OS::TripleO::Services::Iscsid
+    - OS::TripleO::Services::Kernel
+    - OS::TripleO::Services::LoginDefs
+    - OS::TripleO::Services::MetricsQdr
+    - OS::TripleO::Services::MySQLClient
+    - OS::TripleO::Services::NeutronBgpVpnBagpipe
+    - OS::TripleO::Services::NeutronLinuxbridgeAgent
+    - OS::TripleO::Services::NeutronVppAgent
+    - OS::TripleO::Services::NovaCompute
+    - OS::TripleO::Services::NovaLibvirt
+    - OS::TripleO::Services::NovaLibvirtGuests
+    - OS::TripleO::Services::NovaMigrationTarget
+    - OS::TripleO::Services::ContainersLogrotateCrond
+    - OS::TripleO::Services::OpenDaylightOvs
+    - OS::TripleO::Services::Podman
+    - OS::TripleO::Services::Rhsm
+    - OS::TripleO::Services::RsyslogSidecar
+    - OS::TripleO::Services::Securetty
+    - OS::TripleO::Services::SensuClient
+    - OS::TripleO::Services::SkydiveAgent
+    - OS::TripleO::Services::Snmp
+    - OS::TripleO::Services::Sshd
+    - OS::TripleO::Services::Timesync
+    - OS::TripleO::Services::Timezone
+    - OS::TripleO::Services::TripleoFirewall
+    - OS::TripleO::Services::TripleoPackages
+    - OS::TripleO::Services::Tuned
+    - OS::TripleO::Services::Vpp
+    - OS::TripleO::Services::OVNController
+    - OS::TripleO::Services::OVNMetadataAgent