Map Ceilometer services to isolated networks
[apex-tripleo-heat-templates.git] / puppet / controller-puppet.yaml
index 2d174f7..0e5ab11 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2014-10-16
+heat_template_version: 2015-04-30
 
 description: >
   OpenStack controller node configured by Puppet.
@@ -226,10 +226,6 @@ parameters:
     type: string
     hidden: true
     default: ''  # Has to be here because of the ignored empty value bug
-  MysqlClustercheckPassword:
-    type: string
-    hidden: true
-    default: ''  # Has to be here because of the ignored empty value bug
   NeutronBridgeMappings:
     description: >
       The OVS logical->physical bridge mappings to use. See the Neutron
@@ -430,6 +426,11 @@ parameters:
     default: 'false'
     description: Set to true to enable package installation via Puppet
     type: boolean
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
 
 resources:
 
@@ -448,14 +449,54 @@ resources:
   NodeUserData:
     type: OS::TripleO::NodeUserData
 
+  ExternalPort:
+    type: OS::TripleO::Controller::Ports::ExternalPort
+    properties:
+      ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
+
+  InternalApiPort:
+    type: OS::TripleO::Controller::Ports::InternalApiPort
+    properties:
+      ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
+
+  StoragePort:
+    type: OS::TripleO::Controller::Ports::StoragePort
+    properties:
+      ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
+
+  StorageMgmtPort:
+    type: OS::TripleO::Controller::Ports::StorageMgmtPort
+    properties:
+      ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
+
+  TenantPort:
+    type: OS::TripleO::Controller::Ports::TenantPort
+    properties:
+      ControlPlaneIP: {get_attr: [Controller, networks, ctlplane, 0]}
+
+  NetIpMap:
+    type: OS::TripleO::Network::Ports::NetIpMap
+    properties:
+      ExternalIp: {get_attr: [ExternalPort, ip_address]}
+      InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
+      StorageIp: {get_attr: [StoragePort, ip_address]}
+      StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
+      TenantIp: {get_attr: [TenantPort, ip_address]}
+
   NetworkConfig:
     type: OS::TripleO::Controller::Net::SoftwareConfig
+    properties:
+      ExternalIpSubnet: {get_attr: [ExternalPort, ip_subnet]}
+      InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
+      StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+      StorageMgmtIpSubnet: {get_attr: [StorageMgmtPort, ip_subnet]}
+      TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
 
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
     properties:
       signal_transport: NO_SIGNAL
-      config: {get_attr: [NetworkConfig, config_id]}
+      config: {get_resource: NetworkConfig}
       server: {get_resource: Controller}
       input_values:
         bridge_name: br-ex
@@ -556,7 +597,6 @@ resources:
         enable_swift_storage: {get_param: EnableSwiftStorage}
         mysql_innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
         mysql_root_password: {get_param: MysqlRootPassword}
-        mysql_clustercheck_password: {get_param: MysqlClustercheckPassword}
         mysql_cluster_name:
           str_replace:
             template: tripleo-CLUSTER
@@ -616,11 +656,6 @@ resources:
               - {get_param: VirtualIP}
               - '/nova'
         pcsd_password: {get_param: PcsdPassword}
-        rabbit_hosts:
-          str_replace:
-            template: '["host"]'
-            params:
-              host: {get_param: VirtualIP}
         rabbit_username: {get_param: RabbitUserName}
         rabbit_password: {get_param: RabbitPassword}
         rabbit_cookie: {get_param: RabbitCookie}
@@ -702,7 +737,6 @@ resources:
                 cinder::api::auth_uri: {get_input: keystone_auth_uri}
                 cinder::api::identity_uri: {get_input: keystone_identity_uri}
                 cinder::api::bind_host: {get_input: controller_host}
-                cinder::rabbit_hosts: {get_input: rabbit_hosts}
                 cinder::rabbit_userid: {get_input: rabbit_username}
                 cinder::rabbit_password: {get_input: rabbit_password}
                 cinder::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
@@ -742,7 +776,6 @@ resources:
                 heat::engine::heat_metadata_server_url: {get_input: heat.metadata_server_url}
                 heat::engine::heat_waitcondition_server_url: {get_input: heat.waitcondition_server_url}
                 heat::engine::auth_encryption_key: {get_input: heat_auth_encryption_key}
