Provide sample environment for composable roles
authorAlex Schultz <aschultz@redhat.com>
Tue, 25 Jul 2017 21:38:46 +0000 (15:38 -0600)
committerAlex Schultz <aschultz@redhat.com>
Thu, 17 Aug 2017 15:00:02 +0000 (09:00 -0600)
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

environments/composable-roles/monolithic-ha.yaml [new file with mode: 0644]
environments/composable-roles/monolithic-nonha.yaml [new file with mode: 0644]
environments/composable-roles/standalone.yaml [new file with mode: 0644]
sample-env-generator/composable-roles.yaml [new file with mode: 0644]

diff --git a/environments/composable-roles/monolithic-ha.yaml b/environments/composable-roles/monolithic-ha.yaml
new file mode 100644 (file)
index 0000000..a1dcd7b
--- /dev/null
@@ -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
+
diff --git a/environments/composable-roles/monolithic-nonha.yaml b/environments/composable-roles/monolithic-nonha.yaml
new file mode 100644 (file)
index 0000000..f49ddf2
--- /dev/null
@@ -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
+
diff --git a/environments/composable-roles/standalone.yaml b/environments/composable-roles/standalone.yaml
new file mode 100644 (file)
index 0000000..3305c9e
--- /dev/null
@@ -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
+
diff --git a/sample-env-generator/composable-roles.yaml b/sample-env-generator/composable-roles.yaml
new file mode 100644 (file)
index 0000000..91d6060
--- /dev/null
@@ -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
+