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
(cherry picked from commit 862f52cce0)
This commit is contained in:
Thomas Herve 2018-12-07 15:45:10 +01:00 committed by Emilien Macchi
parent c4d820d669
commit b7167b072c
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
@ -556,6 +566,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
@ -596,6 +623,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

@ -287,6 +287,9 @@ parameters:
constraints:
- allowed_values: [delete, retain]
UserData:
type: string
{% if role.uses_deprecated_params|default(false) %}
parameter_groups:
- label: deprecated
@ -419,7 +422,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()
@ -443,33 +446,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: