Provide sample environment for composable roles

Creating a sample environment generator configuration to generate basic
environment files for the following architectures:

 * Monolithic HA (3 Controller, 3 Compute, 1 Ceph)
 * Monolithic Non-HA (1 Controller, 1 Compute, 1 Ceph)
 * Standalone (3 Controller, 3 Database, 3 Messaging, 2 Networker,
   1 Compute, 1 Ceph)

Change-Id: Id0b967d3b2356f38a51e1028b2dccc122d59888c
Related-Blueprint: example-custom-role-environments
This commit is contained in:
Alex Schultz 2017-07-25 15:38:46 -06:00
parent 81425853a2
commit 10bb3d5635
4 changed files with 376 additions and 0 deletions

View File

@ -0,0 +1,59 @@
# *******************************************************************
# This file was created automatically by the sample environment
# generator. Developers should use `tox -e genconfig` to update it.
# Users are recommended to make changes to a copy of the file instead
# of the original, if any customizations are needed.
# *******************************************************************
# title: Monolithic Controller HA deployment
# description: |
# A Heat environment that can be used to deploy controller and compute
# services in an HA configuration with SSL everywhere and network
# isolation.
# This should be used with a roles_data.yaml containing the Controller,
# Compute and CephStorage roles.
# openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute CephStorage
parameter_defaults:
# Number of CephStorage nodes to deploy
# Type: number
CephStorageCount: 1
# Format for CephStorage node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
CephStorageHostnameFormat: '%stackname%-cephstorage-%index%'
# Number of Compute nodes to deploy
# Type: number
ComputeCount: 3
# Format for Compute node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ComputeHostnameFormat: '%stackname%-novacompute-%index%'
# Number of Controller nodes to deploy
# Type: number
ControllerCount: 3
# Format for Controller node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ControllerHostnameFormat: '%stackname%-controller-%index%'
# DNS servers to use for the Overcloud
# Type: comma_delimited_list
DnsServers: ['8.8.8.8', '8,8.4.4']
# NTP servers list. Defaulted to pool.ntp.org in order to have a sane default for Pacemaker deployments when not configuring this parameter by default.
# Type: comma_delimited_list
NtpServer: ['pool.ntp.org']
# Name of the flavor for Ceph nodes
# Type: string
OvercloudCephStorageFlavor: ceph
# Name of the flavor for Compute nodes
# Type: string
OvercloudComputeFlavor: compute
# Name of the flavor for Controller nodes
# Type: string
OvercloudControllerFlavor: control

View File

@ -0,0 +1,59 @@
# *******************************************************************
# This file was created automatically by the sample environment
# generator. Developers should use `tox -e genconfig` to update it.
# Users are recommended to make changes to a copy of the file instead
# of the original, if any customizations are needed.
# *******************************************************************
# title: Monolithic Controller Non-HA deployment
# description: |
# A Heat environment that can be used to deploy controller and compute
# services in an Non-HA configuration with SSL undercloud only and a
# flat network.
# This should be used with a roles_data.yaml containing the Controller,
# Compute and CephStorage roles.
# openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute CephStorage
parameter_defaults:
# Number of CephStorage nodes to deploy
# Type: number
CephStorageCount: 1
# Format for CephStorage node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
CephStorageHostnameFormat: '%stackname%-cephstorage-%index%'
# Number of Compute nodes to deploy
# Type: number
ComputeCount: 1
# Format for Compute node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ComputeHostnameFormat: '%stackname%-novacompute-%index%'
# Number of Controller nodes to deploy
# Type: number
ControllerCount: 1
# Format for Controller node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ControllerHostnameFormat: '%stackname%-controller-%index%'
# DNS servers to use for the Overcloud
# Type: comma_delimited_list
DnsServers: ['8.8.8.8', '8,8.4.4']
# NTP servers list. Defaulted to pool.ntp.org in order to have a sane default for Pacemaker deployments when not configuring this parameter by default.
# Type: comma_delimited_list
NtpServer: ['pool.ntp.org']
# Name of the flavor for Ceph nodes
# Type: string
OvercloudCephStorageFlavor: ceph
# Name of the flavor for Compute nodes
# Type: string
OvercloudComputeFlavor: compute
# Name of the flavor for Controller nodes
# Type: string
OvercloudControllerFlavor: control

