heat_template_version: pike parameters: ControlPlaneIp: default: '' type: string ControlPlaneSubnetCidr: # Override this via parameter_defaults default: '24' description: The subnet CIDR of the control plane network. type: string ExternalIp: default: '' type: string ExternalIpSubnet: default: '' type: string ExternalIpUri: default: '' type: string description: IP address with brackets in case of IPv6 InternalApiIp: default: '' type: string InternalApiIpSubnet: default: '' type: string InternalApiIpUri: default: '' type: string description: IP address with brackets in case of IPv6 StorageIp: default: '' type: string StorageIpSubnet: default: '' type: string StorageIpUri: default: '' type: string description: IP address with brackets in case of IPv6 StorageMgmtIp: default: '' type: string StorageMgmtIpSubnet: default: '' type: string StorageMgmtIpUri: default: '' type: string description: IP address with brackets in case of IPv6 TenantIp: default: '' type: string TenantIpSubnet: default: '' type: string TenantIpUri: default: '' type: string description: IP address with brackets in case of IPv6 ManagementIp: default: '' type: string ManagementIpSubnet: default: '' type: string ManagementIpUri: default: '' type: string description: IP address with brackets in case of IPv6 InternalApiNetName: default: internal_api description: The name of the internal API network. type: string ExternalNetName: default: external description: The name of the external network. type: string ManagementNetName: default: management description: The name of the management network. type: string StorageNetName: default: storage description: The name of the storage network. type: string StorageMgmtNetName: default: storage_mgmt description: The name of the Storage management network. type: string TenantNetName: default: tenant description: The name of the tenant network. type: string resources: NetIpMapValue: type: OS::Heat::Value properties: type: json value: map_replace: - ctlplane: {get_param: ControlPlaneIp} external: {get_param: ExternalIp} internal_api: {get_param: InternalApiIp} storage: {get_param: StorageIp} storage_mgmt: {get_param: StorageMgmtIp} tenant: {get_param: TenantIp} management: {get_param: ManagementIp} ctlplane_subnet: list_join: - '' - - {get_param: ControlPlaneIp} - '/' - {get_param: ControlPlaneSubnetCidr} external_subnet: {get_param: ExternalIpSubnet} internal_api_subnet: {get_param: InternalApiIpSubnet} storage_subnet: {get_param: StorageIpSubnet} storage_mgmt_subnet: {get_param: StorageMgmtIpSubnet} tenant_subnet: {get_param: TenantIpSubnet} management_subnet: {get_param: ManagementIpSubnet} ctlplane_uri: {get_param: ControlPlaneIp} external_uri: {get_param: ExternalIpUri} internal_api_uri: {get_param: InternalApiIpUri} storage_uri: {get_param: StorageIpUri} storage_mgmt_uri: {get_param: StorageMgmtIpUri} tenant_uri: {get_param: TenantIpUri} management_uri: {get_param: ManagementIpUri} - keys: external: {get_param: ExternalNetName} internal_api: {get_param: InternalApiNetName} storage: {get_param: StorageNetName} storage_mgmt: {get_param: StorageMgmtNetName} tenant: {get_param: TenantNetName} management: {get_param: ManagementNetName} external_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: ExternalNetName} internal_api_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: InternalApiNetName} storage_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: StorageNetName} storage_mgmt_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: StorageMgmtNetName} tenant_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: TenantNetName} management_subnet: str_replace: template: NAME_subnet params: NAME: {get_param: ManagementNetName} external_uri: str_replace: template: NAME_uri params: NAME: {get_param: ExternalNetName} internal_api_uri: str_replace: template: NAME_uri params: NAME: {get_param: InternalApiNetName} storage_uri: str_replace: template: NAME_uri params: NAME: {get_param: StorageNetName} storage_mgmt_uri: str_replace: template: NAME_uri params: NAME: {get_param: StorageMgmtNetName} tenant_uri: str_replace: template: NAME_uri params: NAME: {get_param: TenantNetName} management_uri: str_replace: template: NAME_uri params: NAME: {get_param: ManagementNetName} outputs: net_ip_map: description: > A Hash containing a mapping of network names to assigned IPs for a specific machine. value: {get_attr: [NetIpMapValue, value]}