Split out hosts config deployment
This patch moves the hosts configuration into its own deployment. It will continue to use os-apply-config as something that is required early on in the bootstrapping (it needs to be configured before puppet runs for example). The motivation here is so we can refactor all-nodes-config.yaml to use a new hiera hook that that avoids os-apply-config entirely. Change-Id: Ib3e4380f205358b27d22a1102b663cf300b1ed86 Partial-bug: #1596373
This commit is contained in:
parent
8f5ebd08c4
commit
9f8944111c
30
hosts-config.yaml
Normal file
30
hosts-config.yaml
Normal file
@ -0,0 +1,30 @@
|
||||
heat_template_version: 2016-10-14
|
||||
description: 'All Hosts Config'
|
||||
|
||||
parameters:
|
||||
hosts:
|
||||
type: comma_delimited_list
|
||||
|
||||
resources:
|
||||
|
||||
hostsConfigImpl:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
hosts:
|
||||
list_join:
|
||||
- "\n"
|
||||
- {get_param: hosts}
|
||||
|
||||
outputs:
|
||||
config_id:
|
||||
description: The ID of the hostsConfigImpl resource.
|
||||
value:
|
||||
{get_resource: hostsConfigImpl}
|
||||
hosts_entries:
|
||||
description: |
|
||||
The content that should be appended to your /etc/hosts if you want to get
|
||||
hostname-based access to the deployed nodes (useful for testing without
|
||||
setting up a DNS).
|
||||
value: {get_attr: [hostsConfigImpl, config, hosts]}
|
@ -3,6 +3,7 @@ resource_registry:
|
||||
OS::TripleO::SoftwareDeployment: OS::Heat::StructuredDeployment
|
||||
OS::TripleO::PostDeploySteps: puppet/post.yaml
|
||||
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
|
||||
OS::TripleO::Hosts::SoftwareConfig: hosts-config.yaml
|
||||
OS::TripleO::DefaultPasswords: default_passwords.yaml
|
||||
|
||||
# Tasks (for internal TripleO usage)
|
||||
|
@ -214,8 +214,16 @@ resources:
|
||||
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
||||
DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
|
||||
|
||||
{{role.name}}HostsDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
name: {{role.name}}HostsDeployment
|
||||
config: {get_attr: [hostsConfig, config_id]}
|
||||
servers: {get_attr: [{{role.name}}, attributes, nova_server_resource]}
|
||||
|
||||
{{role.name}}AllNodesDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
depends_on: {{role.name}}HostsDeployment
|
||||
properties:
|
||||
name: {{role.name}}AllNodesDeployment
|
||||
config: {get_attr: [allNodesConfig, config_id]}
|
||||
@ -303,6 +311,16 @@ resources:
|
||||
MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChain, role_data, monitoring_subscriptions]}
|
||||
{% endfor %}
|
||||
|
||||
hostsConfig:
|
||||
type: OS::TripleO::Hosts::SoftwareConfig
|
||||
properties:
|
||||
hosts:
|
||||
{% for role in roles %}
|
||||
- list_join:
|
||||
- '\n'
|
||||
- {get_attr: [{{role.name}}, hosts_entry]}
|
||||
{% endfor %}
|
||||
|
||||
allNodesConfig:
|
||||
type: OS::TripleO::AllNodes::SoftwareConfig
|
||||
properties:
|
||||
@ -311,12 +329,6 @@ resources:
|
||||
cloud_name_storage: {get_param: CloudNameStorage}
|
||||
cloud_name_storage_mgmt: {get_param: CloudNameStorageManagement}
|
||||
cloud_name_ctlplane: {get_param: CloudNameCtlplane}
|
||||
hosts:
|
||||
{% for role in roles %}
|
||||
- list_join:
|
||||
- '\n'
|
||||
- {get_attr: [{{role.name}}, hosts_entry]}
|
||||
{% endfor %}
|
||||
enabled_services:
|
||||
list_join:
|
||||
- ','
|
||||
@ -517,6 +529,10 @@ resources:
|
||||
# Post deployment steps for all roles
|
||||
AllNodesDeploySteps:
|
||||
type: OS::TripleO::PostDeploySteps
|
||||
{% for role in roles %}
|
||||
depends_on:
|
||||
- {{role.name}}AllNodesDeployment
|
||||
{% endfor %}
|
||||
properties:
|
||||
servers:
|
||||
{% for role in roles %}
|
||||
@ -599,7 +615,7 @@ outputs:
|
||||
value:
|
||||
list_join:
|
||||
- "\n"
|
||||
- - {get_attr: [allNodesConfig, hosts_entries]}
|
||||
- - {get_attr: [hostsConfig, hosts_entries]}
|
||||
-
|
||||
- str_replace:
|
||||
template: IP HOST
|
||||
|
@ -12,8 +12,6 @@ parameters:
|
||||
type: string
|
||||
cloud_name_ctlplane:
|
||||
type: string
|
||||
hosts:
|
||||
type: comma_delimited_list
|
||||
# FIXME(shardy) this can be comma_delimited_list when
|
||||
# https://bugs.launchpad.net/heat/+bug/1617019 is fixed
|
||||
enabled_services:
|
||||
@ -75,10 +73,6 @@ resources:
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
hosts:
|
||||
list_join:
|
||||
- "\n"
|
||||
- {get_param: hosts}
|
||||
hiera:
|
||||
datafiles:
|
||||
bootstrap_node:
|
||||
@ -217,9 +211,3 @@ outputs:
|
||||
description: The ID of the allNodesConfigImpl resource.
|
||||
value:
|
||||
{get_resource: allNodesConfigImpl}
|
||||
hosts_entries:
|
||||
description: |
|
||||
The content that should be appended to your /etc/hosts if you want to get
|
||||
hostname-based access to the deployed nodes (useful for testing without
|
||||
setting up a DNS).
|
||||
value: {get_attr: [allNodesConfigImpl, config, hosts]}
|
||||
|
Loading…
Reference in New Issue
Block a user