aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSteven Hardy <shardy@redhat.com>2016-09-21 11:10:47 +0100
committerSteven Hardy <shardy@redhat.com>2016-09-21 12:42:31 +0100
commit1e723337029b8ea77f12dd2d75a4a426570f1c63 (patch)
tree15a8f80c13cb8efdc50fa8cadc0c0b93b3f448ec
parentb40f1dc8c1d58e08092391d01ecb73682ab0abb6 (diff)
Make defaults from roles_data.yaml more robust
The previous logic left out the default Count completely when it was zero, which breaks nested validation and it's likely similar problems would exist with the other optional defaults, so rework it so the defaulting happens in the jinja2 logic, and document the interfaces better in roles_data.yaml Change-Id: I7f2eb4a3a0b43c5d2cd0d001ed3c73f783c95c74 Closes-Bug: #1625760
-rw-r--r--overcloud.j2.yaml10
-rw-r--r--roles_data.yaml27
2 files changed, 24 insertions, 13 deletions
diff --git a/overcloud.j2.yaml b/overcloud.j2.yaml
index 187741ff..aad1af62 100644
--- a/overcloud.j2.yaml
+++ b/overcloud.j2.yaml
@@ -121,16 +121,12 @@ parameters:
resource_registry) which represent nested stacks
for each service that should get installed on the {{role.name}} role.
type: comma_delimited_list
- {% if role.ServicesDefault %}
- default: {{role.ServicesDefault}}
- {% endif %}
+ default: {{role.ServicesDefault|default([])}}
{{role.name}}Count:
description: Number of {{role.name}} nodes to deploy
type: number
- {% if role.CountDefault %}
- default: {{role.CountDefault}}
- {% endif %}
+ default: {{role.CountDefault|default(0)}}
{{role.name}}HostnameFormat:
type: string
@@ -140,6 +136,8 @@ parameters:
and %stackname% is replaced with the stack name e.g overcloud
{% if role.HostnameFormatDefault %}
default: "{{role.HostnameFormatDefault}}"
+ {% else %}
+ default: "%stackname%-{{role.name.lower()}}-%index%"
{% endif %}
{{role.name}}RemovalPolicies:
diff --git a/roles_data.yaml b/roles_data.yaml
index af1eba82..e052aeef 100644
--- a/roles_data.yaml
+++ b/roles_data.yaml
@@ -1,6 +1,25 @@
+# Specifies which roles (groups of nodes) will be deployed
+# Note this is used as an input to the various *.j2.yaml
+# jinja2 templates, so that they are converted into *.yaml
+# during the plan creation (via a mistral action/workflow).
+#
+# The format is a list, with the following format:
+#
+# * name: (string) mandatory, name of the role, must be unique
+#
+# CountDefault: (number) optional, default number of nodes, defaults to 0
+# sets the default for the {{role.name}}Count parameter in overcloud.yaml
+#
+# HostnameFormatDefault: (string) optional default format string for hostname
+# defaults to '%stackname%-{{role.name.lower()}}-%index%'
+# sets the default for {{role.name}}HostnameFormat parameter in overcloud.yaml
+#
+# ServicesDefault: (list) optional default list of services to be deployed
+# on the role, defaults to an empty list. Sets the default for the
+# {{role.name}}Services parameter in overcloud.yaml
+
- name: Controller
CountDefault: 1
- HostnameFormatDefault: '%stackname%-controller-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephMon
@@ -102,8 +121,6 @@
- OS::TripleO::Services::VipHosts
- name: BlockStorage
- CountDefault: 0
- HostnameFormatDefault: '%stackname%-blockstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CinderVolume
@@ -118,8 +135,6 @@
- OS::TripleO::Services::VipHosts
- name: ObjectStorage
- CountDefault: 0
- HostnameFormatDefault: '%stackname%-objectstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::Kernel
@@ -135,8 +150,6 @@
- OS::TripleO::Services::VipHosts
- name: CephStorage
- CountDefault: 0
- HostnameFormatDefault: '%stackname%-cephstorage-%index%'
ServicesDefault:
- OS::TripleO::Services::CACerts
- OS::TripleO::Services::CephOSD