deployment: remove Step7
[apex-tripleo-heat-templates.git] / puppet / compute.yaml
index deaf798..4c18067 100644 (file)
@@ -195,6 +195,9 @@ parameters:
     default: 'dvr_snat'
     description: Agent mode for the neutron-l3-agent on the controller hosts
     type: string
+  NodeIndex:
+    type: number
+    default: 0
   NovaApiHost:
     type: string
     default: ''  # Has to be here because of the ignored empty value bug
@@ -207,6 +210,9 @@ parameters:
       NovaCompute specific configuration to inject into the cluster. Same
       structure as ExtraConfig.
     type: json
+  NovaComputeIPs:
+    default: {}
+    type: json
   NovaComputeLibvirtType:
     type: string
     default: kvm
@@ -218,6 +224,10 @@ parameters:
     default: false
     description: Whether to enable or not the Rbd backend for Nova
     type: boolean
+  NovaIPv6:
+    default: false
+    description: Enable IPv6 features in Nova
+    type: boolean
   NovaPassword:
     description: The password for the nova service account, used by nova-api.
     type: string
@@ -241,7 +251,6 @@ parameters:
     type: string
     default: ''  # Has to be here because of the ignored empty value bug
   RabbitPassword:
-    default: guest
     description: The password for RabbitMQ
     type: string
     hidden: true
@@ -378,42 +387,60 @@ resources:
     type: OS::TripleO::Compute::Ports::ExternalPort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   InternalApiPort:
     type: OS::TripleO::Compute::Ports::InternalApiPort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StoragePort:
     type: OS::TripleO::Compute::Ports::StoragePort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StorageMgmtPort:
     type: OS::TripleO::Compute::Ports::StorageMgmtPort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   TenantPort:
     type: OS::TripleO::Compute::Ports::TenantPort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   ManagementPort:
     type: OS::TripleO::Compute::Ports::ManagementPort
     properties:
       ControlPlaneIP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
+      IPPool: {get_param: NovaComputeIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   NetIpMap:
     type: OS::TripleO::Network::Ports::NetIpMap
     properties:
       ControlPlaneIp: {get_attr: [NovaCompute, networks, ctlplane, 0]}
       ExternalIp: {get_attr: [ExternalPort, ip_address]}
+      ExternalIpUri: {get_attr: [ExternalPort, ip_address_uri]}
       InternalApiIp: {get_attr: [InternalApiPort, ip_address]}
+      InternalApiIpUri: {get_attr: [InternalApiPort, ip_address_uri]}
       StorageIp: {get_attr: [StoragePort, ip_address]}
+      StorageIpUri: {get_attr: [StoragePort, ip_address_uri]}
       StorageMgmtIp: {get_attr: [StorageMgmtPort, ip_address]}
+      StorageMgmtIpUri: {get_attr: [StorageMgmtPort, ip_address_uri]}
       TenantIp: {get_attr: [TenantPort, ip_address]}
+      TenantIpUri: {get_attr: [TenantPort, ip_address_uri]}
       ManagementIp: {get_attr: [ManagementPort, ip_address]}
+      ManagementIpUri: {get_attr: [ManagementPort, ip_address_uri]}
 
   NetworkConfig:
     type: OS::TripleO::Compute::Net::SoftwareConfig
@@ -459,6 +486,7 @@ resources:
             - nova_nuage_data  # Optionally provided by ComputeExtraConfigPre
             - midonet_data # Optionally provided by AllNodesExtraConfig
             - neutron_opencontrail_data  # Optionally provided by ComputeExtraConfigPre
+          merge_behavior: deeper
           datafiles:
             compute_extraconfig:
               mapped_data: {get_param: NovaComputeExtraConfig}
@@ -472,6 +500,7 @@ resources:
               raw_data: {get_file: hieradata/compute.yaml}
               mapped_data:
                 cinder_enable_nfs_backend: {get_input: cinder_enable_nfs_backend}
+                nova::use_ipv6: {get_input: nova_ipv6}
                 nova::debug: {get_input: debug}
                 nova::rabbit_userid: {get_input: rabbit_username}
                 nova::rabbit_password: {get_input: rabbit_password}
@@ -561,10 +590,18 @@ resources:
         nova_api_host: {get_param: NovaApiHost}
         nova_password: {get_param: NovaPassword}
         nova_enable_rbd_backend: {get_param: NovaEnableRbdBackend}
+        nova_ipv6: {get_param: NovaIPv6}
         cinder_enable_rbd_backend: {get_param: CinderEnableRbdBackend}
         nova_vnc_proxyclient_address: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, NovaVncProxyNetwork]}]}
         nova_vncproxy_protocol: {get_param: [EndpointMap, NovaVNCProxyPublic, protocol]}
-        nova_vncproxy_host: {get_param: [EndpointMap, NovaVNCProxyPublic, host]}
+        # Remove brackets that may come if the IP address is IPv6.
+        # For DNS names and IPv4, this will just get the NovaVNCProxyPublic value
+        nova_vncproxy_host:
+          str_replace:
+            template: {get_param: [EndpointMap, NovaVNCProxyPublic, host]}
+            params:
+              '[': ''
+              ']': ''
         nova_vncproxy_port: {get_param: [EndpointMap, NovaVNCProxyPublic, port]}
         nova_ovs_bridge: {get_param: NovaOVSBridge}
         nova_security_group_api: {get_param: NovaSecurityGroupAPI}
@@ -724,12 +761,12 @@ outputs:
       str_replace:
         template: |
           PRIMARYIP PRIMARYHOST.DOMAIN PRIMARYHOST
-          EXTERNALIP EXTERNALHOST
-          INTERNAL_APIIP INTERNAL_APIHOST
-          STORAGEIP STORAGEHOST
-          STORAGE_MGMTIP STORAGE_MGMTHOST
-          TENANTIP TENANTHOST
-          MANAGEMENTIP MANAGEMENTHOST
+          EXTERNALIP EXTERNALHOST.DOMAIN EXTERNALHOST
+          INTERNAL_APIIP INTERNAL_APIHOST.DOMAIN INTERNAL_APIHOST
+          STORAGEIP STORAGEHOST.DOMAIN STORAGEHOST
+          STORAGE_MGMTIP STORAGE_MGMTHOST.DOMAIN STORAGE_MGMTHOST
+          TENANTIP TENANTHOST.DOMAIN TENANTHOST
+          MANAGEMENTIP MANAGEMENTHOST.DOMAIN MANAGEMENTHOST
         params:
           PRIMARYIP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, ComputeHostnameResolveNetwork]}]}
           DOMAIN: {get_param: CloudDomain}
@@ -737,37 +774,37 @@ outputs:
           EXTERNALIP: {get_attr: [ExternalPort, ip_address]}
           EXTERNALHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - external
           INTERNAL_APIIP: {get_attr: [InternalApiPort, ip_address]}
           INTERNAL_APIHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - internalapi
           STORAGEIP: {get_attr: [StoragePort, ip_address]}
           STORAGEHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - storage
           STORAGE_MGMTIP: {get_attr: [StorageMgmtPort, ip_address]}
           STORAGE_MGMTHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - storagemgmt
           TENANTIP: {get_attr: [TenantPort, ip_address]}
           TENANTHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - tenant
           MANAGEMENTIP: {get_attr: [ManagementPort, ip_address]}
           MANAGEMENTHOST:
             list_join:
-            - '-'
+            - '.'
             - - {get_attr: [NovaCompute, name]}
               - management
   nova_server_resource: