Put user data in the main stack

We create user data per instance, but two are global for all, and the
last one per role, so we can move it up the stack.

Change-Id: I1330e54744adef9be159edd8f01aefa3db85a480
This commit is contained in:
Thomas Herve 2018-12-07 15:45:10 +01:00
parent fd04035471
commit 862f52cce0
2 changed files with 32 additions and 28 deletions

View File

@ -396,6 +396,16 @@ resources:
- {get_attr: [{{role.name}}, known_hosts_hostnames]}
{% endfor %}
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeAdminUserData:
type: OS::TripleO::NodeAdminUserData
# For optional operator additional userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
# Jinja loop for Role in roles_data.yaml
{% for role in roles %}
# Resources generated for {{role.name}} Role
@ -552,6 +562,23 @@ resources:
data:
- {get_attr: [{{role.name}}, hostname_map]}
# Combine the NodeAdminUserData and NodeUserData mime archives
{{role.name}}UserData:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: NodeAdminUserData}
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: {{role.name}}RoleUserData}
type: multipart
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
{{role.name}}RoleUserData:
type: OS::TripleO::{{role.name}}::NodeUserData
{{role.name}}:
type: OS::Heat::ResourceGroup
depends_on: Networks
@ -590,6 +617,7 @@ resources:
map_merge:
- {{role.RoleParametersDefault|default({})}}
- get_param: {{role.name}}Parameters
UserData: {get_resource: {{role.name}}UserData}
{% endfor %}
{% for role in roles %}

View File

@ -289,6 +289,9 @@ parameters:
constraints:
- allowed_values: [delete, retain]
UserData:
type: string
{% if role.uses_deprecated_params|default(false) %}
parameter_groups:
- label: deprecated
@ -424,7 +427,7 @@ resources:
- network: ctlplane
subnet: {get_param: {{role.name}}ControlPlaneSubnet}
user_data_format: SOFTWARE_CONFIG
user_data: {get_resource: UserData}
user_data: {get_param: UserData}
name:
yaql:
expression: $.data.hostname_map.get($.data.hostname, $.data.hostname).toLower()
@ -448,33 +451,6 @@ resources:
- {get_param: [DeploymentSwiftDataMap,
{get_param: Hostname}]}
# Combine the NodeAdminUserData and NodeUserData mime archives
UserData:
type: OS::Heat::MultipartMime
properties:
parts:
- config: {get_resource: NodeAdminUserData}
type: multipart
- config: {get_resource: NodeUserData}
type: multipart
- config: {get_resource: RoleUserData}
type: multipart
# Creates the "heat-admin" user if configured via the environment
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeAdminUserData:
type: OS::TripleO::NodeAdminUserData
# For optional operator additional userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
NodeUserData:
type: OS::TripleO::NodeUserData
# For optional operator role-specific userdata
# Should return a OS::Heat::MultipartMime reference via OS::stack_id
RoleUserData:
type: OS::TripleO::{{role.name}}::NodeUserData
{%- for network in networks %}
{%- if network.enabled|default(true) and network.name in role.networks|default([]) %}
{{network.name}}Port: