Tim Rozet 783975c72c Adds OpenDaylight composable service
Introduces environment files for deploying OpenDaylight in two ways:
 - ODL only managing L2 as an ML2 plugin
 - ODL managing L2 and L3 DVR, by replacing NeutronL3Agent

Two services are added.  One to install ODL and configure OVS on the
Controllers, and another service to only configure OVS on compute nodes.

Paritally-Implements: blueprint opendaylight-integration

Depends-On: I666dc0874f1d11a72a62d796f4f6d41f7aa87a3f

Change-Id: Ide69e20cbf2ec6151953cb23e51478b770aca17f
Signed-off-by: Tim Rozet <trozet@redhat.com>
2016-08-26 09:35:25 -04:00

355 lines
12 KiB
YAML

heat_template_version: 2015-04-30
description: 'All Nodes Config for Puppet'
parameters:
hosts:
type: comma_delimited_list
controller_ips:
type: comma_delimited_list
controller_names:
type: comma_delimited_list
rabbit_node_ips:
type: comma_delimited_list
mongo_node_ips:
type: comma_delimited_list
redis_node_ips:
type: comma_delimited_list
memcache_node_ips:
type: comma_delimited_list
mysql_node_ips:
type: comma_delimited_list
horizon_node_ips:
type: comma_delimited_list
heat_api_node_ips:
type: comma_delimited_list
swift_proxy_node_ips:
type: comma_delimited_list
ceilometer_api_node_ips:
type: comma_delimited_list
aodh_api_node_ips:
type: comma_delimited_list
nova_api_node_ips:
type: comma_delimited_list
nova_metadata_node_ips:
type: comma_delimited_list
glance_api_node_ips:
type: comma_delimited_list
glance_registry_node_ips:
type: comma_delimited_list
gnocchi_api_node_ips:
type: comma_delimited_list
cinder_api_node_ips:
type: comma_delimited_list
manila_api_node_ips:
type: comma_delimited_list
neutron_api_node_ips:
type: comma_delimited_list
keystone_public_api_node_ips:
type: comma_delimited_list
keystone_admin_api_node_ips:
type: comma_delimited_list
sahara_api_node_ips:
type: comma_delimited_list
ironic_api_node_ips:
type: comma_delimited_list
ceph_mon_node_ips:
type: comma_delimited_list
ceph_mon_node_names:
type: comma_delimited_list
opendaylight_api_node_ips:
type: comma_delimited_list
DeployIdentifier:
type: string
description: >
Setting this to a unique value will re-run any deployment tasks which
perform configuration on a Heat stack-update.
UpdateIdentifier:
type: string
description: >
Setting to a previously unused value during stack-update will trigger
package update on all nodes
StackAction:
type: string
description: >
Heat action on performed top-level stack.
constraints:
- allowed_values: ['CREATE', 'UPDATE']
resources:
allNodesConfigImpl:
type: OS::Heat::StructuredConfig
properties:
group: os-apply-config
config:
hosts:
list_join:
- "\n"
- {get_param: hosts}
hiera:
datafiles:
bootstrap_node:
mapped_data:
bootstrap_nodeid: {get_input: bootstrap_nodeid}
bootstrap_nodeid_ip: {get_input: bootstrap_nodeid_ip}
all_nodes:
mapped_data:
controller_node_ips:
list_join:
- ','
- {get_param: controller_ips}
controller_node_names:
list_join:
- ','
- {get_param: controller_names}
galera_node_names:
list_join:
- ','
- {get_param: controller_names}
rabbitmq_node_ips: &rabbit_nodes_array
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: rabbit_node_ips}
mongodb_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: mongo_node_ips}
redis_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: redis_node_ips}
memcached_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: memcache_node_ips}
memcached_node_ips_v6:
str_replace:
template: "['inet6:[SERVERS_LIST]']"
params:
SERVERS_LIST:
list_join:
- "]','inet6:["
- {get_param: memcache_node_ips}
mysql_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: mysql_node_ips}
horizon_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: horizon_node_ips}
heat_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: heat_api_node_ips}
swift_proxy_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: swift_proxy_node_ips}
ceilometer_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: ceilometer_api_node_ips}
aodh_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: aodh_api_node_ips}
gnocchi_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: gnocchi_api_node_ips}
nova_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: nova_api_node_ips}
nova_metadata_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: nova_metadata_node_ips}
glance_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: glance_api_node_ips}
glance_registry_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: glance_registry_node_ips}
cinder_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: cinder_api_node_ips}
manila_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: manila_api_node_ips}
neutron_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: neutron_api_node_ips}
# TODO: pass a `midonet_api_node_ips` var
midonet_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: neutron_api_node_ips}
keystone_public_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: keystone_public_api_node_ips}
keystone_admin_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: keystone_admin_api_node_ips}
sahara_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: sahara_api_node_ips}
ironic_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: ironic_api_node_ips}
opendaylight_api_node_ips:
str_replace:
template: "['SERVERS_LIST']"
params:
SERVERS_LIST:
list_join:
- "','"
- {get_param: opendaylight_api_node_ips}
tripleo::profile::base::ceph::ceph_mon_initial_members:
list_join:
- ','
- {get_param: ceph_mon_node_names}
tripleo::profile::base::ceph::ceph_mon_host:
list_join:
- ','
- {get_param: ceph_mon_node_ips}
tripleo::profile::base::ceph::ceph_mon_host_v6:
str_replace:
template: "'[IPS_LIST]'"
params:
IPS_LIST:
list_join:
- '],['
- {get_param: ceph_mon_node_ips}
# NOTE(gfidente): interpolation with %{} in the
# hieradata file can't be used as it returns string
ceilometer::rabbit_hosts: *rabbit_nodes_array
aodh::rabbit_hosts: *rabbit_nodes_array
cinder::rabbit_hosts: *rabbit_nodes_array
glance::notify::rabbitmq::rabbit_hosts: *rabbit_nodes_array
manila::rabbit_hosts: *rabbit_nodes_array
heat::rabbit_hosts: *rabbit_nodes_array
neutron::rabbit_hosts: *rabbit_nodes_array
nova::rabbit_hosts: *rabbit_nodes_array
keystone::rabbit_hosts: *rabbit_nodes_array
sahara::rabbit_hosts: *rabbit_nodes_array
ironic::rabbit_hosts: *rabbit_nodes_array
deploy_identifier: {get_param: DeployIdentifier}
update_identifier: {get_param: UpdateIdentifier}
stack_action: {get_param: StackAction}
outputs:
config_id:
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]}