From 8e316d7f1b033fcb32dee399d1ed360101e9a00e 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) --- 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 ba5c04a9e0..d8036b4e66 100644 --- a/environments/dcn-hci.yaml +++ b/environments/dcn-hci.yaml @@ -45,7 +45,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 abfe899dbf..5d79c6dd0d 100644 --- a/overcloud-resource-registry-puppet.j2.yaml +++ b/overcloud-resource-registry-puppet.j2.yaml @@ -287,6 +287,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 6e5335ae6e..76f512afe0 100644 --- a/roles/DistributedCompute.yaml +++ b/roles/DistributedCompute.yaml @@ -26,12 +26,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 4b0945c78d..2b67e280ca 100644 --- a/roles/DistributedComputeHCI.yaml +++ b/roles/DistributedComputeHCI.yaml @@ -23,7 +23,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 @@ -36,6 +35,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 cf54ab3aca..fc65df87b2 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