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::SoftwareDeployment: OS::Heat::StructuredDeployment
|
||||||
OS::TripleO::PostDeploySteps: puppet/post.yaml
|
OS::TripleO::PostDeploySteps: puppet/post.yaml
|
||||||
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
|
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
|
||||||
|
OS::TripleO::Hosts::SoftwareConfig: hosts-config.yaml
|
||||||
OS::TripleO::DefaultPasswords: default_passwords.yaml
|
OS::TripleO::DefaultPasswords: default_passwords.yaml
|
||||||
|
|
||||||
# Tasks (for internal TripleO usage)
|
# Tasks (for internal TripleO usage)
|
||||||
|
@ -214,8 +214,16 @@ resources:
|
|||||||
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
EndpointMap: {get_attr: [EndpointMap, endpoint_map]}
|
||||||
DefaultPasswords: {get_attr: [DefaultPasswords, passwords]}
|
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:
|
{{role.name}}AllNodesDeployment:
|
||||||
type: OS::Heat::StructuredDeployments
|
type: OS::Heat::StructuredDeployments
|
||||||
|
depends_on: {{role.name}}HostsDeployment
|
||||||
properties:
|
properties:
|
||||||
name: {{role.name}}AllNodesDeployment
|
name: {{role.name}}AllNodesDeployment
|
||||||
config: {get_attr: [allNodesConfig, config_id]}
|
config: {get_attr: [allNodesConfig, config_id]}
|
||||||
@ -303,6 +311,16 @@ resources:
|
|||||||
MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChain, role_data, monitoring_subscriptions]}
|
MonitoringSubscriptions: {get_attr: [{{role.name}}ServiceChain, role_data, monitoring_subscriptions]}
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
|
|
||||||
|
hostsConfig:
|
||||||
|
type: OS::TripleO::Hosts::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
hosts:
|
||||||
|
{% for role in roles %}
|
||||||
|
- list_join:
|
||||||
|
- '\n'
|
||||||
|
- {get_attr: [{{role.name}}, hosts_entry]}
|
||||||
|
{% endfor %}
|
||||||
|
|
||||||
allNodesConfig:
|
allNodesConfig:
|
||||||
type: OS::TripleO::AllNodes::SoftwareConfig
|
type: OS::TripleO::AllNodes::SoftwareConfig
|
||||||
properties:
|
properties:
|
||||||
@ -311,12 +329,6 @@ resources:
|
|||||||
cloud_name_storage: {get_param: CloudNameStorage}
|
cloud_name_storage: {get_param: CloudNameStorage}
|
||||||
cloud_name_storage_mgmt: {get_param: CloudNameStorageManagement}
|
cloud_name_storage_mgmt: {get_param: CloudNameStorageManagement}
|
||||||
cloud_name_ctlplane: {get_param: CloudNameCtlplane}
|
cloud_name_ctlplane: {get_param: CloudNameCtlplane}
|
||||||
hosts:
|
|
||||||
{% for role in roles %}
|
|
||||||
- list_join:
|
|
||||||
- '\n'
|
|
||||||
- {get_attr: [{{role.name}}, hosts_entry]}
|
|
||||||
{% endfor %}
|
|
||||||
enabled_services:
|
enabled_services:
|
||||||
list_join:
|
list_join:
|
||||||
- ','
|
- ','
|
||||||
@ -517,6 +529,10 @@ resources:
|
|||||||
# Post deployment steps for all roles
|
# Post deployment steps for all roles
|
||||||
AllNodesDeploySteps:
|
AllNodesDeploySteps:
|
||||||
type: OS::TripleO::PostDeploySteps
|
type: OS::TripleO::PostDeploySteps
|
||||||
|
{% for role in roles %}
|
||||||
|
depends_on:
|
||||||
|
- {{role.name}}AllNodesDeployment
|
||||||
|
{% endfor %}
|
||||||
properties:
|
properties:
|
||||||
servers:
|
servers:
|
||||||
{% for role in roles %}
|
{% for role in roles %}
|
||||||
@ -599,7 +615,7 @@ outputs:
|
|||||||
value:
|
value:
|
||||||
list_join:
|
list_join:
|
||||||
- "\n"
|
- "\n"
|
||||||
- - {get_attr: [allNodesConfig, hosts_entries]}
|
- - {get_attr: [hostsConfig, hosts_entries]}
|
||||||
-
|
-
|
||||||
- str_replace:
|
- str_replace:
|
||||||
template: IP HOST
|
template: IP HOST
|
||||||
|
@ -12,8 +12,6 @@ parameters:
|
|||||||
type: string
|
type: string
|
||||||
cloud_name_ctlplane:
|
cloud_name_ctlplane:
|
||||||
type: string
|
type: string
|
||||||
hosts:
|
|
||||||
type: comma_delimited_list
|
|
||||||
# FIXME(shardy) this can be comma_delimited_list when
|
# FIXME(shardy) this can be comma_delimited_list when
|
||||||
# https://bugs.launchpad.net/heat/+bug/1617019 is fixed
|
# https://bugs.launchpad.net/heat/+bug/1617019 is fixed
|
||||||
enabled_services:
|
enabled_services:
|
||||||
@ -75,10 +73,6 @@ resources:
|
|||||||
properties:
|
properties:
|
||||||
group: os-apply-config
|
group: os-apply-config
|
||||||
config:
|
config:
|
||||||
hosts:
|
|
||||||
list_join:
|
|
||||||
- "\n"
|
|
||||||
- {get_param: hosts}
|
|
||||||
hiera:
|
hiera:
|
||||||
datafiles:
|
datafiles:
|
||||||
bootstrap_node:
|
bootstrap_node:
|
||||||
@ -217,9 +211,3 @@ outputs:
|
|||||||
description: The ID of the allNodesConfigImpl resource.
|
description: The ID of the allNodesConfigImpl resource.
|
||||||
value:
|
value:
|
||||||
{get_resource: allNodesConfigImpl}
|
{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