type: string
hidden: true
NeutronPublicInterface:
- default: eth0
+ default: nic1
description: What interface to bridge onto br-ex for network nodes.
type: string
NeutronPublicInterfaceTag:
overcloud.yaml to include the deployment of VLAN ports to the control
plane.
type: string
+ NeutronComputeAgentMode:
+ default: 'dvr'
+ description: Agent mode for the neutron-l3-agent on the compute hosts
+ type: string
+ NeutronAgentMode:
+ default: 'dvr_snat'
+ description: Agent mode for the neutron-l3-agent on the controller hosts
+ type: string
+ NeutronDVR:
+ default: 'False'
+ description: Whether to configure Neutron Distributed Virtual Routers
+ type: string
+ NeutronMetadataProxySharedSecret:
+ default: 'unset'
+ description: Shared secret to prevent spoofing
+ 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
+ NeutronMechanismDrivers:
+ default: 'openvswitch'
+ description: |
+ The mechanism drivers for the Neutron tenant network. To specify multiple
+ values, use a comma separated string, like so: 'openvswitch,l2_population'
+ type: string
+ NeutronAllowL3AgentFailover:
+ default: 'True'
+ description: Allow automatic l3-agent failover
+ type: string
+ NeutronL3HA:
+ default: 'False'
+ description: Whether to enable l3-agent HA
+ type: string
NovaPassword:
default: unset
description: The password for the nova service account, used by nova-api.
description: The password for RabbitMQ
type: string
hidden: true
+ 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
description: The user password for SNMPd with readonly rights running on all Overcloud nodes
type: string
hidden: true
-
+ CephClusterFSID:
+ default: ''
+ type: string
+ description: The Ceph cluster FSID.
+ CephMonKey:
+ default: ''
+ description: The Ceph monitors key.
+ type: string
+ CephAdminKey:
+ default: ''
+ description: The Ceph admin client key.
+ type: string
# Controller-specific params
AdminToken:
description: Keystone key for signing tokens.
type: string
hidden: true
+ KeystoneSSLCertificate:
+ default: ''
+ description: Keystone certificate for verifying token validity.
+ type: string
+ KeystoneSSLCertificateKey:
+ default: ''
+ description: Keystone key for signing tokens.
+ type: string
+ hidden: true
MysqlInnodbBufferPoolSize:
description: >
Specifies the size of the buffer pool in megabytes. Setting to
description: The password for the swift service account, used by the swift proxy services.
type: string
hidden: true
+ SwiftMountCheck:
+ default: 'false'
+ description: Value of mount_check in Swift account/container/object -server.conf
+ type: boolean
+ SwiftMinPartHours:
+ type: number
+ default: 1
+ description: The minimum time (in hours) before a partition in a ring can be moved following a rebalance.
SwiftPartPower:
default: 10
description: Partition Power to use when building Swift rings
type: number
SwiftReplicas:
type: number
- default: 1
+ default: 3
description: How many replicas to use in the swift rings.
# Compute-specific params
the openvswitch agent. Typically should not need to be changed.
type: string
HypervisorNeutronPublicInterface:
- default: 'eth0'
+ default: nic1
description: What interface to add to the HypervisorNeutronPhysicalBridge.
type: string
- LiveUpdateComputeImage:
- type: string
- description: The image ID for live-updates to the overcloud compute nodes.
- 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.
- hidden: true
- LiveUpdateTenantName:
- type: string
- description: The live-update tenant name for the undercloud Glance API.
- default: ''
- LiveUpdateUserName:
- type: string
- description: The live-update username for the undercloud Glance API.
- default: ''
NeutronNetworkVLANRanges:
default: 'datacentre'
description: >
# Block storage specific parameters
BlockStorageCount:
type: number
- default: 1
+ default: 0
BlockStorageImage:
default: overcloud-cinder-volume
type: string
default: overcloud-swift-storage
type: string
+# Ceph storage specific parameters
+ CephStorageCount:
+ type: number
+ default: 0
+ CephStorageImage:
+ default: overcloud-ceph-storage
+ type: string
+ OvercloudCephStorageFlavor:
+ default: baremetal
+ description: Flavor for Ceph storage nodes to request when deploying.
+ type: string
+
resources:
Controller:
KeystoneCACertificate: {get_param: KeystoneCACertificate}
KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
KeystoneSigningKey: {get_param: KeystoneSigningKey}
+ KeystoneSSLCertificate: {get_param: KeystoneSSLCertificate}
+ KeystoneSSLCertificateKey: {get_param: KeystoneSSLCertificateKey}
MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
NeutronPassword: {get_param: NeutronPassword}
NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
+ NeutronDVR: {get_param: NeutronDVR}
+ NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
+ NeutronAgentMode: {get_param: NeutronAgentMode}
+ NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+ NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
+ NeutronL3HA: {get_param: NeutronL3HA}
+ NeutronNetworkType: {get_param: NeutronNetworkType}
+ NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
NovaPassword: {get_param: NovaPassword}
NtpServer: {get_param: NtpServer}
PublicVirtualInterface: {get_param: PublicVirtualInterface}
RabbitUserName: {get_param: RabbitUserName}
RabbitPassword: {get_param: RabbitPassword}
RabbitCookie: {get_attr: [RabbitCookie, value]}
+ RabbitClientUseSSL: {get_param: RabbitClientUseSSL}
+ RabbitClientPort: {get_param: RabbitClientPort}
SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
SSLCertificate: {get_param: SSLCertificate}
SSLKey: {get_param: SSLKey}
SSLCACertificate: {get_param: SSLCACertificate}
SwiftHashSuffix: {get_param: SwiftHashSuffix}
+ SwiftMountCheck: {get_param: SwiftMountCheck}
+ SwiftMinPartHours: {get_param: SwiftMinPartHours}
SwiftPartPower: {get_param: SwiftPartPower}
SwiftPassword: {get_param: SwiftPassword}
SwiftReplicas: { get_param: SwiftReplicas}
ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
KeyName: {get_param: KeyName}
KeystoneHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
- LiveUpdateComputeImage: {get_param: LiveUpdateComputeImage}
- LiveUpdateHost: {get_param: LiveUpdateHost}
- LiveUpdatePassword: {get_param: LiveUpdatePassword}
- LiveUpdateTenantName: {get_param: LiveUpdateTenantName}
- LiveUpdateUserName: {get_param: LiveUpdateUserName}
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
NeutronPassword: {get_param: NeutronPassword}
NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
+ NeutronDVR: {get_param: NeutronDVR}
+ NeutronMetadataProxySharedSecret: {get_param: NeutronMetadataProxySharedSecret}
+ NeutronAgentMode: {get_param: NeutronComputeAgentMode}
+ NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
+ NeutronMechanismDrivers: {get_param: NeutronMechanismDrivers}
+ NeutronAllowL3AgentFailover: {get_param: NeutronAllowL3AgentFailover}
+ NeutronL3HA: {get_param: NeutronL3HA}
NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
NovaComputeDriver: {get_param: NovaComputeDriver}
NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
RabbitUserName: {get_param: RabbitUserName}
SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
- NovaDSN:
- list_join:
- - ''
- - - mysql://nova:unset@
- - &compute_database_host {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
- - /nova
- CeilometerDSN:
- list_join:
- - ''
- - - mysql://ceilometer:unset@
- - *compute_database_host
- - /ceilometer
- NeutronDSN:
- list_join:
- - ''
- - - mysql://neutron:unset@
- - *compute_database_host
- - /ovs_neutron
BlockStorage:
type: OS::Heat::ResourceGroup
resource_def:
type: OS::TripleO::BlockStorage
properties:
- AdminPassword: {get_param: AdminPassword}
Image: {get_param: BlockStorageImage}
CinderISCSIHelper: {get_param: CinderISCSIHelper}
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
- CinderPassword: {get_param: CinderPassword}
- ControllerIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
+ VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
KeyName: {get_param: KeyName}
- NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
- NeutronNetworkType: {get_param: NeutronNetworkType}
- NeutronPassword: {get_param: NeutronPassword}
- NeutronPublicInterface: {get_param: NeutronPublicInterface}
Flavor: {get_param: OvercloudBlockStorageFlavor}
RabbitPassword: {get_param: RabbitPassword}
RabbitUserName: {get_param: RabbitUserName}
+ NtpServer: {get_param: NtpServer}
ObjectStorage:
type: OS::Heat::ResourceGroup
resource_def:
type: OS::TripleO::ObjectStorage
properties:
- ControllerIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
KeyName: {get_param: KeyName}
- NeutronEnableTunnelling: {get_param: NeutronEnableTunnelling}
- NeutronNetworkType: {get_param: NeutronNetworkType}
Flavor: {get_param: OvercloudSwiftStorageFlavor}
HashSuffix: {get_param: SwiftHashSuffix}
+ MountCheck: {get_param: SwiftMountCheck}
+ MinPartHours: {get_param: SwiftMinPartHours}
PartPower: {get_param: SwiftPartPower}
- Password: {get_param: SwiftPassword}
Image: {get_param: SwiftStorageImage}
Replicas: { get_param: SwiftReplicas}
+ NtpServer: {get_param: NtpServer}
+ CephStorage:
+ type: OS::Heat::ResourceGroup
+ properties:
+ count: {get_param: CephStorageCount}
+ resource_def:
+ type: OS::TripleO::CephStorage
+ properties:
+ Image: {get_param: CephStorageImage}
+ KeyName: {get_param: KeyName}
+ Flavor: {get_param: OvercloudCephStorageFlavor}
+ CephClusterFSID: {get_param: CephClusterFSID}
+ CephMonKey: {get_param: CephMonKey}
+ CephAdminKey: {get_param: CephAdminKey}
+ CephMonitors: {get_attr: [Controller, corosync_node]}
allNodesConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::AllNodes::SoftwareConfig
properties:
- config:
- completion-signal: {get_input: deploy_signal_id}
- hosts:
- list_join:
- - "\n"
- - - list_join:
- - "\n"
- - {get_attr: [Compute, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [Controller, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [BlockStorage, hosts_entry]}
- - list_join:
- - "\n"
- - {get_attr: [ObjectStorage, hosts_entry]}
- rabbit:
- nodes:
- list_join:
- - ','
- - {get_attr: [Controller, hostname]}
+ compute_hosts: {get_attr: [Compute, hosts_entry]}
+ controller_hosts: {get_attr: [Controller, hosts_entry]}
+ block_storage_hosts: {get_attr: [BlockStorage, hosts_entry]}
+ object_storage_hosts: {get_attr: [ObjectStorage, hosts_entry]}
+ ceph_storage_hosts: {get_attr: [CephStorage, hosts_entry]}
+ controller_names: {get_attr: [Controller, hostname]}
MysqlRootPassword:
type: OS::Heat::RandomString
replacement_policy: AUTO
ControllerBootstrapNodeConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::BootstrapNode::SoftwareConfig
properties:
- group: os-apply-config
- config:
- bootstrap_host:
- bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
+ bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
ControllerBootstrapNodeDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: ControllerBootstrapNodeConfig}
+ config: {get_attr: [ControllerBootstrapNodeConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
ControllerSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
ObjectStorageSwiftDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: SwiftDevicesAndProxyConfig}
+ config: {get_attr: [SwiftDevicesAndProxyConfig, config_id]}
servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
signal_transport: NO_SIGNAL
SwiftDevicesAndProxyConfig:
- type: OS::Heat::StructuredConfig
+ type: OS::TripleO::SwiftDevicesAndProxy::SoftwareConfig
properties:
- group: os-apply-config
- config:
- swift:
- devices:
- list_join:
- - ", "
- - - list_join:
- - ", "
- - {get_attr: [Controller, swift_device]}
- - list_join:
- - ", "
- - {get_attr: [ObjectStorage, swift_device]}
- proxy-memcache:
- list_join:
- - ","
- - {get_attr: [Controller, swift_proxy_memcache]}
+ controller_swift_devices: {get_attr: [Controller, swift_device]}
+ object_store_swift_devices: {get_attr: [ObjectStorage, swift_device]}
+ controller_swift_proxy_memcaches: {get_attr: [Controller, swift_proxy_memcache]}
ControllerClusterConfig:
type: OS::Heat::StructuredConfig
ControllerAllNodesDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: allNodesConfig}
+ config: {get_attr: [allNodesConfig, config_id]}
servers: {get_attr: [Controller, attributes, nova_server_resource]}
ComputeAllNodesDeployment:
type: OS::Heat::StructuredDeployments
properties:
- config: {get_resource: allNodesConfig}
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [Compute, attributes, nova_server_resource]}
+
+ BlockStorageAllNodesDeployment:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
+
+ ObjectStorageAllNodesDeployment:
+ type: OS::Heat::StructuredDeployments
+ properties:
+ config: {get_attr: [allNodesConfig, config_id]}
+ servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+
+ # Nested stack deployment runs after all other controller deployments
+ ControllerNodesPostDeployment:
+ type: OS::TripleO::ControllerPostDeployment
+ depends_on: [ControllerBootstrapNodeDeployment, ControllerAllNodesDeployment, ControllerSwiftDeployment]
+ properties:
+ servers: {get_attr: [Controller, attributes, nova_server_resource]}
+
+ ComputeNodesPostDeployment:
+ type: OS::TripleO::ComputePostDeployment
+ depends_on: ComputeAllNodesDeployment
+ properties:
servers: {get_attr: [Compute, attributes, nova_server_resource]}
+ ObjectStorageNodesPostDeployment:
+ type: OS::TripleO::ObjectStoragePostDeployment
+ depends_on: [ObjectStorageSwiftDeployment, ObjectStorageAllNodesDeployment]
+ properties:
+ servers: {get_attr: [ObjectStorage, attributes, nova_server_resource]}
+
+ BlockStorageNodesPostDeployment:
+ type: OS::TripleO::BlockStoragePostDeployment
+ depends_on: BlockStorageAllNodesDeployment
+ properties:
+ servers: {get_attr: [BlockStorage, attributes, nova_server_resource]}
outputs:
KeystoneURL: