Ping retry
[apex-tripleo-heat-templates.git] / puppet / swift-storage.yaml
index e77a25f..8a4ea21 100644 (file)
@@ -30,6 +30,10 @@ parameters:
     default: 10
     description: Partition Power to use when building Swift rings
     type: number
+  RingBuild:
+    default: true
+    description: Whether to manage Swift rings or not
+    type: boolean
   Replicas:
     type: number
     default: 3
@@ -83,6 +87,9 @@ parameters:
     description: |
       Role specific additional hiera configuration to inject into the cluster.
     type: json
+  SwiftStorageIPs:
+    default: {}
+    type: json
   NetworkDeploymentActions:
     type: comma_delimited_list
     description: >
@@ -111,6 +118,9 @@ parameters:
     type: json
     description: Optional scheduler hints to pass to nova
     default: {}
+  NodeIndex:
+    type: number
+    default: 0
 
 resources:
 
@@ -156,31 +166,43 @@ resources:
     type: OS::TripleO::SwiftStorage::Ports::ExternalPort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   InternalApiPort:
     type: OS::TripleO::SwiftStorage::Ports::InternalApiPort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StoragePort:
     type: OS::TripleO::SwiftStorage::Ports::StoragePort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   StorageMgmtPort:
     type: OS::TripleO::SwiftStorage::Ports::StorageMgmtPort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   TenantPort:
     type: OS::TripleO::SwiftStorage::Ports::TenantPort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   ManagementPort:
     type: OS::TripleO::SwiftStorage::Ports::ManagementPort
     properties:
       ControlPlaneIP: {get_attr: [SwiftStorage, networks, ctlplane, 0]}
+      IPPool: {get_param: SwiftStorageIPs}
+      NodeIndex: {get_param: NodeIndex}
 
   NetworkConfig:
     type: OS::TripleO::ObjectStorage::Net::SoftwareConfig
@@ -198,11 +220,17 @@ resources:
     properties:
       ControlPlaneIp: {get_attr: [SwiftStorage, 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]}
 
   NetworkDeployment:
     type: OS::TripleO::SoftwareDeployment
@@ -239,17 +267,14 @@ resources:
               raw_data: {get_file: hieradata/object.yaml}
               mapped_data: # data supplied directly to this deployment configuration, etc
                 swift::swift_hash_suffix: { get_input: swift_hash_suffix }
+                tripleo::ringbuilder::build_ring: { get_input: swift_ring_build }
                 tripleo::ringbuilder::part_power: { get_input: swift_part_power }
                 tripleo::ringbuilder::replicas: {get_input: swift_replicas }
-                # Swift
                 swift::storage::all::storage_local_net_ip: {get_input: swift_management_network}
                 swift_mount_check: {get_input: swift_mount_check }
                 tripleo::ringbuilder::min_part_hours: { get_input: swift_min_part_hours }
                 ntp::servers: {get_input: ntp_servers}
                 timezone::timezone: {get_input: timezone}
-                # NOTE(dprince): build_ring support is currently not wired in.
-                # See: https://review.openstack.org/#/c/109225/
-                tripleo::ringbuilder::build_ring: True
                 snmpd_readonly_user_name: {get_input: snmpd_readonly_user_name}
                 snmpd_readonly_user_password: {get_input: snmpd_readonly_user_password}
                 tripleo::packages::enable_install: {get_input: enable_package_install}
@@ -270,6 +295,7 @@ resources:
         swift_hash_suffix: {get_param: HashSuffix}
         swift_mount_check: {get_param: MountCheck}
         swift_min_part_hours: {get_param: MinPartHours}
+        swift_ring_build: {get_param: RingBuild}
         swift_part_power: {get_param: PartPower}
         swift_replicas: { get_param: Replicas}
         ntp_servers: {get_param: NtpServer}
@@ -367,7 +393,7 @@ outputs:
       str_replace:
         template: 'r1z1-IP:%PORT%/d1'
         params:
-          IP: {get_attr: [NetIpMap, net_ip_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
+          IP: {get_attr: [NetIpMap, net_ip_uri_map, {get_param: [ServiceNetMap, SwiftMgmtNetwork]}]}
   external_ip_address:
     description: IP address of the server in the external network
     value: {get_attr: [ExternalPort, ip_address]}