heat template-validate -f $(subst validate-,,$@)
overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps)
- python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE='0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml > $@.tmp
mv $@.tmp $@
overcloud-with-block-storage-nfs.yaml: overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml $(overcloud_source_deps)
# $^ won't work here because we want to list nova-compute-instance.yaml as
# a prerequisite but don't want to pass it into merge.py
- python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'1'} overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'1'} overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml > $@.tmp
mv $@.tmp $@
undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml
default: baremetal
description: Flavor for block storage nodes to request when deploying.
type: string
- NeutronNetworkType:
- type: string
- default: 'gre'
- NeutronEnableTunnelling:
- type: string
- default: True
resources:
BlockStorage0:
type: OS::Nova::Server
key_name: {get_param: KeyName}
user_data_format: SOFTWARE_CONFIG
BlockStorage0Deployment:
+ depends_on: [controller0AllNodesDeployment]
type: OS::Heat::StructuredDeployment
properties:
server: {get_resource: BlockStorage0}
config: {get_resource: BlockStorageConfig}
input_values:
- controller_host: {get_attr: [controller0, networks, ctlplane, 0]}
+ controller_virtual_ip: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
cinder_dsn: {"Fn::Join": ['', ['mysql://cinder:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} , '/cinder']]}
- neutron_local_ip: {get_attr: [BlockStorage0 , networks, ctlplane, 0]}
signal_transport: NO_SIGNAL
BlockStorageConfig:
type: OS::Heat::StructuredConfig
config:
admin-password: {get_param: AdminPassword}
keystone:
- host: {get_input: controller_host}
+ host: {get_input: controller_virtual_ip}
cinder:
db: {get_input: cinder_dsn}
volume_size_mb:
iscsi-helper:
get_param: CinderISCSIHelper
rabbit:
- host: {get_input: controller_host}
+ host: {get_input: controller_virtual_ip}
username: {get_param: RabbitUserName}
password: {get_param: RabbitPassword}
- interfaces:
- control: {get_param: NeutronPublicInterface}
- neutron:
- ovs:
- local_ip: {get_input: neutron_local_ip}
- tenant_network_type: {get_param: NeutronNetworkType}
- enable_tunneling: {get_param: NeutronEnableTunnelling}
- service-password:
- get_param: NeutronPassword
+ glance:
+ host: {get_input: controller_virtual_ip}
+ port: {get_param: GlancePort}
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- NovaCompute0Deploy:
- depends_on: [controller0AllNodes]
+ NovaCompute0Deployment:
+ depends_on: [controller0AllNodesDeployment]
type: OS::Heat::StructuredDeployment
properties:
signal_transport: NO_SIGNAL
nova_image: {get_param: NovaImage}
live_update_image_id: {get_param: LiveUpdateComputeImage}
ntp_server: {get_param: NtpServer}
- NovaCompute0AllNodesDeploy:
+ NovaCompute0AllNodesDeployment:
depends_on: [NovaCompute0Passthrough]
type: OS::Heat::StructuredDeployment
properties:
config: {get_param: AllNodesConfig}
server: {get_resource: NovaCompute0}
NovaCompute0Passthrough:
- depends_on: [NovaCompute0Deploy]
+ depends_on: [NovaCompute0Deployment]
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: NovaComputePassthrough}
length: 20
salt:
get_param: RabbitCookieSalt
- NovaCompute0Deploy:
+ NovaCompute0Deployment:
type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: resources.NovaCompute0Deploy
+ SubKey: resources.NovaCompute0Deployment
parameters:
NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
get_param: HypervisorNeutronPublicInterface
NeutronBridgeMappings:
get_param: NeutronBridgeMappings
- NovaCompute0AllNodes:
+ NovaCompute0AllNodesDeployment:
type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: resources.NovaCompute0AllNodesDeploy
+ SubKey: resources.NovaCompute0AllNodesDeployment
parameters:
AllNodesConfig: {get_resource: allNodesConfig}
NovaCompute0Passthrough:
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- controller0AllNodes:
+ controller0AllNodesDeployment:
depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
type: OS::Heat::StructuredDeployment
properties:
- '.'
- - {get_attr: [NovaCompute0, show, name]}
- 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ BlockStorage0:
+ Fn::Join:
+ - ' '
+ - - {get_attr: [BlockStorage0, networks, ctlplane, 0]}
+ - {get_attr: [BlockStorage0, show, name]}
+ - Fn::Join:
+ - '.'
+ - - {get_attr: [BlockStorage0, show, name]}
+ - 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ SwiftStorage0:
+ Fn::Join:
+ - ' '
+ - - {get_attr: [SwiftStorage0, networks, ctlplane, 0]}
+ - {get_attr: [SwiftStorage0, show, name]}
+ - Fn::Join:
+ - '.'
+ - - {get_attr: [SwiftStorage0, show, name]}
+ - 'novalocal'
- Fn::Join:
- "\n"
- Merge::Map:
description: Timeout for PXE deployment of baremetal nodes
type: number
resources:
- 01_undercloudNovaDeployment:
+ undercloudNovaDeployment:
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudNovaConfig}
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
- 99_undercloudDeployment:
+ undercloudDeployment:
+ depends_on: [undercloudPassthroughDeployment]
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudConfig}
- - 'http://'
- {get_attr: [undercloud, networks, ctlplane, 0]}
- ':8000/v1/waitcondition'
- 00_undercloudPassthroughDeployment:
+ undercloudPassthroughDeployment:
+ depends_on: [undercloudNovaDeployment]
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudPassthroughConfig}
type: string
hidden: true
resources:
- 01_undercloudNovaDeployment:
+ undercloudNovaDeployment:
+ depends_on: [undercloudIronicDeployment]
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudNovaConfig}
signal_transport: NO_SIGNAL
input_values:
nova_service_password: {get_param: NovaPassword}
- 02_undercloudIronicDeployment:
+ undercloudIronicDeployment:
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudIronicConfig}
description: What username to ssh to the virtual power host with.
type: string
resources:
- 01_undercloudNovaDeployment:
+ undercloudNovaDeployment:
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: undercloudNovaConfig}