X-Git-Url: https://gerrit.opnfv.org/gerrit/gitweb?a=blobdiff_plain;f=overcloud-source.yaml;h=742429f1e88bf7cc22394f7f2e86f45d653d2fec;hb=a9d03c8ba7f6b423f1280da604e00d2e96236c67;hp=bf3f85ec84a1fdf332a9e0e1e193cf779c4caa65;hpb=002051953cabd0784931de5346da53e954af98ab;p=apex-tripleo-heat-templates.git diff --git a/overcloud-source.yaml b/overcloud-source.yaml index bf3f85ec..742429f1 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -1,6 +1,6 @@ description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL server,Dedicated RabbitMQ Server,Group of Nova Computes -heat_template_version: 2014-10-16 +heat_template_version: 2013-05-23 parameters: AdminPassword: default: unset @@ -12,9 +12,20 @@ parameters: description: The keystone auth secret. type: string hidden: true - CinderPassword: + CeilometerComputeAgent: + description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly + type: string + default: '' + constraints: + - allowed_values: ['', Present] + CeilometerMeteringSecret: default: unset - description: The password for the cinder service account, used by cinder-api. + description: Secret shared by the ceilometer services. + type: string + hidden: true + CeilometerPassword: + default: unset + description: The password for the ceilometer service account. type: string hidden: true CinderISCSIHelper: @@ -25,6 +36,42 @@ parameters: default: 5000 description: The size of the loopback file used by the cinder LVM driver. type: number + CinderPassword: + default: unset + description: The password for the cinder service account, used by cinder-api. + type: string + hidden: true + CloudName: + default: '' + description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org + type: string + ControlFixedIPs: + default: [] + description: Should be used for arbitrary ips. + type: json + controllerExtraConfig: + default: {} + description: | + Controller specific configuration to inject into the cluster. Same + structure as ExtraConfig. + type: json + controllerImage: + type: string + default: overcloud-control + ControlVirtualInterface: + default: 'br-ex' + description: Interface where virtual ip will be assigned. + type: string + Debug: + default: '' + description: Set to True to enable debugging on all services. + type: string + DefaultSignalTransport: + default: CFN_SIGNAL + description: Transport to use for software-config signals. + type: string + constraints: + - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ] ExtraConfig: default: {} description: | @@ -47,8 +94,8 @@ parameters: {"config": [{"section": "default", "values": - [{"option": "compute_manager", - "value": "ironic.nova.compute.manager.ClusterComputeManager" + [{"option": "force_config_drive", + "value": "always" } ] }, @@ -63,14 +110,15 @@ parameters: } } type: json - OvercloudControlFlavor: - default: baremetal - description: Flavor for control nodes to request when deploying. + GlanceLogFile: + description: The filepath of the file to use for logging messages from Glance. type: string - OvercloudComputeFlavor: - default: baremetal - description: Flavor for compute nodes to request when deploying. + default: '' + GlancePassword: + default: unset + description: The password for the glance service account, used by the glance services. type: string + hidden: true GlancePort: default: 9292 description: Glance port. @@ -79,24 +127,31 @@ parameters: default: http description: Protocol to use when connecting to glance, set to https for SSL. type: string - GlancePassword: - default: unset - description: The password for the glance service account, used by the glance services. - type: string - hidden: true GlanceNotifierStrategy: description: Strategy to use for Glance notification queue type: string default: noop - GlanceLogFile: - description: The filepath of the file to use for logging messages from Glance. - type: string - default: '' HeatPassword: default: unset description: The password for the Heat service account, used by the Heat services. type: string hidden: true + HeatStackDomainAdminPassword: + description: Password for heat_domain_admin user. + type: string + default: '' + hidden: true + HypervisorNeutronPhysicalBridge: + default: 'br-ex' + description: > + An OVS bridge to create on each hypervisor. This defaults to br-ex the + same as the control plane nodes, as we have a uniform configuration of + the openvswitch agent. Typically should not need to be changed. + type: string + HypervisorNeutronPublicInterface: + default: 'eth0' + description: What interface to add to the HypervisorNeutronPhysicalBridge. + type: string ImageUpdatePolicy: default: 'REBUILD_PRESERVE_EPHEMERAL' description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt. @@ -105,70 +160,96 @@ parameters: default: default description: Name of an existing EC2 KeyPair to enable SSH access to the instances type: string - NeutronBridgeMappings: - description: The OVS logical->physical bridge mappings to use. - type: string + KeystoneCACertificate: default: '' - NeutronPassword: - default: unset - description: The password for the neutron service account, used by neutron agents. + description: Keystone self-signed certificate authority certificate. type: string - hidden: true - CeilometerComputeAgent: - description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly + KeystoneSigningCertificate: + default: '' + description: Keystone certificate for verifying token validity. type: string + KeystoneSigningKey: default: '' - constraints: - - allowed_values: ['', Present] - CeilometerMeteringSecret: - default: unset - description: Secret shared by the ceilometer services. + description: Keystone key for signing tokens. type: string hidden: true - CeilometerPassword: - default: unset - description: The password for the ceilometer service account. + KeystoneSSLCertificate: + default: '' + description: Keystone certificate for verifying token validity. + type: string + KeystoneSSLCertificateKey: + default: '' + description: Keystone key for signing tokens. type: string hidden: true - SnmpdReadonlyUserName: - default: ro_snmp_user - description: The user name for SNMPd with readonly rights running on all Overcloud nodes + LiveUpdateComputeImage: type: string - SnmpdReadonlyUserPassword: - default: unset - description: The user password for SNMPd with readonly rights running on all Overcloud nodes + description: The image ID for live-updates to the overcloud compute nodes. + default: '' + LiveUpdateHost: type: string - hidden: true - CloudName: + description: The IP address for the undercloud Glance API. default: '' - description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org + LiveUpdatePassword: type: string - NovaComputeDriver: - default: libvirt.LibvirtDriver + default: '' + description: The live-update password for the undercloud Glance API. + hidden: true + LiveUpdateTenantName: type: string - NovaComputeLibvirtType: + description: The live-update tenant name for the undercloud Glance API. default: '' + LiveUpdateUserName: type: string - NovaImage: + description: The live-update username for the undercloud Glance API. + default: '' + MysqlInnodbBufferPoolSize: + description: > + Specifies the size of the buffer pool in megabytes. Setting to + zero should be interpreted as "no value" and will defer to the + lower level default. + type: number + default: 0 + NeutronBridgeMappings: + description: > + The OVS logical->physical bridge mappings to use. See the Neutron + documentation for details. Defaults to mapping br-ex - the external + bridge on hosts - to a physical name 'datacentre' which can be used + to create provider networks (and we use this for the default floating + network) - if changing this either use different post-install network + scripts or be sure to keep 'datacentre' as a mapping network name. + type: string + default: "datacentre:br-ex" + NeutronControlPlaneID: + default: '' type: string - default: overcloud-compute - NovaPassword: - default: unset - description: The password for the nova service account, used by nova-api. + description: Neutron ID for ctlplane network. + NeutronDnsmasqOptions: + default: 'dhcp-option-force=26,1400' + description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the tunnel overhead. type: string - hidden: true NeutronFlatNetworks: type: string - default: '' - description: If set, flat networks to configure in neutron plugins. - HypervisorNeutronPhysicalBridge: - default: '' - description: An OVS bridge to create on each hypervisor. + default: 'datacentre' + description: > + If set, flat networks to configure in neutron plugins. Defaults to + 'datacentre' to permit external network creation. + NeutronNetworkType: + default: 'gre' + description: The tenant network type for Neutron, either gre or vxlan. + type: string + NeutronNetworkVLANRanges: + default: 'datacentre' + description: > + 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 - HypervisorNeutronPublicInterface: - default: '' - description: What interface to add to the HypervisorNeutronPhysicalBridge. + NeutronPassword: + default: unset + description: The password for the neutron service account, used by neutron agents. type: string + hidden: true NeutronPublicInterface: default: eth0 description: What interface to bridge onto br-ex for network nodes. @@ -185,77 +266,56 @@ parameters: default: '' description: If set, the public interface is a vlan with this device as the raw device. type: string - NeutronControlPlaneID: + NeutronPublicInterfaceTag: default: '' + description: > + VLAN tag for creating a public VLAN. The tag will be used to + create an access port on the exterior bridge for each control plane node, + and that port will be given the IP address returned by neutron from the + public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling + overcloud.yaml to include the deployment of VLAN ports to the control + plane. + type: string + NeutronTunnelTypes: + default: 'gre' + description: | + The tunnel types for the Neutron tenant network. To specify multiple + values, use a comma separated string, like so: 'gre,vxlan' type: string - description: Neutron ID for ctlplane network. - NeutronDnsmasqOptions: - default: 'dhcp-option-force=26,1400' - description: Dnsmasq options for neutron-dhcp-agent. The default value here forces MTU to be set to 1400 to account for the gre tunnel overhead. - type: string - controllerImage: - type: string - default: overcloud-control - NtpServer: + NovaComputeDriver: + default: libvirt.LibvirtDriver type: string + NovaComputeExtraConfig: + default: {} + description: | + NovaCompute specific configuration to inject into the cluster. Same + structure as ExtraConfig. + type: json + NovaComputeLibvirtType: default: '' - RabbitUserName: - default: guest - description: The username for RabbitMQ type: string - RabbitPassword: - default: guest - description: The password for RabbitMQ - type: string - hidden: true - RabbitCookieSalt: + NovaImage: type: string + default: overcloud-compute + NovaPassword: default: unset - description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change. - HeatStackDomainAdminPassword: - description: Password for heat_domain_admin user. + description: The password for the nova service account, used by nova-api. type: string - default: '' hidden: true - LiveUpdateUserName: - type: string - description: The live-update username for the undercloud Glance API. - default: '' - LiveUpdateTenantName: - type: string - description: The live-update tenant name for the undercloud Glance API. - default: '' - LiveUpdateHost: - type: string - description: The IP address for the undercloud Glance API. - default: '' - LiveUpdatePassword: + NtpServer: type: string default: '' - description: The live-update password for the undercloud Glance API. - hidden: true - LiveUpdateComputeImage: + OvercloudComputeFlavor: + default: baremetal + description: Flavor for compute nodes to request when deploying. type: string - description: The image ID for live-updates to the overcloud compute nodes. - default: '' - MysqlInnodbBufferPoolSize: - description: > - Specifies the size of the buffer pool in megabytes. Setting to - zero should be interpreted as "no value" and will defer to the - lower level default. - type: number - default: 0 - ControlVirtualInterface: - default: 'br-ex' - description: Interface where virtual ip will be assigned. + OvercloudControlFlavor: + default: baremetal + description: Flavor for control nodes to request when deploying. type: string - ControlFixedIPs: - default: [] - description: Should be used for arbitrary ips. - type: json PublicVirtualFixedIPs: default: [] - description: | + description: > Control the IP allocation for the PublicVirtualInterface port. E.g. [{'ip_address':'1.2.3.4'}] type: json @@ -270,23 +330,38 @@ parameters: type: string description: > Neutron network to allocate public virtual IP port on. - KeystoneCACertificate: - default: '' - description: Keystone self-signed certificate authority certificate. - type: string - KeystoneSigningCertificate: - default: '' - description: Keystone certificate for verifying token validity. + RabbitCookieSalt: type: string - KeystoneSigningKey: - default: '' - description: Keystone key for signing tokens. + default: unset + description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change. + RabbitPassword: + default: guest + description: The password for RabbitMQ type: string hidden: true - BootstrapNodeResource: - default: controller0 - description: Name of the bootstrap controller resource + RabbitUserName: + default: guest + description: The username for RabbitMQ type: string + RabbitClientUseSSL: + default: false + description: > + Rabbit client subscriber parameter to specify + an SSL connection to the RabbitMQ host. + type: string + RabbitClientPort: + default: 5672 + description: Set rabbit subscriber port, change this if using SSL + type: number + SnmpdReadonlyUserName: + default: ro_snmp_user + description: The user name for SNMPd with readonly rights running on all Overcloud nodes + type: string + SnmpdReadonlyUserPassword: + default: unset + description: The user password for SNMPd with readonly rights running on all Overcloud nodes + type: string + hidden: true resources: ControlVirtualIP: type: OS::Neutron::Port @@ -295,10 +370,15 @@ resources: network_id: {get_param: NeutronControlPlaneID} fixed_ips: get_param: ControlFixedIPs + replacement_policy: AUTO MysqlClusterUniquePart: type: OS::Heat::RandomString properties: length: 10 + MysqlRootPassword: + type: OS::Heat::RandomString + properties: + length: 10 PublicVirtualIP: type: OS::Neutron::Port properties: @@ -306,6 +386,7 @@ resources: network: {get_param: PublicVirtualNetwork} fixed_ips: get_param: PublicVirtualFixedIPs + replacement_policy: AUTO RabbitCookie: type: OS::Heat::RandomString properties: @@ -317,18 +398,41 @@ resources: Path: nova-compute-instance.yaml SubKey: resources.NovaCompute0Deployment parameters: + DefaultSignalTransport: + get_param: DefaultSignalTransport NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - NovaDSN: {list_join: ['', ['mysql://nova:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/nova']]} - CeilometerDSN: {list_join: ['', ['mysql://ceilometer:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ceilometer']]} - NeutronDSN: {list_join: ['', ['mysql://neutron:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}, '/ovs_neutron']]} - NeutronNetworkType: "gre" + RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} + NovaDSN: + Fn::Join: + - '' + - - mysql://nova:unset@ + - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} + - /nova + NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} + CeilometerDSN: + Fn::Join: + - '' + - - mysql://ceilometer:unset@ + - *compute_database_host + - /ceilometer + NeutronDSN: + Fn::Join: + - '' + - - mysql://neutron:unset@ + - *compute_database_host + - /ovs_neutron + NeutronNetworkType: + get_param: NeutronNetworkType + NeutronTunnelTypes: + get_param: NeutronTunnelTypes NeutronEnableTunnelling: "True" NeutronFlatNetworks: get_param: NeutronFlatNetworks - NeutronNetworkVLANRanges: "" + NeutronNetworkVLANRanges: + get_param: NeutronNetworkVLANRanges NeutronPhysicalBridge: get_param: HypervisorNeutronPhysicalBridge NeutronPublicInterface: @@ -341,16 +445,22 @@ resources: SubKey: resources.NovaCompute0AllNodesDeployment parameters: AllNodesConfig: {get_resource: allNodesConfig} + NovaCompute0: + type: FileInclude + Path: nova-compute-instance.yaml + SubKey: resources.NovaCompute0 NovaCompute0Passthrough: type: FileInclude Path: nova-compute-instance.yaml SubKey: resources.NovaCompute0Passthrough parameters: passthrough_config: {get_param: ExtraConfig} - NovaCompute0: + NovaCompute0PassthroughSpecific: type: FileInclude Path: nova-compute-instance.yaml - SubKey: resources.NovaCompute0 + SubKey: resources.NovaCompute0PassthroughSpecific + parameters: + passthrough_config_specific: {get_param: NovaComputeExtraConfig} controllerConfig: type: OS::Heat::StructuredConfig properties: @@ -364,10 +474,28 @@ resources: public_interface_ip: get_param: NeutronPublicInterfaceIP bootstrap_host: - bootstrap_nodeid: {get_attr: [{get_param: BootstrapNodeResource}, show, name]} + bootstrap_nodeid: + Fn::Select: + - 0 + - Fn::Select: + - 0 + - Merge::Map: + controller0: + - get_attr: + - controller0 + - name nodeid: {get_input: bootstack_nodeid} + database: + host: &database_host + {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} cinder: - db: mysql://cinder:unset@localhost/cinder + db: + Fn::Join: + - '' + - - mysql://cinder:unset@ + - *database_host + - /cinder + debug: {get_param: Debug} volume_size_mb: get_param: CinderLVMLoopDeviceSize service-password: @@ -392,7 +520,13 @@ resources: registry: host: {get_input: controller_virtual_ip} backend: swift - db: mysql://glance:unset@localhost/glance + db: + Fn::Join: + - '' + - - mysql://glance:unset@ + - *database_host + - /glance + debug: {get_param: Debug} host: get_input: controller_virtual_ip port: @@ -414,7 +548,13 @@ resources: admin_tenant_name: service admin_user: heat auth_encryption_key: unset___________ - db: mysql://heat:unset@localhost/heat + db: + Fn::Join: + - '' + - - mysql://heat:unset@ + - *database_host + - /heat + debug: {get_param: Debug} stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword} watch_server_url: {get_input: heat.watch_server_url} metadata_server_url: {get_input: heat.metadata_server_url} @@ -425,26 +565,38 @@ resources: nodes: Merge::Map: controller0: - {get_attr: [controller0, show, name]} + {get_attr: [controller0, name]} keystone: - db: mysql://keystone:unset@localhost/keystone + db: + Fn::Join: + - '' + - - mysql://keystone:unset@ + - *database_host + - /keystone + debug: {get_param: Debug} host: get_input: controller_virtual_ip ca_certificate: {get_param: KeystoneCACertificate} signing_key: {get_param: KeystoneSigningKey} signing_certificate: {get_param: KeystoneSigningCertificate} + ssl: + certificate: {get_param: KeystoneSSLCertificate} + certificate_key: {get_param: KeystoneSSLCertificateKey} mysql: innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize} + local_bind: true + root-password: {get_resource: MysqlRootPassword} nodes: Merge::Map: controller0: ip: {get_attr: [controller0, networks, ctlplane, 0]} cluster_name: - list_join: + Fn::Join: - '-' - - 'tripleo' - {get_resource: MysqlClusterUniquePart} neutron: + debug: {get_param: Debug} flat-networks: {get_param: NeutronFlatNetworks} host: {get_input: controller_virtual_ip} metadata_proxy_shared_secret: unset @@ -452,6 +604,7 @@ resources: enable_tunneling: 'True' local_ip: get_input: controller_host + network_vlan_ranges: {get_param: NeutronNetworkVLANRanges} bridge_mappings: {get_param: NeutronBridgeMappings} public_interface: get_param: NeutronPublicInterface @@ -459,15 +612,31 @@ resources: get_param: NeutronPublicInterfaceRawDevice public_interface_route: get_param: NeutronPublicInterfaceDefaultRoute + public_interface_tag: + get_param: NeutronPublicInterfaceTag physical_bridge: br-ex - tenant_network_type: gre - ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 + tenant_network_type: + get_param: NeutronNetworkType + tunnel_types: + get_param: NeutronTunnelTypes + ovs_db: + Fn::Join: + - '' + - - mysql://neutron:unset@ + - *database_host + - /ovs_neutron?charset=utf8 service-password: get_param: NeutronPassword dnsmasq-options: get_param: NeutronDnsmasqOptions ceilometer: - db: mysql://ceilometer:unset@localhost/ceilometer + db: + Fn::Join: + - '' + - - mysql://ceilometer:unset@ + - *database_host + - /ceilometer + debug: {get_param: Debug} metering_secret: {get_param: CeilometerMeteringSecret} service-password: get_param: CeilometerPassword @@ -479,7 +648,12 @@ resources: get_param: SnmpdReadonlyUserPassword nova: compute_driver: libvirt.LibvirtDriver - db: mysql://nova:unset@localhost/nova + db: + Fn::Join: + - '' + - - mysql://nova:unset@ + - *database_host + - /nova default_floating_pool: ext-net host: {get_input: controller_virtual_ip} @@ -487,6 +661,7 @@ resources: service-password: get_param: NovaPassword rabbit: + host: {get_input: controller_virtual_ip} username: get_param: RabbitUserName password: @@ -495,6 +670,8 @@ resources: get_attr: - RabbitCookie - value + rabbit_client_use_ssl: {get_param: RabbitClientUseSSL} + rabbit_port: {get_param: RabbitClientPort} ntp: servers: - {server: {get_param: NtpServer}, fudge: "stratum 0"} @@ -541,61 +718,69 @@ resources: Merge::Map: controller0: ip: {get_attr: [controller0, networks, ctlplane, 0]} - name: {get_attr: [controller0, show, name]} + name: {get_attr: [controller0, name]} net_binds: - - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} + - &control_vip {ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}} + - &public_vip {ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}} services: - name: keystone_admin port: 35357 - net_binds: &public_binds - - ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - - ip: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]} - name: keystone_public port: 5000 - net_binds: *public_binds - name: horizon port: 80 - net_binds: *public_binds - name: neutron port: 9696 - net_binds: *public_binds - name: cinder port: 8776 - net_binds: *public_binds - name: glance_api port: 9292 - net_binds: *public_binds - name: glance_registry port: 9191 - net_binds: *public_binds - name: heat_api port: 8004 - net_binds: *public_binds - name: heat_cloudwatch port: 8003 - net_binds: *public_binds - name: heat_cfn port: 8000 - net_binds: *public_binds + - name: mysql + port: 3306 + net_binds: + - *control_vip + extra_server_params: + - backup + options: + - timeout client 0 + - timeout server 0 - name: nova_ec2 port: 8773 - name: nova_osapi port: 8774 - net_binds: *public_binds - name: nova_metadata port: 8775 - net_binds: *public_binds + - name: nova_novncproxy + port: 6080 - name: ceilometer port: 8777 - net_binds: *public_binds - name: swift_proxy_server port: 8080 - net_binds: *public_binds + - name: rabbitmq + port: 5672 + net_binds: + - *control_vip + options: + - timeout client 0 + - timeout server 0 controllerPassthrough: type: OS::Heat::StructuredConfig properties: group: os-apply-config config: {get_input: passthrough_config} + controllerPassthroughSpecific: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: {get_input: passthrough_config_specific} controller0: type: OS::Nova::Server properties: @@ -611,9 +796,10 @@ resources: - network: ctlplane user_data_format: SOFTWARE_CONFIG controller0AllNodesDeployment: - depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough] + depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0PassthroughSpecific] type: OS::Heat::StructuredDeployment properties: + signal_transport: {get_param: DefaultSignalTransport} config: {get_resource: allNodesConfig} server: {get_resource: controller0} controller0Deployment: @@ -623,24 +809,24 @@ resources: config: {get_resource: controllerConfig} server: {get_resource: controller0} input_values: - bootstack_nodeid: {get_attr: [controller0, show, name]} + bootstack_nodeid: {get_attr: [controller0, name]} controller_host: {get_attr: [controller0, networks, ctlplane, 0]} controller_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} heat.watch_server_url: - list_join: + Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ':8003' heat.metadata_server_url: - list_join: + Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} - ':8000' heat.waitcondition_server_url: - list_join: + Fn::Join: - '' - - 'http://' - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} @@ -651,40 +837,64 @@ resources: config: completion-signal: {get_input: deploy_signal_id} hosts: - list_join: + Fn::Join: - "\n" - - - list_join: + - - Fn::Join: - "\n" - Merge::Map: NovaCompute0: - list_join: + Fn::Join: - ' ' - - {get_attr: [NovaCompute0, networks, ctlplane, 0]} - - {get_attr: [NovaCompute0, show, name]} - - list_join: + - {get_attr: [NovaCompute0, name]} + - Fn::Join: + - '.' + - - {get_attr: [NovaCompute0, name]} + - 'novalocal' + - Fn::Join: + - "\n" + - Merge::Map: + BlockStorage0: + Fn::Join: + - ' ' + - - {get_attr: [BlockStorage0, networks, ctlplane, 0]} + - {get_attr: [BlockStorage0, name]} + - Fn::Join: + - '.' + - - {get_attr: [BlockStorage0, name]} + - 'novalocal' + - Fn::Join: + - "\n" + - Merge::Map: + SwiftStorage0: + Fn::Join: + - ' ' + - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]} + - {get_attr: [SwiftStorage0, name]} + - Fn::Join: - '.' - - - {get_attr: [NovaCompute0, show, name]} + - - {get_attr: [SwiftStorage0, name]} - 'novalocal' - - list_join: + - Fn::Join: - "\n" - Merge::Map: controller0: - list_join: + Fn::Join: - ' ' - - {get_attr: [controller0, networks, ctlplane, 0]} - - {get_attr: [controller0, show, name]} - - list_join: + - {get_attr: [controller0, name]} + - Fn::Join: - '.' - - - {get_attr: [controller0, show, name]} + - - {get_attr: [controller0, name]} - 'novalocal' - {get_param: CloudName} rabbit: nodes: - list_join: + Fn::Join: - ',' - Merge::Map: controller0: - {get_attr: [controller0, show, name]} + {get_attr: [controller0, name]} controller0SSLDeployment: type: OS::Heat::StructuredDeployment properties: @@ -704,11 +914,20 @@ resources: signal_transport: NO_SIGNAL input_values: passthrough_config: {get_param: ExtraConfig} + controller0PassthroughSpecific: + depends_on: [controller0Passthrough] + type: OS::Heat::StructuredDeployment + properties: + config: {get_resource: controllerPassthroughSpecific} + server: {get_resource: controller0} + signal_transport: NO_SIGNAL + input_values: + passthrough_config_specific: {get_param: controllerExtraConfig} outputs: KeystoneURL: description: URL for the Overcloud Keystone service value: - list_join: + Fn::Join: - '' - - http:// - {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}