-                heat::rabbit_hosts: {get_input: rabbit_hosts}
                 heat::rabbit_userid: {get_input: rabbit_username}
                 heat::rabbit_password: {get_input: rabbit_password}
                 heat::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
@@ -769,7 +802,7 @@ resources:
                 keystone::admin_bind_host: {get_input: controller_host}
                 keystone::debug: {get_input: debug}
                 # MongoDB
-                mongodb::server::bind_ip: {get_input: controller_host}
+                mongodb::server::bind_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, MongoDbNetwork]}]}
                 # MySQL
                 admin_password: {get_input: admin_password}
                 enable_galera: {get_input: enable_galera}
@@ -778,11 +811,9 @@ resources:
                 mysql_innodb_buffer_pool_size: {get_input: mysql_innodb_buffer_pool_size}
                 mysql::server::root_password: {get_input: mysql_root_password}
                 mysql_cluster_name: {get_input: mysql_cluster_name}
-                mysql_clustercheck_password: {get_input: mysql_clustercheck_password}
 
                 # Neutron
                 neutron::bind_host: {get_input: controller_host}
-                neutron::rabbit_hosts: {get_input: rabbit_hosts}
                 neutron::rabbit_password: {get_input: rabbit_password}
                 neutron::rabbit_user: {get_input: rabbit_user}
                 neutron::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
@@ -792,7 +823,7 @@ resources:
                 neutron::server::identity_uri: {get_input: keystone_identity_uri}
                 neutron::server::database_connection: {get_input: neutron_dsn}
                 neutron::agents::ml2::ovs::enable_tunneling: {get_input: neutron_enable_tunneling}
-                neutron::agents::ml2::ovs::local_ip: {get_input: controller_host}
+                neutron::agents::ml2::ovs::local_ip: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NeutronLocalIp]}]}
                 neutron_flat_networks: {get_input: neutron_flat_networks}
                 neutron::agents::metadata::shared_secret: {get_input: neutron_metadata_proxy_shared_secret}
                 neutron::agents::metadata::metadata_ip: {get_input: controller_virtual_ip}
@@ -818,13 +849,12 @@ resources:
                 ceilometer_backend: {get_input: ceilometer_backend}
                 ceilometer_mysql_conn_string: {get_input: ceilometer_dsn}
                 ceilometer::metering_secret: {get_input: ceilometer_metering_secret}
-                ceilometer::rabbit_hosts: {get_input: rabbit_hosts}
                 ceilometer::rabbit_userid: {get_input: rabbit_username}
                 ceilometer::rabbit_password: {get_input: rabbit_password}
                 ceilometer::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
                 ceilometer::rabbit_port: {get_input: rabbit_client_port}
                 ceilometer::debug: {get_input: debug}
-                ceilometer::api::host: {get_input: controller_host}
+                ceilometer::api::host: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, CeilometerApiNetwork]}]}
                 ceilometer::api::keystone_password: {get_input: ceilometer_password}
                 ceilometer::api::keystone_auth_uri: {get_input: keystone_auth_uri}
                 ceilometer::api::keystone_identity_uri: {get_input: keystone_identity_uri}
@@ -833,7 +863,6 @@ resources:
                 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
 
                 # Nova
-                nova::rabbit_hosts: {get_input: rabbit_hosts}
                 nova::rabbit_userid: {get_input: rabbit_username}
                 nova::rabbit_password: {get_input: rabbit_password}
                 nova::rabbit_use_ssl: {get_input: rabbit_client_use_ssl}
@@ -879,6 +908,21 @@ outputs:
   ip_address:
     description: IP address of the server in the ctlplane network
     value: {get_attr: [Controller, networks, ctlplane, 0]}
+  external_ip_address:
+    description: IP address of the server in the external network
+    value: {get_attr: [ExternalPort, ip_address]}
+  internal_api_ip_address:
+    description: IP address of the server in the internal_api network
+    value: {get_attr: [InternalApiPort, ip_address]}
+  storage_ip_address:
+    description: IP address of the server in the storage network
+    value: {get_attr: [StoragePort, ip_address]}
+  storage_mgmt_ip_address:
+    description: IP address of the server in the storage_mgmt network
+    value: {get_attr: [StorageMgmtPort, ip_address]}
+  tenant_ip_address:
+    description: IP address of the server in the tenant network
+    value: {get_attr: [TenantPort, ip_address]}
   hostname:
     description: Hostname of the server
     value: {get_attr: [Controller, name]}