-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Nova Compute'
-Parameters:
+heat_template_version: 2013-05-23
+description: 'Nova Compute'
+parameters:
AdminPassword:
- Default: unset
- Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the keystone admin account, used for monitoring, querying neutron etc.
+ type: string
+ hidden: true
+ AllNodesConfig:
+ type: string
+ description: OS::Heat::Config to use for all nodes deployment
+ CeilometerComputeAgent:
+ description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
+ type: string
+ default: ''
+ constraints:
+ - allowed_values: ['', Present]
+ CeilometerDSN:
+ type: string
+ CeilometerMeteringSecret:
+ default: unset
+ 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
+ DefaultSignalTransport:
+ default: CFN_SIGNAL
+ description: Transport to use for software-config signals.
+ type: string
+ constraints:
+ - allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
ExtraConfig:
- Description: |
+ default: {}
+ description: |
Additional configuration to inject into the cluster. The JSON should have
the following structure:
{"FILEKEY":
{"config":
[{"section": "default",
"values":
- [{"option": "compute_manager",
- "value": "ironic.nova.compute.manager.ClusterComputeManager"
+ [{"option": "force_config_drive",
+ "value": "always"
}
]
},
]
}
}
- Type: Json
- KeyName:
- Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
- Type: String
- Default: default
- OvercloudComputeFlavor:
- Description: Use this flavor
- Type: String
- Default: baremetal
+ type: json
+ GlanceHost:
+ 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
ImageUpdatePolicy:
- Default: 'REBUILD_PRESERVE_EPHEMERAL'
- Description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
- Type: String
- NovaImage:
- Type: String
- Default: overcloud-compute
- NtpServer:
- Type: String
- Default: ''
+ 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: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ type: string
+ default: default
KeystoneHost:
- Type: String
+ type: string
+ NeutronBridgeMappings:
+ type: string
+ NeutronDSN:
+ type: string
+ NeutronEnableTunnelling:
+ type: string
NeutronFlatNetworks:
- Type: String
- Default: ''
- Description: If set, flat networks to configure in neutron plugins.
+ type: string
+ default: ''
+ description: If set, flat networks to configure in neutron plugins.
NeutronHost:
- Type: String
+ type: string
+ NeutronNetworkType:
+ default: 'gre'
+ description: The tenant network type for Neutron, either gre or vxlan.
+ type: string
+ NeutronNetworkVLANRanges:
+ type: string
NeutronPhysicalBridge:
- Default: ''
- Description: An OVS bridge to create for accessing external networks.
- Type: String
+ default: ''
+ description: An OVS bridge to create for accessing external networks.
+ type: string
NeutronPublicInterface:
- Default: ''
- Description: A port to add to the NeutronPhysicalBridge.
- Type: String
+ default: ''
+ description: A port to add to the NeutronPhysicalBridge.
+ 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
+ NeutronPublicInterfaceRawDevice:
+ default: ''
+ type: string
+ NeutronDVR:
+ default: 'False'
+ 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
+ NovaApiHost:
+ type: string
+ NovaComputeDriver:
+ type: string
+ default: libvirt.LibvirtDriver
+ NovaComputeExtraConfig:
+ default: {}
+ description: |
+ NovaCompute specific configuration to inject into the cluster. Same
+ structure as ExtraConfig.
+ type: json
+ NovaComputeLibvirtType:
+ type: string
+ default: ''
+ NovaDSN:
+ type: string
+ NovaImage:
+ type: string
+ default: overcloud-compute
+ NovaPassword:
+ default: unset
+ description: The password for the nova service account, used by nova-api.
+ type: string
+ hidden: true
+ NovaPublicIP:
+ type: string
+ NtpServer:
+ type: string
+ default: ''
+ OvercloudComputeFlavor:
+ description: Use this flavor
+ type: string
+ constraints:
+ - custom_constraint: nova.flavor
RabbitHost:
- Type: String
+ type: string
RabbitUserName:
- Type: String
+ type: string
RabbitPassword:
- Type: String
- NoEcho: true
- CeilometerComputeAgent:
- Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
- Type: String
- Default: ''
- AllowedValues: ['', Present]
- CeilometerMeteringSecret:
- Default: unset
- Description: Secret shared by the ceilometer services.
- Type: String
- NoEcho: true
- CeilometerPassword:
- Default: unset
- Description: The password for the ceilometer service account.
- Type: String
- NoEcho: true
+ type: string
+ hidden: true
SnmpdReadonlyUserName:
- Default: ro_snmp_user
- Description: The user name for SNMPd with readonly rights running on all Overcloud nodes
- Type: String
+ 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
- NovaComputeDriver:
- Type: String
- Default: libvirt.LibvirtDriver
- NovaComputeLibvirtType:
- Type: String
- Default: ''
- NovaApiHost:
- Type: String
- NovaPassword:
- Default: unset
- Description: The password for the nova service account, used by nova-api.
- Type: String
- NoEcho: true
- GlanceHost:
- 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
- CeilometerDSN:
- Type: String
- NovaDSN:
- Type: String
- NeutronDSN:
- Type: String
- NeutronBridgeMappings:
- Type: String
- NeutronNetworkVLANRanges:
- Type: String
- NeutronNetworkType:
- Type: String
- NeutronEnableTunnelling:
- Type: String
- HostsConfig:
- Type: String
- Description: OS::Heat::Config to use for hosts file deployment
- 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: ''
-Resources:
+ default: unset
+ description: The user password for SNMPd with readonly rights running on all Overcloud nodes
+ type: string
+ hidden: true
+resources:
NovaCompute0:
- Type: OS::Nova::Server
- Properties:
+ type: OS::Nova::Server
+ properties:
image:
- {Ref: NovaImage}
+ {get_param: NovaImage}
image_update_policy:
- Ref: ImageUpdatePolicy
- flavor: {Ref: OvercloudComputeFlavor}
- key_name: {Ref: KeyName}
+ get_param: ImageUpdatePolicy
+ flavor: {get_param: OvercloudComputeFlavor}
+ key_name: {get_param: KeyName}
+ networks:
+ - network: ctlplane
user_data_format: SOFTWARE_CONFIG
- NovaCompute0Deploy:
- DependsOn: [controller0Deployment]
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: NovaComputeConfig}
- server: {Ref: NovaCompute0}
- input_values:
- nova_compute_driver: {Ref: NovaComputeDriver}
- nova_compute_libvirt_type: {Ref: NovaComputeLibvirtType}
- nova_dsn: {Ref: NovaDSN}
- nova_api_host: {Ref: NovaApiHost}
- nova_password: {Ref: NovaPassword}
- ceilometer_dsn: {Ref: CeilometerDSN}
- ceilometer_metering_secret: {Ref: CeilometerMeteringSecret}
- ceilometer_password: {Ref: CeilometerPassword}
- ceilometer_compute_agent: {Ref: CeilometerComputeAgent}
- snmpd_readonly_user_name: {Ref: SnmpdReadonlyUserName}
- snmpd_readonly_user_password: {Ref: SnmpdReadonlyUserPassword}
- glance_host: {Ref: GlanceHost}
- glance_port: {Ref: GlancePort}
- glance_protocol: {Ref: GlanceProtocol}
- keystone_host: {Ref: KeystoneHost}
- neutron_flat_networks: {Ref: NeutronFlatNetworks}
- neutron_host: {Ref: NeutronHost}
- neutron_dsn: {Ref: NeutronDSN}
- neutron_local_ip: {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ NovaCompute0, networks ]}]]}
- neutron_tenant_network_type: {Ref: NeutronNetworkType}
- neutron_network_vlan_ranges: {Ref: NeutronNetworkVLANRanges}
- neutron_bridge_mappings: {Ref: NeutronBridgeMappings}
- neutron_enable_tunneling: {Ref: NeutronEnableTunnelling}
- neutron_physical_bridge: {Ref: NeutronPhysicalBridge}
- neutron_public_interface: {Ref: NeutronPublicInterface}
- neutron_password: {Ref: NeutronPassword}
- admin_password: {Ref: AdminPassword}
- rabbit_host: {Ref: RabbitHost}
- rabbit_username: {Ref: RabbitUserName}
- rabbit_password: {Ref: RabbitPassword}
- live_update_host: {Ref: LiveUpdateHost}
- live_update_username: {Ref: LiveUpdateUserName}
- live_update_password: {Ref: LiveUpdatePassword}
- live_update_tenant_name: {Ref: LiveUpdateTenantName}
- nova_image: {Ref: NovaImage}
- live_update_image_id: {Ref: LiveUpdateComputeImage}
- ntp_server: {Ref: NtpServer}
- NovaCompute0HostsDeploy:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: HostsConfig}
- server: {Ref: NovaCompute0}
+ NovaCompute0Deployment:
+ type: OS::Heat::StructuredDeployment
+ properties:
signal_transport: NO_SIGNAL
+ config: {get_resource: NovaComputeConfig}
+ server: {get_resource: NovaCompute0}
+ input_values:
+ nova_compute_driver: {get_param: NovaComputeDriver}
+ nova_compute_libvirt_type: {get_param: NovaComputeLibvirtType}
+ nova_dsn: {get_param: NovaDSN}
+ nova_public_ip: {get_param: NovaPublicIP}
+ nova_api_host: {get_param: NovaApiHost}
+ nova_password: {get_param: NovaPassword}
+ ceilometer_dsn: {get_param: CeilometerDSN}
+ ceilometer_metering_secret: {get_param: CeilometerMeteringSecret}
+ ceilometer_password: {get_param: CeilometerPassword}
+ ceilometer_compute_agent: {get_param: CeilometerComputeAgent}
+ snmpd_readonly_user_name: {get_param: SnmpdReadonlyUserName}
+ snmpd_readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
+ glance_host: {get_param: GlanceHost}
+ glance_port: {get_param: GlancePort}
+ glance_protocol: {get_param: GlanceProtocol}
+ keystone_host: {get_param: KeystoneHost}
+ neutron_flat_networks: {get_param: NeutronFlatNetworks}
+ neutron_host: {get_param: NeutronHost}
+ neutron_dsn: {get_param: NeutronDSN}
+ neutron_local_ip: {get_attr: [NovaCompute0, networks, ctlplane, 0]}
+ neutron_tenant_network_type: {get_param: NeutronNetworkType}
+ neutron_tunnel_types: {get_param: NeutronTunnelTypes}
+ neutron_network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
+ neutron_bridge_mappings: {get_param: NeutronBridgeMappings}
+ neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
+ neutron_physical_bridge: {get_param: NeutronPhysicalBridge}
+ neutron_public_interface: {get_param: NeutronPublicInterface}
+ neutron_public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
+ neutron_password: {get_param: NeutronPassword}
+ neutron_agent_mode: {get_param: NeutronComputeAgentMode}
+ neutron_router_distributed: {get_param: NeutronDVR}
+ neutron_metadata_proxy_shared_secret: {get_param: NeutronMetadataProxySharedSecret}
+ neutron_mechanism_drivers: {get_param: NeutronMechanismDrivers}
+ neutron_allow_l3agent_failover: {get_param: NeutronAllowL3AgentFailover}
+ admin_password: {get_param: AdminPassword}
+ rabbit_host: {get_param: RabbitHost}
+ rabbit_username: {get_param: RabbitUserName}
+ rabbit_password: {get_param: RabbitPassword}
+ ntp_server: {get_param: NtpServer}
+ NovaCompute0AllNodesDeployment:
+ depends_on:
+ - controller0AllNodesDeployment
+ - NovaCompute0Deployment
+ - NovaCompute0PassthroughSpecific
+ type: OS::Heat::StructuredDeployment
+ properties:
+ signal_transport: {get_param: DefaultSignalTransport}
+ config: {get_param: AllNodesConfig}
+ server: {get_resource: NovaCompute0}
NovaCompute0Passthrough:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: NovaComputePassthrough}
- server: {Ref: NovaCompute0}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: NovaComputePassthrough}
+ server: {get_resource: NovaCompute0}
+ signal_transport: NO_SIGNAL
+ input_values:
+ passthrough_config: {get_param: ExtraConfig}
+ NovaCompute0PassthroughSpecific:
+ depends_on: [NovaCompute0Passthrough]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: NovaComputePassthroughSpecific}
+ server: {get_resource: NovaCompute0}
signal_transport: NO_SIGNAL
input_values:
- passthrough_config: {Ref: ExtraConfig}
+ passthrough_config_specific: {get_param: NovaComputeExtraConfig}