tripleo-heat-templates/nova-compute-instance.yaml
Steve Baker 02772ba287 Convert Fn::Select to extended get_attr
Overcloud bootstrap_nodeid is now specified by parameter
BootStrapNodeResource with default value controller0.
This avoids the need to use Fn::Select on the mergy.py
built list of controllers to specify the first controller.

Change-Id: Id9cfeab50b90ceeeae51ea0e35997b7495b28cc4
Partial-Blueprint: tripleo-juno-remove-mergepy
2014-08-04 08:57:52 +12:00

243 lines
7.8 KiB
YAML

heat_template_version: 2014-10-16
description: 'Nova Compute'
parameters:
AdminPassword:
default: unset
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
type: string
hidden: true
ExtraConfig:
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
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
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: ''
KeystoneHost:
type: string
NeutronFlatNetworks:
type: string
default: ''
description: If set, flat networks to configure in neutron plugins.
NeutronHost:
type: string
NeutronPhysicalBridge:
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
RabbitUserName:
type: string
RabbitPassword:
type: string
hidden: true
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: 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
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
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
hidden: 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
AllNodesConfig:
type: string
description: OS::Heat::Config to use for all nodes 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.
hidden: true
LiveUpdateComputeImage:
type: string
description: The image ID for live-updates to the overcloud compute nodes.
default: ''
resources:
NovaCompute0:
type: OS::Nova::Server
properties:
image:
{get_param: NovaImage}
image_update_policy:
get_param: ImageUpdatePolicy
flavor: {get_param: OvercloudComputeFlavor}
key_name: {get_param: KeyName}
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
NovaCompute0Deploy:
depends_on: [controller0AllNodes]
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_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_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_password: {get_param: NeutronPassword}
admin_password: {get_param: AdminPassword}
rabbit_username: {get_param: RabbitUserName}
rabbit_password: {get_param: RabbitPassword}
live_update_host: {get_param: LiveUpdateHost}
live_update_username: {get_param: LiveUpdateUserName}
live_update_password: {get_param: LiveUpdatePassword}
live_update_tenant_name: {get_param: LiveUpdateTenantName}
nova_image: {get_param: NovaImage}
live_update_image_id: {get_param: LiveUpdateComputeImage}
ntp_server: {get_param: NtpServer}
NovaCompute0AllNodesDeploy:
depends_on: [NovaCompute0Passthrough]
type: OS::Heat::StructuredDeployment
properties:
config: {get_param: AllNodesConfig}
server: {get_resource: NovaCompute0}
NovaCompute0Passthrough:
depends_on: [NovaCompute0Deploy]
type: OS::Heat::StructuredDeployment
properties:
config: {get_resource: NovaComputePassthrough}
server: {get_resource: NovaCompute0}
signal_transport: NO_SIGNAL
input_values:
passthrough_config: {get_param: ExtraConfig}