Make puppet-applying *Post resources depend on hieradata
[apex-tripleo-heat-templates.git] / compute.yaml
index f7e434f..7fcdf42 100644 (file)
@@ -1,4 +1,4 @@
-heat_template_version: 2014-10-16
+heat_template_version: 2015-04-30
 
 description: >
   OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
 
 description: >
   OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
@@ -132,7 +132,7 @@ parameters:
       The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
       Neutron documentation for permitted values. Defaults to permitting any
       VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
       The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
       Neutron documentation for permitted values. Defaults to permitting any
       VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
-    type: string
+    type: comma_delimited_list
   NeutronPassword:
     default: unset
     description: The password for the neutron service account, used by neutron agents.
   NeutronPassword:
     default: unset
     description: The password for the neutron service account, used by neutron agents.
@@ -243,7 +243,17 @@ parameters:
     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
     type: string
     hidden: true
     description: The user password for SNMPd with readonly rights running on all Overcloud nodes
     type: string
     hidden: true
-
+  ServiceNetMap:
+    default: {}
+    description: Mapping of service_name -> network name. Typically set
+                 via parameter_defaults in the resource registry.
+    type: json
+  UpdateIdentifier:
+    default: ''
+    type: string
+    description: >
+      Setting to a previously unused value during stack-update will trigger
+      package update on all nodes
 
 resources:
 
 
 resources:
 
@@ -264,14 +274,33 @@ resources:
   NodeUserData:
     type: OS::TripleO::NodeUserData
 
   NodeUserData:
     type: OS::TripleO::NodeUserData
 
+  InternalApiPort:
+    type: OS::TripleO::Compute::Ports::InternalApiPort
+    properties:
+      ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
+  StoragePort:
+    type: OS::TripleO::Compute::Ports::StoragePort
+    properties:
+      ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
+  TenantPort:
+    type: OS::TripleO::Compute::Ports::TenantPort
+    properties:
+      ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+
   NetworkConfig:
     type: OS::TripleO::Compute::Net::SoftwareConfig
   NetworkConfig:
     type: OS::TripleO::Compute::Net::SoftwareConfig
+    properties:
+      InternalApiIpSubnet: {get_attr: [InternalApiPort, ip_subnet]}
+      StorageIpSubnet: {get_attr: [StoragePort, ip_subnet]}
+      TenantIpSubnet: {get_attr: [TenantPort, ip_subnet]}
 
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
     properties:
       signal_transport: NO_SIGNAL
 
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
     properties:
       signal_transport: NO_SIGNAL
-      config: {get_attr: [NetworkConfig, config_id]}
+      config: {get_resource: NetworkConfig}
       server: {get_resource: NovaCompute}
       input_values:
         bridge_name: {get_param: NeutronPhysicalBridge}
       server: {get_resource: NovaCompute}
       input_values:
         bridge_name: {get_param: NeutronPhysicalBridge}
@@ -419,6 +448,15 @@ outputs:
   ip_address:
     description: IP address of the server in the ctlplane network
     value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
   ip_address:
     description: IP address of the server in the ctlplane network
     value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+  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]}
+  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: [NovaCompute, name]}
   hostname:
     description: Hostname of the server
     value: {get_attr: [NovaCompute, name]}
@@ -427,7 +465,7 @@ outputs:
       Server's IP address and hostname in the /etc/hosts format
     value:
       str_replace:
       Server's IP address and hostname in the /etc/hosts format
     value:
       str_replace:
-        template: "IP HOST HOST.novalocal"
+        template: "IP HOST"
         params:
           IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
           HOST: {get_attr: [NovaCompute, name]}
         params:
           IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
           HOST: {get_attr: [NovaCompute, name]}
@@ -435,3 +473,6 @@ outputs:
     description: Heat resource handle for the Nova compute server
     value:
       {get_resource: NovaCompute}
     description: Heat resource handle for the Nova compute server
     value:
       {get_resource: NovaCompute}
+  config_identifier:
+    description: identifier which changes if the node configuration may need re-applying
+    value: "None - NO_SIGNAL"