Split out allNodesConfig SoftwareConfig
This patch splits out the allNodesConfig config such that alternate implementation (puppet for example) can implement their own SoftwareConfig's via a nested stack. This is controlled by the standard overcloud heat environment. For os-apply-config deployments the implementation should work the same as before. For puppet deployments the implementation uses hiera metadata to configure rabbit_nodes. The puppet deployment doesn't support hosts, or freeform sysctl metadata yet so those are the same for now as well. Change-Id: I34ae30b1f37aca8b39586f7e350511462d66f694
This commit is contained in:
parent
f98f2bdf4d
commit
b639d3c7c2
57
all-nodes-config.yaml
Normal file
57
all-nodes-config.yaml
Normal file
@ -0,0 +1,57 @@
|
|||||||
|
heat_template_version: 2014-10-16
|
||||||
|
description: 'All Nodes Config'
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
compute_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
controller_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
block_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
object_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
ceph_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
controller_names:
|
||||||
|
type: comma_delimited_list
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
allNodesConfigImpl:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
config:
|
||||||
|
completion-signal: {get_input: deploy_signal_id}
|
||||||
|
hosts:
|
||||||
|
list_join:
|
||||||
|
- "\n"
|
||||||
|
- - list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: compute_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: controller_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: block_storage_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: object_storage_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: ceph_storage_hosts}
|
||||||
|
rabbit:
|
||||||
|
nodes:
|
||||||
|
list_join:
|
||||||
|
- ','
|
||||||
|
- {get_param: controller_names}
|
||||||
|
sysctl:
|
||||||
|
net.ipv4.tcp_keepalive_time: 5
|
||||||
|
net.ipv4.tcp_keepalive_probes: 5
|
||||||
|
net.ipv4.tcp_keepalive_intvl: 1
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
config_id:
|
||||||
|
description: The ID of the allNodesConfigImpl resource.
|
||||||
|
value:
|
||||||
|
{get_resource: allNodesConfigImpl}
|
@ -8,6 +8,7 @@ resource_registry:
|
|||||||
OS::TripleO::CephStorage: puppet/ceph-storage-puppet.yaml
|
OS::TripleO::CephStorage: puppet/ceph-storage-puppet.yaml
|
||||||
OS::TripleO::ControllerPostDeployment: puppet/controller-post-puppet.yaml
|
OS::TripleO::ControllerPostDeployment: puppet/controller-post-puppet.yaml
|
||||||
OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: puppet/swift-devices-and-proxy-config.yaml
|
OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: puppet/swift-devices-and-proxy-config.yaml
|
||||||
|
OS::TripleO::AllNodes::SoftwareConfig: puppet/all-nodes-config.yaml
|
||||||
|
|
||||||
# NOTE(dprince): requires a new release of python-heatclient
|
# NOTE(dprince): requires a new release of python-heatclient
|
||||||
#default_parameters:
|
#default_parameters:
|
||||||
|
@ -8,3 +8,4 @@ resource_registry:
|
|||||||
OS::TripleO::CephStorage: ceph-storage.yaml
|
OS::TripleO::CephStorage: ceph-storage.yaml
|
||||||
OS::TripleO::ControllerPostDeployment: controller-post.yaml
|
OS::TripleO::ControllerPostDeployment: controller-post.yaml
|
||||||
OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: swift-devices-and-proxy-config.yaml
|
OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig: swift-devices-and-proxy-config.yaml
|
||||||
|
OS::TripleO::AllNodes::SoftwareConfig: all-nodes-config.yaml
|
||||||
|
@ -669,37 +669,14 @@ resources:
|
|||||||
CephMonitors: {get_attr: [Controller, corosync_node]}
|
CephMonitors: {get_attr: [Controller, corosync_node]}
|
||||||
|
|
||||||
allNodesConfig:
|
allNodesConfig:
|
||||||
type: OS::Heat::StructuredConfig
|
type: OS::TripleO::AllNodes::SoftwareConfig
|
||||||
properties:
|
properties:
|
||||||
config:
|
compute_hosts: {get_attr: [Compute, hosts_entry]}
|
||||||
completion-signal: {get_input: deploy_signal_id}
|
controller_hosts: {get_attr: [Controller, hosts_entry]}
|
||||||
hosts:
|
block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
|
||||||
list_join:
|
object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
|
||||||
- "\n"
|
ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
|
||||||
- - list_join:
|
controller_names: {get_attr: [Controller, hostname]}
|
||||||
- "\n"
|
|
||||||
- {get_attr: [Compute, hosts_entry]}
|
|
||||||
- list_join:
|
|
||||||
- "\n"
|
|
||||||
- {get_attr: [Controller, hosts_entry]}
|
|
||||||
- list_join:
|
|
||||||
- "\n"
|
|
||||||
- {get_attr: [BlockStorage, hosts_entry]}
|
|
||||||
- list_join:
|
|
||||||
- "\n"
|
|
||||||
- {get_attr: [ObjectStorage, hosts_entry]}
|
|
||||||
- list_join:
|
|
||||||
- "\n"
|
|
||||||
- {get_attr: [CephStorage, hosts_entry]}
|
|
||||||
rabbit:
|
|
||||||
nodes:
|
|
||||||
list_join:
|
|
||||||
- ','
|
|
||||||
- {get_attr: [Controller, hostname]}
|
|
||||||
sysctl:
|
|
||||||
net.ipv4.tcp_keepalive_time: 5
|
|
||||||
net.ipv4.tcp_keepalive_probes: 5
|
|
||||||
net.ipv4.tcp_keepalive_intvl: 1
|
|
||||||
|
|
||||||
MysqlRootPassword:
|
MysqlRootPassword:
|
||||||
type: OS::Heat::RandomString
|
type: OS::Heat::RandomString
|
||||||
@ -794,13 +771,13 @@ resources:
|
|||||||
ControllerAllNodesDeployment:
|
ControllerAllNodesDeployment:
|
||||||
type: OS::Heat::StructuredDeployments
|
type: OS::Heat::StructuredDeployments
|
||||||
properties:
|
properties:
|
||||||
config: {get_resource: allNodesConfig}
|
config: {get_attr: [allNodesConfig, config_id]}
|
||||||
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
||||||
|
|
||||||
ComputeAllNodesDeployment:
|
ComputeAllNodesDeployment:
|
||||||
type: OS::Heat::StructuredDeployments
|
type: OS::Heat::StructuredDeployments
|
||||||
properties:
|
properties:
|
||||||
config: {get_resource: allNodesConfig}
|
config: {get_attr: [allNodesConfig, config_id]}
|
||||||
servers: {get_attr: [Compute, attributes, nova_server_resource]}
|
servers: {get_attr: [Compute, attributes, nova_server_resource]}
|
||||||
|
|
||||||
# Nested stack deployment runs after all other controller deployments
|
# Nested stack deployment runs after all other controller deployments
|
||||||
|
60
puppet/all-nodes-config.yaml
Normal file
60
puppet/all-nodes-config.yaml
Normal file
@ -0,0 +1,60 @@
|
|||||||
|
heat_template_version: 2014-10-16
|
||||||
|
description: 'All Nodes Config for Puppet'
|
||||||
|
|
||||||
|
parameters:
|
||||||
|
compute_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
controller_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
block_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
object_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
ceph_storage_hosts:
|
||||||
|
type: comma_delimited_list
|
||||||
|
controller_names:
|
||||||
|
type: comma_delimited_list
|
||||||
|
|
||||||
|
resources:
|
||||||
|
|
||||||
|
allNodesConfigImpl:
|
||||||
|
type: OS::Heat::StructuredConfig
|
||||||
|
properties:
|
||||||
|
config:
|
||||||
|
completion-signal: {get_input: deploy_signal_id}
|
||||||
|
hosts:
|
||||||
|
list_join:
|
||||||
|
- "\n"
|
||||||
|
- - list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: compute_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: controller_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: block_storage_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: object_storage_hosts}
|
||||||
|
- list_join:
|
||||||
|
- "\n"
|
||||||
|
- {get_param: ceph_storage_hosts}
|
||||||
|
sysctl:
|
||||||
|
net.ipv4.tcp_keepalive_time: 5
|
||||||
|
net.ipv4.tcp_keepalive_probes: 5
|
||||||
|
net.ipv4.tcp_keepalive_intvl: 1
|
||||||
|
hiera:
|
||||||
|
datafiles:
|
||||||
|
rabbit:
|
||||||
|
mapped_data:
|
||||||
|
rabbit_nodes:
|
||||||
|
list_join:
|
||||||
|
- ','
|
||||||
|
- {get_param: controller_names}
|
||||||
|
|
||||||
|
outputs:
|
||||||
|
config_id:
|
||||||
|
description: The ID of the allNodesConfigImpl resource.
|
||||||
|
value:
|
||||||
|
{get_resource: allNodesConfigImpl}
|
@ -555,6 +555,7 @@ resources:
|
|||||||
- controller
|
- controller
|
||||||
- object
|
- object
|
||||||
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
|
- swift_devices_and_proxy # provided by SwiftDevicesAndProxyConfig
|
||||||
|
- rabbit # provided by allNodesConfig
|
||||||
- common
|
- common
|
||||||
datafiles:
|
datafiles:
|
||||||
common:
|
common:
|
||||||
|
Loading…
Reference in New Issue
Block a user