From 3b9e1dad6622fb085bce5aa72ac1271256501a99 Mon Sep 17 00:00:00 2001 From: Alan Bishop Date: Tue, 8 Dec 2020 06:17:02 -0800 Subject: [PATCH] Define a new CinderVolumeEdge service CinderVolumeEdge is an optional service (defaults to OS::Heat::None) that can be enabled on DCN/Edge nodes for edge sites that support persistent block storage (i.e. cinder). The dcn-hci.yaml environment file enables the service. The new service supports the following edge deployment models: 1. Edge site with no block storage - Deploy DistributedCompute nodes - Use dcn.yaml environment file (the CinderVolumeEdge service remains disabled) 2. Edge site with traditional HCI storage - Deploy DistributedComputeHCI nodes - Use dcn-hci.yaml env file to enable the CinderVolumeEdge service - Use ceph-ansible.yaml env file to deploy ceph for the RBD backend 3. Edge site with quasi-hyperconverged storage - Deploy DistributedCompute nodes - Use dcn-hci.yaml env file to enable the CinderVolumeEdge service - Use ceph-ansible-external.yaml env file so the RBD backend can access an external ceph cluster This patch adds support for number 3, which is a new capability. Whereas traditional HCI means ceph and cinder services run on compute nodes, the new model is still quasi-hyperconverged because cinder (as well as glance) runs on the compute nodes. Change-Id: I56b5792c1d53bb8659e440f598006e471894ff2e (cherry picked from commit 2d60799c49b4b153f59c19c766cf8c6e06312cd2) (cherry picked from commit 8e316d7f1b033fcb32dee399d1ed360101e9a00e) --- environments/dcn-hci.yaml | 2 +- overcloud-resource-registry-puppet.j2.yaml | 1 + roles/DistributedCompute.yaml | 2 ++ roles/DistributedComputeHCI.yaml | 2 +- sample-env-generator/dcn.yaml | 2 +- 5 files changed, 6 insertions(+), 3 deletions(-) diff --git a/environments/dcn-hci.yaml b/environments/dcn-hci.yaml index 89dc8af974..591f6a04a5 100644 --- a/environments/dcn-hci.yaml +++ b/environments/dcn-hci.yaml @@ -49,7 +49,7 @@ parameter_defaults: resource_registry: OS::TripleO::Network::Ports::OVNDBsVipPort: ../network/ports/noop.yaml OS::TripleO::Network::Ports::RedisVipPort: ../network/ports/noop.yaml - OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml + OS::TripleO::Services::CinderVolumeEdge: ../deployment/cinder/cinder-volume-container-puppet.yaml OS::TripleO::Services::Etcd: ../deployment/etcd/etcd-container-puppet.yaml OS::TripleO::Services::GlanceApiEdge: ../deployment/glance/glance-api-edge-container-puppet.yaml OS::TripleO::Services::HAproxyEdge: ../deployment/haproxy/haproxy-edge-container-puppet.yaml diff --git a/overcloud-resource-registry-puppet.j2.yaml b/overcloud-resource-registry-puppet.j2.yaml index cff29b2507..c7adf9e0fe 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -288,6 +288,7 @@ resource_registry: OS::TripleO::Services::CinderBackendVRTSHyperScale: OS::Heat::None OS::TripleO::Services::CinderBackendNVMeOF: OS::Heat::None OS::TripleO::Services::CinderHPELeftHandISCSI: OS::Heat::None + OS::TripleO::Services::CinderVolumeEdge: OS::Heat::None OS::TripleO::Services::Etcd: OS::Heat::None OS::TripleO::Services::AuditD: OS::Heat::None OS::TripleO::Services::OctaviaApi: OS::Heat::None diff --git a/roles/DistributedCompute.yaml b/roles/DistributedCompute.yaml index c4e40f29b9..8c49c952a1 100644 --- a/roles/DistributedCompute.yaml +++ b/roles/DistributedCompute.yaml @@ -24,12 +24,14 @@ - OS::TripleO::Services::CephClient - OS::TripleO::Services::CephExternal - OS::TripleO::Services::CertmongerUser + - OS::TripleO::Services::CinderVolumeEdge - 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::Etcd - OS::TripleO::Services::GlanceApiEdge - OS::TripleO::Services::IpaClient - OS::TripleO::Services::Ipsec diff --git a/roles/DistributedComputeHCI.yaml b/roles/DistributedComputeHCI.yaml index d4f7f89318..965de13d64 100644 --- a/roles/DistributedComputeHCI.yaml +++ b/roles/DistributedComputeHCI.yaml @@ -21,7 +21,6 @@ - OS::TripleO::Services::Aide - OS::TripleO::Services::AuditD - OS::TripleO::Services::BarbicanClient - - OS::TripleO::Services::BlockStorageCinderVolume - OS::TripleO::Services::BootParams - OS::TripleO::Services::CACerts - OS::TripleO::Services::CephClient @@ -34,6 +33,7 @@ - OS::TripleO::Services::CephRgw - OS::TripleO::Services::CephOSD - OS::TripleO::Services::CertmongerUser + - OS::TripleO::Services::CinderVolumeEdge - OS::TripleO::Services::Collectd - OS::TripleO::Services::ComputeCeilometerAgent - OS::TripleO::Services::ComputeNeutronCorePlugin diff --git a/sample-env-generator/dcn.yaml b/sample-env-generator/dcn.yaml index 4392510f9f..718c28e0f7 100644 --- a/sample-env-generator/dcn.yaml +++ b/sample-env-generator/dcn.yaml @@ -55,4 +55,4 @@ environments: resource_registry: <<: *dcn_resource_registry OS::TripleO::Services::Etcd: ../deployment/etcd/etcd-container-puppet.yaml - OS::TripleO::Services::CinderVolume: ../deployment/cinder/cinder-volume-container-puppet.yaml + OS::TripleO::Services::CinderVolumeEdge: ../deployment/cinder/cinder-volume-container-puppet.yaml