Description: The password for the cinder service account, used by cinder-api.
Type: String
NoEcho: true
- Flavor:
+ CinderISCSIHelper:
+ Default: tgtadm
+ Description: The iSCSI helper to use with cinder.
+ Type: String
+ CinderLVMLoopDeviceSize:
+ Default: 5000
+ Description: The size of the loopback file used by the cinder LVM driver.
+ Type: Number
+ ExtraConfig:
+ Default: {}
+ Description: |
+ Additional configuration to inject into the cluster. The JSON should have
+ the following structure:
+ {"FILEKEY":
+ {"config":
+ [{"section": "SECTIONNAME",
+ "values":
+ [{"option": "OPTIONNAME",
+ "value": "VALUENAME"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ For instance:
+ {"nova":
+ {"config":
+ [{"section": "default",
+ "values":
+ [{"option": "compute_manager",
+ "value": "ironic.nova.compute.manager.ClusterComputeManager"
+ }
+ ]
+ },
+ {"section": "cells",
+ "values":
+ [{"option": "driver",
+ "value": "nova.cells.rpc_driver.CellsRPCDriver"
+ }
+ ]
+ }
+ ]
+ }
+ }
+ Type: Json
+ OvercloudControlFlavor:
+ Default: baremetal
+ Description: Flavor for control nodes to request when deploying.
+ Type: String
+ OvercloudComputeFlavor:
Default: baremetal
- Description: Flavor to request when deploying.
+ Description: Flavor for compute nodes to request when deploying.
+ Type: String
+ GlancePort:
+ Default: 9292
+ Description: Glance port.
+ Type: String
+ GlanceProtocol:
+ 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
NoEcho: 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
NoEcho: true
ImageUpdatePolicy:
- Default: 'REPLACE'
+ Default: 'REBUILD_PRESERVE_EPHEMERAL'
Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
Type: String
KeyName:
Description: The password for the ceilometer service account.
Type: String
NoEcho: true
+ 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
+ NoEcho: true
CloudName:
Default: ''
Description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
Default: ''
Description: If set, the public interface is a vlan with this device as the raw device.
Type: String
- notcomputeImage:
+ NeutronControlPlaneID:
+ Default: ''
+ 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:
Type: String
Default: ''
- StaticHosts:
- Default:
- Fn::Join:
- - ' '
- - - Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - notCompute0
- - networks
- - {Ref: CloudName}
- Description: Static content to append to /etc/hosts
+ RabbitUserName:
+ Default: guest
+ Description: The username for RabbitMQ
+ Type: String
+ RabbitPassword:
+ Default: guest
+ Description: The password for RabbitMQ
+ Type: String
+ NoEcho: true
+ RabbitCookieSalt:
+ Type: String
+ 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.
+ Type: String
+ Default: ''
+ NoEcho: 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:
+ Type: String
+ Default: ''
+ Description: The live-update password for the undercloud Glance API.
+ NoEcho: true
+ LiveUpdateComputeImage:
+ 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.
+ Type: String
+ ControlFixedIPs:
+ Default: []
+ Description: Should be used for arbitrary ips.
+ Type: Json
+ KeystoneCACertificate:
+ Default: ''
+ Description: Keystone self-signed certificate authority certificate.
+ Type: String
+ KeystoneSigningCertificate:
+ Default: ''
+ Description: Keystone certificate for verifying token validity.
+ Type: String
+ KeystoneSigningKey:
+ Default: ''
+ Description: Keystone key for signing tokens.
+ Type: String
+ NoEcho: true
Resources:
- AccessPolicy:
- Properties:
- AllowedResources:
- - notCompute0
- - notCompute0Config
- Type: OS::Heat::AccessPolicy
- ComputeAccessPolicy:
- Properties:
- AllowedResources:
- - NovaCompute0
- - NovaCompute0Config
- Type: OS::Heat::AccessPolicy
- notCompute0Key:
- Properties:
- UserName:
- Ref: User
- Type: AWS::IAM::AccessKey
- notCompute0CompletionCondition:
- Type: AWS::CloudFormation::WaitCondition
- DependsOn: notCompute0
+ ControlVirtualIP:
+ Type: OS::Neutron::Port
Properties:
- Handle: {Ref: notCompute0CompletionHandle}
- Count: '1'
- Timeout: '1800'
- notCompute0CompletionHandle:
- Type: OS::Heat::UpdateWaitConditionHandle
- NovaCompute0Key:
- Type: FileInclude
- Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0Key
- NovaCompute0CompletionCondition:
- Type: FileInclude
- Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0CompletionCondition
- NovaCompute0CompletionHandle:
- Type: FileInclude
- Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0CompletionHandle
- ComputeUser:
+ name: control_virtual_ip
+ network_id: {Ref: NeutronControlPlaneID}
+ fixed_ips:
+ Ref: ControlFixedIPs
+ RabbitCookie:
+ Type: OS::Heat::RandomString
Properties:
- Policies:
- - Ref: ComputeAccessPolicy
- Type: AWS::IAM::User
+ length: 20
+ salt:
+ Ref: RabbitCookieSalt
NovaCompute0Config:
Type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0Config
+ SubKey: Resources.NovaCompute0Deploy
Parameters:
- NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] }
- KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] }
- RabbitHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] }
- NeutronHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] }
- GlanceHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] }
- NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/nova']]}
- CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/ceilometer']]}
- NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ]}, '/neutron']]}
+ NovaApiHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ KeystoneHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ RabbitHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ NeutronHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ GlanceHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/nova']]}
+ CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/ceilometer']]}
+ NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/neutron']]}
NeutronNetworkType: "gre"
NeutronEnableTunnelling: "True"
NeutronFlatNetworks:
Ref: HypervisorNeutronPublicInterface
NeutronBridgeMappings:
Ref: NeutronBridgeMappings
- RabbitPassword: "guest"
StaticHosts:
- Ref: StaticHosts
+ Fn::Join:
+ - "\n"
+ - - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ NovaCompute0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - NovaCompute0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - controller0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - 'novalocal'
+ - {Ref: CloudName}
+ NovaCompute0Passthrough:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ config: {Ref: NovaComputePassthrough}
+ server: {Ref: NovaCompute0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {Ref: ExtraConfig}
NovaCompute0:
Type: FileInclude
Path: nova-compute-instance.yaml
SubKey: Resources.NovaCompute0
- User:
+ controllerConfig:
+ Type: OS::Heat::StructuredConfig
Properties:
- Policies:
- - Ref: AccessPolicy
- Type: AWS::IAM::User
- notCompute0Config:
- Type: AWS::AutoScaling::LaunchConfiguration
+ group: os-apply-config
+ config:
+ completion-signal: {get_input: deploy_signal_id}
+ admin-password:
+ Ref: AdminPassword
+ admin-token:
+ Ref: AdminToken
+ bootstack:
+ public_interface_ip:
+ Ref: NeutronPublicInterfaceIP
+ bootstrap_host:
+ bootstrap_nodeid:
+ Fn::Select:
+ - 0
+ - Fn::Select:
+ - 0
+ - Merge::Map:
+ controller0:
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ nodeid: {get_input: bootstack_nodeid}
+ cinder:
+ db: mysql://cinder:unset@localhost/cinder
+ volume_size_mb:
+ Ref: CinderLVMLoopDeviceSize
+ service-password:
+ Ref: CinderPassword
+ iscsi-helper:
+ Ref: CinderISCSIHelper
+ controller-address:
+ get_input: controller_host
+ db-password: unset
+ glance:
+ registry:
+ host: {get_input: controller_virtual_ip}
+ backend: swift
+ db: mysql://glance:unset@localhost/glance
+ host:
+ get_input: controller_host
+ port:
+ Ref: GlancePort
+ protocol:
+ Ref: GlanceProtocol
+ service-password:
+ Ref: GlancePassword
+ swift-store-user: service:glance
+ swift-store-key:
+ Ref: GlancePassword
+ notifier-strategy:
+ Ref: GlanceNotifierStrategy
+ log-file:
+ Ref: GlanceLogFile
+ heat:
+ admin_password:
+ Ref: HeatPassword
+ admin_tenant_name: service
+ admin_user: heat
+ auth_encryption_key: unset___________
+ db: mysql://heat:unset@localhost/heat
+ stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
+ watch_server_url: {get_input: heat.watch_server_url}
+ metadata_server_url: {get_input: heat.metadata_server_url}
+ waitcondition_server_url: {get_input: heat.waitcondition_server_url}
+ hosts: {get_input: hosts}
+ keystone:
+ db: mysql://keystone:unset@localhost/keystone
+ host:
+ get_input: controller_host
+ ca_certificate: {Ref: KeystoneCACertificate}
+ signing_key: {Ref: KeystoneSigningKey}
+ signing_certificate: {Ref: KeystoneSigningCertificate}
+ mysql:
+ innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
+ neutron:
+ flat-networks: {Ref: NeutronFlatNetworks}
+ host: {get_input: controller_virtual_ip}
+ metadata_proxy_shared_secret: unset
+ ovs:
+ enable_tunneling: 'True'
+ local_ip:
+ get_input: controller_host
+ bridge_mappings: {Ref: NeutronBridgeMappings}
+ public_interface:
+ Ref: NeutronPublicInterface
+ public_interface_raw_device:
+ Ref: NeutronPublicInterfaceRawDevice
+ public_interface_route:
+ Ref: NeutronPublicInterfaceDefaultRoute
+ physical_bridge: br-ex
+ tenant_network_type: gre
+ ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
+ service-password:
+ Ref: NeutronPassword
+ dnsmasq-options:
+ Ref: NeutronDnsmasqOptions
+ ceilometer:
+ db: mysql://ceilometer:unset@localhost/ceilometer
+ metering_secret: {Ref: CeilometerMeteringSecret}
+ service-password:
+ Ref: CeilometerPassword
+ snmpd:
+ export_MIB: UCD-SNMP-MIB
+ readonly_user_name:
+ Ref: SnmpdReadonlyUserName
+ readonly_user_password:
+ Ref: SnmpdReadonlyUserPassword
+ nova:
+ compute_driver: libvirt.LibvirtDriver
+ db: mysql://nova:unset@localhost/nova
+ default_floating_pool:
+ ext-net
+ host: {get_input: controller_virtual_ip}
+ metadata-proxy: true
+ service-password:
+ Ref: NovaPassword
+ rabbit:
+ host:
+ get_input: controller_host
+ username:
+ Ref: RabbitUserName
+ password:
+ Ref: RabbitPassword
+ cookie:
+ Fn::GetAtt:
+ - RabbitCookie
+ - value
+ ntp:
+ servers:
+ - {server: {Ref: NtpServer}, fudge: "stratum 0"}
+ keepalived:
+ keepalive_interface:
+ Ref: NeutronPublicInterface
+ priority: 101
+ virtual_ips:
+ -
+ ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ interface:
+ Ref: ControlVirtualInterface
+ haproxy:
+ nodes:
+ Merge::Map:
+ controller0:
+ ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ name: {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+ net_binds:
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ services:
+ - name: keystone_admin
+ port: 35357
+ - name: keystone_public
+ port: 5000
+ - name: horizon
+ port: 80
+ - name: neutron
+ port: 9696
+ - name: cinder
+ port: 8776
+ - name: glance_api
+ port: 9292
+ - name: glance_registry
+ port: 9191
+ - name: heat_api
+ port: 8004
+ - name: heat_cloudwatch
+ port: 8003
+ - name: heat_cfn
+ port: 8000
+ - name: nova_ec2
+ port: 8773
+ - name: nova_osapi
+ port: 8774
+ - name: nova_metadata
+ port: 8775
+ - name: ceilometer
+ port: 8777
+ - name: swift_proxy_server
+ port: 8080
+ controllerPassthrough:
+ Type: OS::Heat::StructuredConfig
+ Properties:
+ group: os-apply-config
+ config: {get_input: passthrough_config}
+ controller0:
+ Type: OS::Nova::Server
+ Properties:
+ image:
+ Ref: controllerImage
+ image_update_policy:
+ Ref: ImageUpdatePolicy
+ flavor:
+ Ref: OvercloudControlFlavor
+ key_name:
+ Ref: KeyName
+ user_data_format: SOFTWARE_CONFIG
+ controller0Deployment:
+ Type: OS::Heat::StructuredDeployment
Properties:
- ImageId: '0'
- InstanceType: '0'
- Metadata:
- OpenStack::Heat::Stack: {}
- OpenStack::ImageBuilder::Elements:
- - boot-stack
- - heat-cfntools
- - heat-localip
- - neutron-network-node
- admin-password:
- Ref: AdminPassword
- admin-token:
- Ref: AdminToken
- bootstack:
- public_interface_ip:
- Ref: NeutronPublicInterfaceIP
- cinder:
- db: mysql://cinder:unset@localhost/cinder
- volume_size_mb: '5000'
- service-password:
- Ref: CinderPassword
- completion-handle:
- Ref: notCompute0CompletionHandle
- controller-address:
- Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
- db-password: unset
- glance:
- backend: swift
- db: mysql://glance:unset@localhost/glance
- host:
+ config: {Ref: controllerConfig}
+ server: {Ref: controller0}
+ input_values:
+ bootstack_nodeid:
+ Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ controller_host:
Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
- service-password:
- Ref: GlancePassword
- swift-store-user: service:glance
- swift-store-key:
- Ref: GlancePassword
- heat:
- admin_password:
- Ref: HeatPassword
- admin_tenant_name: service
- admin_user: heat
- auth_encryption_key: unset___________
- db: mysql://heat:unset@localhost/heat
- watch_server_url:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - controller0
+ - networks
+ heat.watch_server_url:
Fn::Join:
- ''
- - 'http://'
- - Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8003'
- metadata_server_url:
+ heat.metadata_server_url:
Fn::Join:
- ''
- - 'http://'
- - Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8000'
- waitcondition_server_url:
+ heat.waitcondition_server_url:
Fn::Join:
- ''
- - 'http://'
- - Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- ':8000/v1/waitcondition'
- hosts: {Ref: StaticHosts}
- keystone:
- db: mysql://keystone:unset@localhost/keystone
- host:
- Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
- neutron:
- flat-networks: {Ref: NeutronFlatNetworks}
- host:
- Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - notCompute0
- - networks
- metadata_proxy_shared_secret: unset
- ovs:
- enable_tunneling: 'True'
- local_ip:
- Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - notCompute0
- - networks
- bridge_mappings: {Ref: NeutronBridgeMappings}
- public_interface:
- Ref: NeutronPublicInterface
- public_interface_raw_device:
- Ref: NeutronPublicInterfaceRawDevice
- public_interface_route:
- Ref: NeutronPublicInterfaceDefaultRoute
- physical_bridge: br-ex
- tenant_network_type: gre
- ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
- service-password:
- Ref: NeutronPassword
- ceilometer:
- db: mysql://ceilometer:unset@localhost/ceilometer
- metering_secret: {Ref: CeilometerMeteringSecret}
- service-password:
- Ref: CeilometerPassword
- nova:
- compute_driver: libvirt.LibvirtDriver
- db: mysql://nova:unset@localhost/nova
- default_floating_pool:
- ext-net
- host:
- Fn::Select:
- - 0
- - Fn::Select:
- - 'ctlplane'
- - Fn::GetAtt:
- - notCompute0
- - networks
- metadata-proxy: true
- service-password:
- Ref: NovaPassword
- os-collect-config:
- cfn:
- access_key_id:
- Ref: notCompute0Key
- path: notCompute0Config.Metadata
- secret_access_key:
- Fn::GetAtt:
- - notCompute0Key
- - SecretAccessKey
- stack_name:
- Ref: AWS::StackName
- rabbit:
- host:
- Fn::Select:
- - 0
- - Fn::Select:
- - ctlplane
- - Fn::GetAtt:
- - notCompute0
- - networks
- password: guest
- ntp:
- servers:
- - {server: {Ref: NtpServer}, fudge: "stratum 0"}
- notCompute0:
- Type: OS::Nova::Server
+ hosts:
+ Fn::Join:
+ - "\n"
+ - - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ NovaCompute0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - NovaCompute0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - NovaCompute0
+ - show
+ - 'novalocal'
+ - Fn::Join:
+ - "\n"
+ - Merge::Map:
+ controller0:
+ Fn::Join:
+ - ' '
+ - - Fn::Select:
+ - 0
+ - Fn::Select:
+ - ctlplane
+ - Fn::GetAtt:
+ - controller0
+ - networks
+ - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - Fn::Join:
+ - '.'
+ - - Fn::Select:
+ - name
+ - Fn::GetAtt:
+ - controller0
+ - show
+ - 'novalocal'
+ - {Ref: CloudName}
+ controller_virtual_ip:
+ {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ controller0SSLDeployment:
+ Type: OS::Heat::StructuredDeployment
Properties:
- image:
- Ref: notcomputeImage
- image_update_policy:
- Ref: ImageUpdatePolicy
- flavor:
- Ref: Flavor
- key_name:
- Ref: KeyName
- Metadata:
- os-collect-config:
- cfn:
- access_key_id:
- Ref: notCompute0Key
- path: notCompute0Config.Metadata
- secret_access_key:
- Fn::GetAtt:
- - notCompute0Key
- - SecretAccessKey
- stack_name:
- Ref: AWS::StackName
+ config: {Ref: SSLConfig}
+ server: {Ref: controller0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ ssl_certificate: {Ref: SSLCertificate}
+ ssl_key: {Ref: SSLKey}
+ ssl_ca_certificate: {Ref: SSLCACertificate}
+ controller0Passthrough:
+ Type: OS::Heat::StructuredDeployment
+ Properties:
+ config: {Ref: controllerPassthrough}
+ server: {Ref: controller0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {Ref: ExtraConfig}
Outputs:
KeystoneURL:
Description: URL for the Overcloud Keystone service
- ''
- - http://
- Fn::Select:
- - 0
+ - ip_address
- Fn::Select:
- - ctlplane
+ - 0
- Fn::GetAtt:
- - notCompute0
- - networks
+ - ControlVirtualIP
+ - fixed_ips
- :5000/v2.0/