Single-cluster RabbitMQ for OpenStack

The intention for the patch is to increase the stability of
OpenStack installation:

1. Use a single RabbitMQ cluster for all OpenStack services.
2. Use 2 replicas for RabbitMQ clusters instead of 3; RabbitMQ
   does not implement a quorum mechanism which allows us to have
   even number of nodes, this should provide better performance
   by reducing the number of instances where the data should be
   replicated. This should also reduce the odds of getting
   RabbitMQ partitioning.

Co-authored-by: Drew Walters <andrew.walters@att.com>

Change-Id: Id981e2650efc24a9e67cf87a0abd414a96f40088
This commit is contained in:
Evgeny L
2019-07-08 21:25:29 +00:00
committed by Kaspars Skels
parent 6bb6c42b44
commit c357733d71
70 changed files with 209 additions and 1513 deletions

View File

@@ -13,5 +13,4 @@ metadata:
data:
description: Deploy Cinder
chart_group:
- cinder-rabbitmq
- cinder

View File

@@ -73,7 +73,7 @@ metadata:
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.cinder_oslo_messaging
path: .osh.oslo_messaging
dest:
path: .values.endpoints.oslo_messaging
- src:
@@ -103,7 +103,7 @@ metadata:
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.cinder.oslo_messaging.admin
path: .osh.oslo_messaging.admin
dest:
path: .values.endpoints.oslo_messaging.auth.admin
- src:
@@ -125,6 +125,13 @@ metadata:
dest:
path: .values.endpoints.oslo_db.path
pattern: DB_NAME
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.volume.name
dest:
path: .values.endpoints.oslo_messaging.path
pattern: VHOST_NAME
# Secrets
- dest:
@@ -143,13 +150,13 @@ metadata:
path: .values.endpoints.oslo_messaging.auth.admin.password
src:
schema: deckhand/Passphrase/v1
name: osh_cinder_oslo_messaging_admin_password
name: osh_oslo_messaging_admin_password
path: .
- dest:
path: .values.endpoints.oslo_messaging.auth.cinder.password
src:
schema: deckhand/Passphrase/v1
name: osh_cinder_oslo_messaging_password
name: osh_oslo_messaging_admin_password
path: .
- dest:
path: .values.endpoints.oslo_db.auth.cinder.password

View File

@@ -1,120 +0,0 @@
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: cinder-rabbitmq
labels:
name: cinder-rabbitmq-global
component: cinder
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
# Chart source
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.osh.rabbitmq
dest:
path: .source
# Images
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .images.osh.rabbitmq
dest:
path: .values.images.tags
# Endpoints
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.cinder_oslo_messaging
dest:
path: .values.endpoints.oslo_messaging
- src:
schema: pegleg/EndpointCatalogue/v1
name: osh_endpoints
path: .osh.cinder_rabbitmq_exporter
dest:
path: .values.endpoints.prometheus_rabbitmq_exporter
# Credentials
- src:
schema: pegleg/AccountCatalogue/v1
name: osh_service_accounts
path: .osh.cinder.oslo_messaging.admin
dest:
path: .values.endpoints.oslo_messaging.auth.user
# Secrets
- src:
schema: deckhand/Passphrase/v1
name: osh_cinder_rabbitmq_erlang_cookie
path: .
dest:
path: .values.endpoints.oslo_messaging.auth.erlang_cookie
- src:
schema: deckhand/Passphrase/v1
name: osh_cinder_oslo_messaging_admin_password
path: .
dest:
path: .values.endpoints.oslo_messaging.auth.user.password
data:
chart_name: cinder-rabbitmq
release: cinder-rabbitmq
namespace: openstack
wait:
timeout: 900
labels:
release_group: airship-cinder-rabbitmq
resources:
- type: statefulset
install:
no_hooks: false
upgrade:
no_hooks: false
pre:
delete:
- type: job
labels:
release_group: airship-cinder-rabbitmq
values:
labels:
server:
node_selector_key: openstack-control-plane
node_selector_value: enabled
prometheus_rabbitmq_exporter:
node_selector_key: openstack-control-plane
node_selector_value: enabled
monitoring:
prometheus:
enabled: true
dependencies:
- cinder-rabbitmq-htk
...
---
schema: armada/Chart/v1
metadata:
schema: metadata/Document/v1
name: cinder-rabbitmq-htk
layeringDefinition:
abstract: false
layer: global
storagePolicy: cleartext
substitutions:
- src:
schema: pegleg/SoftwareVersions/v1
name: software-versions
path: .charts.osh.rabbitmq-htk
dest:
path: .source
data:
chart_name: cinder-rabbitmq-htk
release: cinder-rabbitmq-htk
namespace: cinder-rabbitmq-htk
values: {}
dependencies: []
...