Merge "Add tags to roles"
authorJenkins <jenkins@review.openstack.org>
Thu, 13 Apr 2017 17:29:59 +0000 (17:29 +0000)
committerGerrit Code Review <review@openstack.org>
Thu, 13 Apr 2017 17:29:59 +0000 (17:29 +0000)
docker/docker-steps.j2
overcloud.j2.yaml
releasenotes/notes/role-tags-16ac2e9e8fcab218.yaml [new file with mode: 0644]
roles_data.yaml
roles_data_undercloud.yaml

index 301d838..f0af8e2 100644 (file)
@@ -1,7 +1,14 @@
 # certain initialization steps (run in a container) will occur
-# on the first role listed in the roles file
-{% set primary_role_name = roles[0].name -%}
-
+# on the role marked as primary controller or the first role listed
+{%- set primary_role = [roles[0]] -%}
+{%- for role in roles -%}
+  {%- if 'primary' in role.tags and 'controller' in role.tags -%}
+    {%- set _ = primary_role.pop() -%}
+    {%- set _ = primary_role.append(role) -%}
+  {%- endif -%}
+{%- endfor -%}
+{%- set primary_role_name = primary_role[0].name -%}
+# primary role is: {{primary_role_name}}
 heat_template_version: ocata
 
 description: >
index a322a44..35cf7da 100644 (file)
@@ -1,4 +1,12 @@
-{% set primary_role_name = roles[0].name -%}
+{%- set primary_role = [roles[0]] -%}
+{%- for role in roles -%}
+  {%- if 'primary' in role.tags and 'controller' in role.tags -%}
+    {%- set _ = primary_role.pop() -%}
+    {%- set _ = primary_role.append(role) -%}
+  {%- endif -%}
+{%- endfor -%}
+{%- set primary_role_name = primary_role[0].name -%}
+# primary role is: {{primary_role_name}}
 heat_template_version: ocata
 
 description: >
diff --git a/releasenotes/notes/role-tags-16ac2e9e8fcab218.yaml b/releasenotes/notes/role-tags-16ac2e9e8fcab218.yaml
new file mode 100644 (file)
index 0000000..dadbfa4
--- /dev/null
@@ -0,0 +1,18 @@
+---
+features:
+  - |
+    Adds tags to roles that allow an operator to specify custom tags to use
+    when trying to find functionality available from a role. Currently a role
+    with both the 'primary' and 'controller' tag is consider to be the primary
+    role.  Historically the role named 'Controller' was the 'primary' role and
+    this primary designation is used to determine items like memcache ip
+    addresses. If no roles have the both the 'primary' and 'controller' tags,
+    the first role specified in the roles_data.yaml is used as the primary
+    role.
+upgrade:
+  - |
+    If using custom roles data, the logic was changed to leverage the first
+    role listed in the roles_data.yaml file to be the primary role. This can
+    be worked around by adding the 'primary' and 'controller' tags to the
+    custom controller role in your roles_data.yaml to ensure that the defined
+    custom controller role is still considered the primary role.
index eee6bf5..98061c0 100644 (file)
 # 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 # the 'primary' role goes first
+#
+# tags: (list) list of tags used by other parts of the deployment process to
+# find the role for a specific type of functionality. Currently a role
+# with both 'primary' and 'controller' is used as the primary role for the
+# deployment process. If no roles have have 'primary' and 'controller', the
+# first role in this file is used as the primary role.
+#
+- name: Controller
   CountDefault: 1
+  tags:
+    - primary
+    - controller
   ServicesDefault:
     - OS::TripleO::Services::CACerts
     - OS::TripleO::Services::CertmongerUser
index 8e83071..df2e196 100644 (file)
@@ -1,6 +1,9 @@
-- name: Undercloud # the 'primary' role goes first
+- name: Undercloud
   CountDefault: 1
   disable_constraints: True
+  tags:
+    - primary
+    - controller
   ServicesDefault:
     - OS::TripleO::Services::Ntp
     - OS::TripleO::Services::MySQL