View File

@ -0,0 +1,84 @@
# *******************************************************************
# This file was created automatically by the sample environment
# generator. Developers should use `tox -e genconfig` to update it.
# Users are recommended to make changes to a copy of the file instead
# of the original, if any customizations are needed.
# *******************************************************************
# title: Controller HA deployment with standalone Database, Messaging and Networker nodes.
# description: |
# A Heat environment that can be used to deploy controller, database,
# messaging, networker and compute services in an HA configuration with SSL
# everywhere and network isolation.
# This should be used with a roles_data.yaml containing the
# ControllerOpenstack, Database, Messaging, Networker, Compute and
# CephStorage roles.
# openstack overcloud roles generate -o ~/roles_data.yaml ControllerOpenstack Database Messaging Networker Compute CephStorage
parameter_defaults:
# Number of CephStorage nodes to deploy
# Type: number
CephStorageCount: 1
# Format for CephStorage node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
CephStorageHostnameFormat: '%stackname%-cephstorage-%index%'
# Number of Compute nodes to deploy
# Type: number
ComputeCount: 1
# Format for Compute node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ComputeHostnameFormat: '%stackname%-novacompute-%index%'
# Number of Controller nodes to deploy
# Type: number
ControllerCount: 3
# Format for Controller node hostnames Note %index% is translated into the index of the node, e.g 0/1/2 etc and %stackname% is replaced with the stack name e.g overcloud
# Type: string
ControllerHostnameFormat: '%stackname%-controller-%index%'
# Number of Database nodes
# Type: number
DatabaseCount: 3
# DNS servers to use for the Overcloud
# Type: comma_delimited_list
DnsServers: ['8.8.8.8', '8,8.4.4']
# Number of Messaging nodes
# Type: number
MessagingCount: 3
# Number of Networker nodes
# Type: number
NetworkerCount: 2
# NTP servers list. Defaulted to pool.ntp.org in order to have a sane default for Pacemaker deployments when not configuring this parameter by default.
# Type: comma_delimited_list
NtpServer: ['pool.ntp.org']
# Name of the flavor for Ceph nodes
# Type: string
OvercloudCephStorageFlavor: ceph
# Name of the flavor for Compute nodes
# Type: string
OvercloudComputeFlavor: compute
# Name of the flavor for Controller nodes
# Type: string
OvercloudControllerFlavor: control
# Name of the flavor for Database nodes
# Type: string
OvercloudDatabaseFlavor: db
# Name of the flavor for Messaging nodes
# Type: string
OvercloudMessagingFlavor: messaging
# Name of the flavor for Networker nodes
# Type: string
OvercloudNetworkerFlavor: networker

View File

@ -0,0 +1,174 @@
#
# This environment generator is used to generate some sample composable role
# environment files.
#
environments:
-
name: composable-roles/monolithic-nonha
title: Monolithic Controller Non-HA deployment
description: |
A Heat environment that can be used to deploy controller and compute
services in an Non-HA configuration with SSL undercloud only and a
flat network.
This should be used with a roles_data.yaml containing the Controller,
Compute and CephStorage roles.
openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute CephStorage
files:
overcloud.yaml:
parameters:
- ControllerHostnameFormat
- ComputeHostnameFormat
- CephStorageHostnameFormat
- ControllerCount
- ComputeCount
- CephStorageCount
puppet/services/time/ntp.yaml:
parameters:
- NtpServer
sample-env-generator/composable-roles.yaml:
parameters:
- DnsServers
- OvercloudControllerFlavor
- OvercloudComputeFlavor
- OvercloudCephStorageFlavor
sample_values:
ControllerCount: 1
OvercloudControllerFlavor: control
ComputeCount: 1
OvercloudComputeFlavor: compute
CephStorageCount: 1
OvercloudCephStorageFlavor: ceph
-
name: composable-roles/monolithic-ha
title: Monolithic Controller HA deployment
description: |
A Heat environment that can be used to deploy controller and compute
services in an HA configuration with SSL everywhere and network
isolation.
This should be used with a roles_data.yaml containing the Controller,
Compute and CephStorage roles.
openstack overcloud roles generate -o ~/roles_data.yaml Controller Compute CephStorage
files:
overcloud.yaml:
parameters:
- ControllerHostnameFormat
- ComputeHostnameFormat
- CephStorageHostnameFormat
- ControllerCount
- ComputeCount
- CephStorageCount
puppet/services/time/ntp.yaml:
parameters:
- NtpServer
sample-env-generator/composable-roles.yaml:
parameters:
- DnsServers
- OvercloudControllerFlavor
- OvercloudComputeFlavor
- OvercloudCephStorageFlavor
sample_values:
ControllerCount: 3
OvercloudControllerFlavor: control
ComputeCount: 3
OvercloudComputeFlavor: compute
CephStorageCount: 1
OvercloudCephStorageFlavor: ceph
-
name: composable-roles/standalone
title: Controller HA deployment with standalone Database, Messaging and Networker nodes.
description: |
A Heat environment that can be used to deploy controller, database,
messaging, networker and compute services in an HA configuration with SSL
everywhere and network isolation.
This should be used with a roles_data.yaml containing the
ControllerOpenstack, Database, Messaging, Networker, Compute and
CephStorage roles.
openstack overcloud roles generate -o ~/roles_data.yaml ControllerOpenstack Database Messaging Networker Compute CephStorage
files:
overcloud.yaml:
parameters:
- ControllerHostnameFormat
- ComputeHostnameFormat
- CephStorageHostnameFormat
- ControllerCount
- ComputeCount
- CephStorageCount
puppet/services/time/ntp.yaml:
parameters:
- NtpServer
sample-env-generator/composable-roles.yaml:
parameters:
- DnsServers
- DatabaseCount
- MessagingCount
- NetworkerCount
- OvercloudControllerFlavor
- OvercloudComputeFlavor
- OvercloudCephStorageFlavor
- OvercloudDatabaseFlavor
- OvercloudMessagingFlavor
- OvercloudNetworkerFlavor
sample_values:
ControllerCount: 3
OvercloudControllerFlavor: control
ComputeCount: 1
OvercloudComputeFlavor: compute
CephStorageCount: 1
OvercloudCephStorageFlavor: ceph
DatabaseCount: 3
OvercloudDatabaseFlavor: db
MessagingCount: 3
OvercloudMessagingFlavor: messaging
NetworkerCount: 2
OvercloudNetworkerFlavor: networker
# NOTE(aschultz): So because these are dynamic based on the roles used, we
# do not currently define these in any heat files. So we're defining them here
# so that the sample env generator can still provide these configuration items
# in the generated config files.
parameters:
DnsServers:
default: ['8.8.8.8', '8,8.4.4']
description: DNS servers to use for the Overcloud
type: comma_delimited_list
# Dynamic vars based on roles
DatabaseCount:
default: 0
description: Number of Database nodes
type: number
MessagingCount:
default: 0
description: Number of Messaging nodes
type: number
NetworkerCount:
default: 0
description: Number of Networker nodes
type: number
OvercloudControllerFlavor:
default: control
description: Name of the flavor for Controller nodes
type: string
OvercloudComputeFlavor:
default: compute
description: Name of the flavor for Compute nodes
type: string
OvercloudCephStorageFlavor:
default: compute
description: Name of the flavor for Ceph nodes
type: string
OvercloudDatabaseFlavor:
default: database
description: Name of the flavor for Database nodes
type: string
OvercloudMessagingFlavor:
default: messaging
description: Name of the flavor for Messaging nodes
type: string
OvercloudNetworkerFlavor:
default: networker
description: Name of the flavor for Networker nodes
type: string