Compute and controller templates without merge.py
This provides three templates: overcloud-without-mergepy.yaml, compute.yaml and controller.yaml. These can be used in combination with overcloud-resource-registry.yaml to deploy the overcloud on their own -- without having to do any pre-processing (via merge.py). To test these you have to add the resource registry environment (in addition to the existing `-e` option) and use the new overcloud template in the Heat call in devtest_overcloud.sh (line 374): heat $HEAT_OP -e $TRIPLEO_ROOT/overcloud-env.json \ -e "$TRIPLEO_ROOT/tripleo-heat-templates/overcloud-resource-registry.yaml" \ -t 360 \ -f $TRIPLEO_ROOT/tripleo-heat-templates/overcloud-without-mergepy.yaml \ -P "ExtraConfig=${OVERCLOUD_EXTRA_CONFIG}" \ $STACKNAME The existing overcloud Heat environment ($TRIPLE_ROOT/overcloud-env.json) should keep on working. Scaling is now being controlled by the `ControllerCount` and `ComputeCount` template parameters, though. NOTE: the changes here depend on a fairly recent Heat build (commit e5f285f6cb from ~7th September, 2014). In other words, this requires Juno Heat. Also, passing more than one environment file to Heat requires python-heatclient version 0.2.11. Change-Id: I687a00c7dc164ba044f9f2dfca96a02401427855
This commit is contained in:
parent
7b48754b98
commit
bcdcc28cb6
401
compute.yaml
Normal file
401
compute.yaml
Normal file
@ -0,0 +1,401 @@
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
OpenStack hypervisor node. Can be wrapped in a ResourceGroup for scaling.
|
||||
|
||||
parameters:
|
||||
AdminPassword:
|
||||
default: unset
|
||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||
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]
|
||||
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
|
||||
Debug:
|
||||
default: ''
|
||||
description: Set to True to enable debugging on all services.
|
||||
type: string
|
||||
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": "force_config_drive",
|
||||
"value": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
{"section": "cells",
|
||||
"values":
|
||||
[{"option": "driver",
|
||||
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
type: json
|
||||
Flavor:
|
||||
description: Flavor for the nova compute node
|
||||
type: string
|
||||
default: baremetal
|
||||
GlanceHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
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
|
||||
Image:
|
||||
type: string
|
||||
default: overcloud-compute
|
||||
ImageUpdatePolicy:
|
||||
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
|
||||
default: ''
|
||||
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: ''
|
||||
NeutronBridgeMappings:
|
||||
description: >
|
||||
The OVS logical->physical bridge mappings to use. See the Neutron
|
||||
documentation for details. Defaults to mapping br-ex - the external
|
||||
bridge on hosts - to a physical name 'datacentre' which can be used
|
||||
to create provider networks (and we use this for the default floating
|
||||
network) - if changing this either use different post-install network
|
||||
scripts or be sure to keep 'datacentre' as a mapping network name.
|
||||
type: string
|
||||
default: ""
|
||||
NeutronDSN:
|
||||
type: string
|
||||
NeutronEnableTunnelling:
|
||||
type: string
|
||||
default: "True"
|
||||
NeutronFlatNetworks:
|
||||
type: string
|
||||
default: ''
|
||||
description: >
|
||||
If set, flat networks to configure in neutron plugins.
|
||||
NeutronHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NeutronNetworkType:
|
||||
type: string
|
||||
description: The tenant network type for Neutron, either gre or vxlan.
|
||||
default: 'gre'
|
||||
NeutronNetworkVLANRanges:
|
||||
default: 'datacentre'
|
||||
description: >
|
||||
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
|
||||
Neutron documentation for permitted values. Defaults to permitting any
|
||||
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
|
||||
type: string
|
||||
NeutronPassword:
|
||||
default: unset
|
||||
description: The password for the neutron service account, used by neutron agents.
|
||||
type: string
|
||||
hidden: true
|
||||
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
|
||||
NeutronTunnelTypes:
|
||||
type: string
|
||||
description: |
|
||||
The tunnel types for the Neutron tenant network. To specify multiple
|
||||
values, use a comma separated string, like so: 'gre,vxlan'
|
||||
default: 'gre'
|
||||
NovaApiHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
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
|
||||
NovaPassword:
|
||||
default: unset
|
||||
description: The password for the nova service account, used by nova-api.
|
||||
type: string
|
||||
hidden: true
|
||||
NovaPublicIP:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NtpServer:
|
||||
type: string
|
||||
default: ''
|
||||
RabbitHost:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
RabbitPassword:
|
||||
default: guest
|
||||
description: The password for RabbitMQ
|
||||
type: string
|
||||
hidden: true
|
||||
RabbitUserName:
|
||||
default: guest
|
||||
description: The username for RabbitMQ
|
||||
type: string
|
||||
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
|
||||
|
||||
|
||||
resources:
|
||||
|
||||
NovaCompute:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
image:
|
||||
{get_param: Image}
|
||||
image_update_policy:
|
||||
get_param: ImageUpdatePolicy
|
||||
flavor: {get_param: Flavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
|
||||
NovaComputeConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
nova:
|
||||
compute_driver: { get_input: nova_compute_driver }
|
||||
compute_libvirt_type: { get_input: nova_compute_libvirt_type }
|
||||
db: {get_input: nova_dsn}
|
||||
debug: {get_param: Debug}
|
||||
host: {get_input: nova_api_host}
|
||||
public_ip: {get_input: nova_public_ip}
|
||||
service-password: {get_input: nova_password}
|
||||
ceilometer:
|
||||
db: {get_input: ceilometer_dsn}
|
||||
debug: {get_param: Debug}
|
||||
metering_secret: {get_input: ceilometer_metering_secret}
|
||||
service-password: {get_input: ceilometer_password}
|
||||
compute_agent: {get_input: ceilometer_compute_agent}
|
||||
snmpd:
|
||||
export_MIB: UCD-SNMP-MIB
|
||||
readonly_user_name: {get_input: snmpd_readonly_user_name}
|
||||
readonly_user_password: {get_input: snmpd_readonly_user_password}
|
||||
glance:
|
||||
debug: {get_param: Debug}
|
||||
host: {get_input: glance_host}
|
||||
port: {get_input: glance_port}
|
||||
protocol: {get_input: glance_protocol}
|
||||
keystone:
|
||||
debug: {get_param: Debug}
|
||||
host: {get_input: keystone_host}
|
||||
neutron:
|
||||
debug: {get_param: Debug}
|
||||
flat-networks: {get_input: neutron_flat_networks}
|
||||
host: {get_input: neutron_host}
|
||||
ovs_db: {get_input: neutron_dsn}
|
||||
ovs:
|
||||
local_ip: {get_input: neutron_local_ip}
|
||||
tenant_network_type: {get_input: neutron_tenant_network_type}
|
||||
tunnel_types: {get_input: neutron_tunnel_types}
|
||||
network_vlan_ranges: {get_input: neutron_network_vlan_ranges}
|
||||
bridge_mappings: {get_input: neutron_bridge_mappings}
|
||||
enable_tunneling: {get_input: neutron_enable_tunneling}
|
||||
physical_bridge: {get_input: neutron_physical_bridge}
|
||||
public_interface: {get_input: neutron_public_interface}
|
||||
service-password: {get_input: neutron_password}
|
||||
admin-password: {get_input: admin_password}
|
||||
rabbit:
|
||||
host: {get_input: rabbit_host}
|
||||
username: {get_input: rabbit_username}
|
||||
password: {get_input: rabbit_password}
|
||||
live-update:
|
||||
host: {get_input: live_update_host}
|
||||
username: {get_input: live_update_username}
|
||||
password: {get_input: live_update_password}
|
||||
tenant-name: {get_input: live_update_tenant_name}
|
||||
base_image_id: {get_input: nova_image}
|
||||
live_update_image_id: {get_input: live_update_compute_image}
|
||||
ntp:
|
||||
servers:
|
||||
- {server: {get_input: ntp_server}, fudge: "stratum 0"}
|
||||
|
||||
NovaComputeDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
signal_transport: NO_SIGNAL
|
||||
config: {get_resource: NovaComputeConfig}
|
||||
server: {get_resource: NovaCompute}
|
||||
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: [NovaCompute, 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_password: {get_param: NeutronPassword}
|
||||
admin_password: {get_param: AdminPassword}
|
||||
rabbit_host: {get_param: RabbitHost}
|
||||
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: Image}
|
||||
live_update_image_id: {get_param: LiveUpdateComputeImage}
|
||||
ntp_server: {get_param: NtpServer}
|
||||
|
||||
NovaComputePassthrough:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config}
|
||||
|
||||
NovaComputePassthroughSpecific:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config_specific}
|
||||
|
||||
NovaComputePassthroughDeployment:
|
||||
depends_on: [NovaComputeDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: NovaComputePassthrough}
|
||||
server: {get_resource: NovaCompute}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config: {get_param: ExtraConfig}
|
||||
|
||||
NovaComputePassthroughDeploymentSpecific:
|
||||
depends_on: [NovaComputePassthroughDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: NovaComputePassthroughSpecific}
|
||||
server: {get_resource: NovaCompute}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config_specific: {get_param: NovaComputeExtraConfig}
|
||||
|
||||
outputs:
|
||||
ip_address:
|
||||
description: IP address of the server in the ctlplane network
|
||||
value: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [NovaCompute, name]}
|
||||
hosts_entry:
|
||||
description: >
|
||||
Server's IP address and hostname in the /etc/hosts format
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP HOST HOST.novalocal"
|
||||
params:
|
||||
IP: {get_attr: [NovaCompute, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [NovaCompute, name]}
|
||||
nova_server_resource:
|
||||
description: Heat resource handle for the Nova compute server
|
||||
value:
|
||||
{get_resource: NovaCompute}
|
825
controller.yaml
825
controller.yaml
@ -1,38 +1,102 @@
|
||||
description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
|
||||
server,Dedicated RabbitMQ Server
|
||||
heat_template_version: 2013-05-23
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
OpenStack control plane node. Can be wrapped in a ResourceGroup for scaling.
|
||||
|
||||
parameters:
|
||||
AdminPassword:
|
||||
default: unset
|
||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||
type: string
|
||||
hidden: true
|
||||
AdminToken:
|
||||
type: string
|
||||
BootstrapDumpPassword:
|
||||
default: ''
|
||||
description: Password to use for mysqldump from Bootstrap Host
|
||||
default: unset
|
||||
description: The keystone auth secret.
|
||||
type: string
|
||||
hidden: true
|
||||
BootstrapHost:
|
||||
default: ''
|
||||
description: Load mysqldump from this Host
|
||||
type: string
|
||||
BootstrapRootPassword:
|
||||
default: ''
|
||||
description: Root password for localhost access after bootstrap
|
||||
CeilometerMeteringSecret:
|
||||
default: unset
|
||||
description: Secret shared by the ceilometer services.
|
||||
type: string
|
||||
hidden: true
|
||||
BootstrapSlavePassword:
|
||||
default: ''
|
||||
description: Password to use with BootstrapSlaveUser
|
||||
CeilometerPassword:
|
||||
default: unset
|
||||
description: The password for the ceilometer service account.
|
||||
type: string
|
||||
hidden: true
|
||||
BootstrapSlaveUser:
|
||||
default: ''
|
||||
description: User to use for replication from bootstrap host
|
||||
CinderISCSIHelper:
|
||||
default: tgtadm
|
||||
description: The iSCSI helper to use with cinder.
|
||||
type: string
|
||||
controllerImage:
|
||||
type: string
|
||||
GlanceDBPassword:
|
||||
description: Password for connecting to glance database
|
||||
CinderLVMLoopDeviceSize:
|
||||
default: 5000
|
||||
description: The size of the loopback file used by the cinder LVM driver.
|
||||
type: number
|
||||
CinderPassword:
|
||||
default: unset
|
||||
description: The password for the cinder service account, used by cinder-api.
|
||||
type: string
|
||||
hidden: true
|
||||
CloudName:
|
||||
default: ''
|
||||
description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
|
||||
type: string
|
||||
ControllerExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Controller specific configuration to inject into the cluster. Same
|
||||
structure as ExtraConfig.
|
||||
type: json
|
||||
ControlVirtualInterface:
|
||||
default: 'br-ex'
|
||||
description: Interface where virtual ip will be assigned.
|
||||
type: string
|
||||
Debug:
|
||||
default: ''
|
||||
description: Set to True to enable debugging on all services.
|
||||
type: string
|
||||
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
|
||||
Flavor:
|
||||
default: baremetal
|
||||
description: Flavor for control nodes to request when deploying.
|
||||
type: string
|
||||
GlanceNotifierStrategy:
|
||||
description: Strategy to use for Glance notification queue
|
||||
type: string
|
||||
@ -41,8 +105,22 @@ parameters:
|
||||
description: The filepath of the file to use for logging messages from Glance.
|
||||
type: string
|
||||
default: ''
|
||||
HeatDBPassword:
|
||||
description: Password for accessing Heat database.
|
||||
GlancePassword:
|
||||
default: unset
|
||||
description: The password for the glance service account, used by the glance services.
|
||||
type: string
|
||||
hidden: true
|
||||
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
|
||||
HeatPassword:
|
||||
default: unset
|
||||
description: The password for the Heat service account, used by the Heat services.
|
||||
type: string
|
||||
hidden: true
|
||||
HeatStackDomainAdminPassword:
|
||||
@ -50,168 +128,589 @@ parameters:
|
||||
type: string
|
||||
default: ''
|
||||
hidden: true
|
||||
InstanceType:
|
||||
default: baremetal
|
||||
description: Use this flavor
|
||||
Image:
|
||||
type: string
|
||||
default: overcloud-control
|
||||
ImageUpdatePolicy:
|
||||
default: 'REBUILD_PRESERVE_EPHEMERAL'
|
||||
description: What policy to use when reconstructing instances. REBUILD for rebuilds, REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
|
||||
type: string
|
||||
KeyName:
|
||||
default: default
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
KeystoneDBPassword:
|
||||
description: Password for connecting to keystone
|
||||
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
|
||||
hidden: true
|
||||
NeutronDBPassword:
|
||||
description: Password for connecting to neutron database
|
||||
MysqlClusterUniquePart:
|
||||
description: A unique identifier of the MySQL cluster the controller is in.
|
||||
type: string
|
||||
default: 'unset' # Has to be here because of the ignored empty value bug
|
||||
constraints:
|
||||
- length: {min: 4, max: 10}
|
||||
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
|
||||
MysqlRootPassword:
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronInterfaces:
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
NeutronBridgeMappings:
|
||||
description: >
|
||||
The OVS logical->physical bridge mappings to use. See the Neutron
|
||||
documentation for details. Defaults to mapping br-ex - the external
|
||||
bridge on hosts - to a physical name 'datacentre' which can be used
|
||||
to create provider networks (and we use this for the default floating
|
||||
network) - if changing this either use different post-install network
|
||||
scripts or be sure to keep 'datacentre' as a mapping network name.
|
||||
type: string
|
||||
default: ""
|
||||
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
|
||||
NeutronEnableTunnelling:
|
||||
type: string
|
||||
default: "True"
|
||||
NeutronFlatNetworks:
|
||||
type: string
|
||||
default: ''
|
||||
description: If set, flat networks to configure in neutron plugins.
|
||||
NeutronNetworkType:
|
||||
default: 'gre'
|
||||
description: The tenant network type for Neutron, either gre or vxlan.
|
||||
type: string
|
||||
NeutronNetworkVLANRanges:
|
||||
default: 'datacentre'
|
||||
description: >
|
||||
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
|
||||
Neutron documentation for permitted values. Defaults to permitting any
|
||||
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
|
||||
type: string
|
||||
NeutronPassword:
|
||||
default: unset
|
||||
description: The password for the neutron service account, used by neutron agents.
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronPublicInterface:
|
||||
default: eth0
|
||||
description: What interface to bridge onto br-ex for network nodes.
|
||||
type: string
|
||||
NovaDBPassword:
|
||||
description: Password for connecting to nova database
|
||||
NeutronPublicInterfaceTag:
|
||||
default: ''
|
||||
description: >
|
||||
VLAN tag for creating a public VLAN. The tag will be used to
|
||||
create an access port on the exterior bridge for each control plane node,
|
||||
and that port will be given the IP address returned by neutron from the
|
||||
public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
|
||||
overcloud.yaml to include the deployment of VLAN ports to the control
|
||||
plane.
|
||||
type: string
|
||||
NeutronPublicInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: A custom default route for the NeutronPublicInterface.
|
||||
type: string
|
||||
NeutronPublicInterfaceIP:
|
||||
default: ''
|
||||
description: A custom IP address to put onto the NeutronPublicInterface.
|
||||
type: string
|
||||
NeutronPublicInterfaceRawDevice:
|
||||
default: ''
|
||||
description: If set, the public interface is a vlan with this device as the raw device.
|
||||
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
|
||||
NovaPassword:
|
||||
default: unset
|
||||
description: The password for the nova service account, used by nova-api.
|
||||
type: string
|
||||
hidden: true
|
||||
NovaInterfaces:
|
||||
default: eth0
|
||||
NtpServer:
|
||||
type: string
|
||||
RabbitMQPassword:
|
||||
description: Password for RabbitMQ
|
||||
default: ''
|
||||
PublicVirtualInterface:
|
||||
default: 'br-ex'
|
||||
description: >
|
||||
Specifies the interface where the public-facing virtual ip will be assigned.
|
||||
This should be int_public when a VLAN is being used.
|
||||
type: string
|
||||
PublicVirtualIP:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
RabbitCookie:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
hidden: true
|
||||
RabbitPassword:
|
||||
default: guest
|
||||
description: The password for RabbitMQ
|
||||
type: string
|
||||
hidden: true
|
||||
RabbitUserName:
|
||||
default: guest
|
||||
description: The username for RabbitMQ
|
||||
type: string
|
||||
ServicePassword:
|
||||
description: admin_password for setting up auth in nova.
|
||||
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
|
||||
SSLCACertificate:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate authority file.
|
||||
type: string
|
||||
SSLCertificate:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
|
||||
type: string
|
||||
hidden: true
|
||||
SSLKey:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
|
||||
type: string
|
||||
hidden: true
|
||||
VirtualIP:
|
||||
type: string
|
||||
default: '' # Has to be here because of the ignored empty value bug
|
||||
|
||||
|
||||
resources:
|
||||
AccessPolicy:
|
||||
|
||||
Controller:
|
||||
type: OS::Nova::Server
|
||||
properties:
|
||||
AllowedResources:
|
||||
- controller0
|
||||
type: OS::Heat::AccessPolicy
|
||||
controller0Key:
|
||||
image: {get_param: Image}
|
||||
image_update_policy: {get_param: ImageUpdatePolicy}
|
||||
flavor: {get_param: Flavor}
|
||||
key_name: {get_param: KeyName}
|
||||
networks:
|
||||
- network: ctlplane
|
||||
user_data_format: SOFTWARE_CONFIG
|
||||
|
||||
ControllerConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
UserName:
|
||||
get_resource: User
|
||||
type: AWS::IAM::AccessKey
|
||||
User:
|
||||
group: os-apply-config
|
||||
config:
|
||||
admin-password: {get_param: AdminPassword}
|
||||
admin-token: {get_param: AdminToken}
|
||||
bootstack:
|
||||
public_interface_ip: {get_param: NeutronPublicInterfaceIP}
|
||||
bootstrap_host:
|
||||
nodeid: {get_input: bootstack_nodeid}
|
||||
database:
|
||||
host: &database_host
|
||||
{get_param: VirtualIP}
|
||||
cinder:
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://cinder:unset@
|
||||
- *database_host
|
||||
- /cinder
|
||||
debug: {get_param: Debug}
|
||||
volume_size_mb: {get_param: CinderLVMLoopDeviceSize}
|
||||
service-password: {get_param: CinderPassword}
|
||||
iscsi-helper: {get_param: CinderISCSIHelper}
|
||||
controller-address: {get_input: controller_host}
|
||||
corosync:
|
||||
bindnetaddr: {get_input: controller_host}
|
||||
mcastport: 5577
|
||||
pacemaker:
|
||||
stonith_enabled : false
|
||||
recheck_interval : 5
|
||||
quorum_policy : ignore
|
||||
db-password: unset
|
||||
glance:
|
||||
registry:
|
||||
host: {get_input: controller_virtual_ip}
|
||||
backend: swift
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://glance:unset@
|
||||
- *database_host
|
||||
- /glance
|
||||
debug: {get_param: Debug}
|
||||
host: {get_input: controller_virtual_ip}
|
||||
port: {get_param: GlancePort}
|
||||
protocol: {get_param: GlanceProtocol}
|
||||
service-password: {get_param: GlancePassword}
|
||||
swift-store-user: service:glance
|
||||
swift-store-key: {get_param: GlancePassword}
|
||||
notifier-strategy: {get_param: GlanceNotifierStrategy}
|
||||
log-file: {get_param: GlanceLogFile}
|
||||
heat:
|
||||
admin_password: {get_param: HeatPassword}
|
||||
admin_tenant_name: service
|
||||
admin_user: heat
|
||||
auth_encryption_key: unset___________
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://heat:unset@
|
||||
- *database_host
|
||||
- /heat
|
||||
debug: {get_param: Debug}
|
||||
stack_domain_admin_password: {get_param: 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}
|
||||
keystone:
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://keystone:unset@
|
||||
- *database_host
|
||||
- /keystone
|
||||
debug: {get_param: Debug}
|
||||
host: {get_input: controller_virtual_ip}
|
||||
ca_certificate: {get_param: KeystoneCACertificate}
|
||||
signing_key: {get_param: KeystoneSigningKey}
|
||||
signing_certificate: {get_param: KeystoneSigningCertificate}
|
||||
mysql:
|
||||
innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
|
||||
local_bind: true
|
||||
root-password: {get_param: MysqlRootPassword}
|
||||
cluster_name:
|
||||
str_replace:
|
||||
template: tripleo-CLUSTER
|
||||
params:
|
||||
CLUSTER: {get_param: MysqlClusterUniquePart}
|
||||
neutron:
|
||||
debug: {get_param: Debug}
|
||||
flat-networks: {get_param: NeutronFlatNetworks}
|
||||
host: {get_input: controller_virtual_ip}
|
||||
metadata_proxy_shared_secret: unset
|
||||
ovs:
|
||||
enable_tunneling: {get_input: neutron_enable_tunneling}
|
||||
local_ip: {get_input: controller_host}
|
||||
network_vlan_ranges: {get_param: NeutronNetworkVLANRanges}
|
||||
bridge_mappings: {get_param: NeutronBridgeMappings}
|
||||
public_interface: {get_param: NeutronPublicInterface}
|
||||
public_interface_raw_device: {get_param: NeutronPublicInterfaceRawDevice}
|
||||
public_interface_route: {get_param: NeutronPublicInterfaceDefaultRoute}
|
||||
public_interface_tag: {get_param: NeutronPublicInterfaceTag}
|
||||
physical_bridge: br-ex
|
||||
tenant_network_type: {get_param: NeutronNetworkType}
|
||||
tunnel_types: {get_param: NeutronTunnelTypes}
|
||||
ovs_db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://neutron:unset@
|
||||
- *database_host
|
||||
- /ovs_neutron?charset=utf8
|
||||
service-password: {get_param: NeutronPassword}
|
||||
dnsmasq-options: {get_param: NeutronDnsmasqOptions}
|
||||
ceilometer:
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://ceilometer:unset@
|
||||
- *database_host
|
||||
- /ceilometer
|
||||
debug: {get_param: Debug}
|
||||
metering_secret: {get_param: CeilometerMeteringSecret}
|
||||
service-password: {get_param: CeilometerPassword}
|
||||
snmpd:
|
||||
export_MIB: UCD-SNMP-MIB
|
||||
readonly_user_name: {get_param: SnmpdReadonlyUserName}
|
||||
readonly_user_password: {get_param: SnmpdReadonlyUserPassword}
|
||||
nova:
|
||||
compute_driver: libvirt.LibvirtDriver
|
||||
db:
|
||||
list_join:
|
||||
- ''
|
||||
- - mysql://nova:unset@
|
||||
- *database_host
|
||||
- /nova
|
||||
default_floating_pool:
|
||||
ext-net
|
||||
host: {get_input: controller_virtual_ip}
|
||||
metadata-proxy: true
|
||||
service-password: {get_param: NovaPassword}
|
||||
rabbit:
|
||||
host: {get_input: controller_virtual_ip}
|
||||
username: {get_param: RabbitUserName}
|
||||
password: {get_param: RabbitPassword}
|
||||
cookie: {get_param: RabbitCookie}
|
||||
ntp:
|
||||
servers:
|
||||
- {server: {get_param: NtpServer}, fudge: "stratum 0"}
|
||||
virtual_interfaces:
|
||||
instances:
|
||||
- vrrp_instance_name: VI_CONTROL
|
||||
virtual_router_id: 51
|
||||
keepalive_interface: {get_param: ControlVirtualInterface}
|
||||
priority: 101
|
||||
virtual_ips:
|
||||
- ip: {get_param: VirtualIP}
|
||||
interface: {get_param: ControlVirtualInterface}
|
||||
- vrrp_instance_name: VI_PUBLIC
|
||||
virtual_router_id: 52
|
||||
keepalive_interface: {get_param: PublicVirtualInterface}
|
||||
priority: 101
|
||||
virtual_ips:
|
||||
- ip: {get_param: PublicVirtualIP}
|
||||
interface: {get_param: PublicVirtualInterface}
|
||||
vrrp_sync_groups:
|
||||
- name: VG1
|
||||
members:
|
||||
- VI_CONTROL
|
||||
- VI_PUBLIC
|
||||
keepalived:
|
||||
keepalive_interface: {get_param: PublicVirtualInterface}
|
||||
priority: 101
|
||||
virtual_ips:
|
||||
-
|
||||
ip: {get_param: VirtualIP}
|
||||
interface: {get_param: ControlVirtualInterface}
|
||||
-
|
||||
ip: {get_param: PublicVirtualIP}
|
||||
interface: {get_param: PublicVirtualInterface}
|
||||
haproxy:
|
||||
net_binds:
|
||||
- ip: {get_param: VirtualIP}
|
||||
services:
|
||||
- name: keystone_admin
|
||||
port: 35357
|
||||
net_binds: &public_binds
|
||||
- ip: {get_param: VirtualIP}
|
||||
- ip: {get_param: PublicVirtualIP}
|
||||
- name: keystone_public
|
||||
port: 5000
|
||||
net_binds: *public_binds
|
||||
- name: horizon
|
||||
port: 80
|
||||
net_binds: *public_binds
|
||||
- name: neutron
|
||||
port: 9696
|
||||
net_binds: *public_binds
|
||||
- name: cinder
|
||||
port: 8776
|
||||
net_binds: *public_binds
|
||||
- name: glance_api
|
||||
port: 9292
|
||||
net_binds: *public_binds
|
||||
- name: glance_registry
|
||||
port: 9191
|
||||
net_binds: *public_binds
|
||||
- name: heat_api
|
||||
port: 8004
|
||||
net_binds: *public_binds
|
||||
- name: heat_cloudwatch
|
||||
port: 8003
|
||||
net_binds: *public_binds
|
||||
- name: heat_cfn
|
||||
port: 8000
|
||||
net_binds: *public_binds
|
||||
- name: mysql
|
||||
port: 3306
|
||||
extra_server_params:
|
||||
- backup
|
||||
options:
|
||||
- timeout client 0
|
||||
- timeout server 0
|
||||
- name: nova_ec2
|
||||
port: 8773
|
||||
- name: nova_osapi
|
||||
port: 8774
|
||||
net_binds: *public_binds
|
||||
- name: nova_metadata
|
||||
port: 8775
|
||||
net_binds: *public_binds
|
||||
- name: ceilometer
|
||||
port: 8777
|
||||
net_binds: *public_binds
|
||||
- name: swift_proxy_server
|
||||
port: 8080
|
||||
net_binds: *public_binds
|
||||
- name: rabbitmq
|
||||
port: 5672
|
||||
options:
|
||||
- timeout client 0
|
||||
- timeout server 0
|
||||
|
||||
ControllerPassthroughConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
Policies:
|
||||
- get_resource: AccessPolicy
|
||||
type: AWS::IAM::User
|
||||
controller0:
|
||||
metadata:
|
||||
admin-password:
|
||||
get_param: ServicePassword
|
||||
admin-token:
|
||||
get_param: AdminToken
|
||||
mysql:
|
||||
create-users:
|
||||
- database: keystone
|
||||
username: keystone
|
||||
password: {get_param: KeystoneDBPassword}
|
||||
- database: heat
|
||||
username: heat
|
||||
password: {get_param: HeatDBPassword}
|
||||
- database: glance
|
||||
username: glance
|
||||
password: {get_param: GlanceDBPassword}
|
||||
- database: nova
|
||||
username: nova
|
||||
password: {get_param: NovaDBPassword}
|
||||
- database: neutron
|
||||
username: neutron
|
||||
password: {get_param: NeutronDBPassword}
|
||||
glance:
|
||||
db:
|
||||
Fn::Join:
|
||||
- ''
|
||||
- - 'mysql://glance:'
|
||||
- {get_param: GlanceDBPassword}
|
||||
- '@127.0.0.1/glance'
|
||||
notifier-strategy:
|
||||
get_param: GlanceNotifierStrategy
|
||||
log-file:
|
||||
get_param: GlanceLogFile
|
||||
heat:
|
||||
db:
|
||||
Fn::Join:
|
||||
- ''
|
||||
- - 'mysql://heat:'
|
||||
- {get_param: HeatDBPassword}
|
||||
- '@127.0.0.1/heat'
|
||||
access_key_id:
|
||||
get_resource: controller0Key
|
||||
refresh:
|
||||
- resource: controller0
|
||||
secret_key:
|
||||
get_attr:
|
||||
- controller0Key
|
||||
- SecretAccessKey
|
||||
stack:
|
||||
name:
|
||||
get_param: AWS::StackName
|
||||
region:
|
||||
get_param: AWS::Region
|
||||
auth_encryption_key: unset
|
||||
stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
|
||||
interfaces:
|
||||
control:
|
||||
get_param: NovaInterfaces
|
||||
keystone:
|
||||
host:
|
||||
'127.0.0.1'
|
||||
db:
|
||||
Fn::Join:
|
||||
- ''
|
||||
- - 'mysql://keystone:'
|
||||
- {get_param: KeystoneDBPassword}
|
||||
- '@127.0.0.1/keystone'
|
||||
nova:
|
||||
db:
|
||||
Fn::Join:
|
||||
- ''
|
||||
- - 'mysql://nova:'
|
||||
- {get_param: NovaDBPassword}
|
||||
- '@127.0.0.1/nova'
|
||||
neutron:
|
||||
host:
|
||||
'127.0.0.1'
|
||||
ovs_db:
|
||||
Fn::Join:
|
||||
- ''
|
||||
- - 'mysql://neutron:'
|
||||
- {get_param: NeutronDBPassword}
|
||||
- '@127.0.0.1/ovs_neutron'
|
||||
rabbit:
|
||||
host:
|
||||
'127.0.0.1'
|
||||
username:
|
||||
get_param: RabbitUserName
|
||||
password:
|
||||
get_param: RabbitPassword
|
||||
users:
|
||||
username:
|
||||
get_param: RabbitUserName
|
||||
password:
|
||||
get_param: RabbitPassword
|
||||
cookie:
|
||||
get_attr:
|
||||
- RabbitCookie
|
||||
- value
|
||||
service-password:
|
||||
get_param: ServicePassword
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config}
|
||||
|
||||
ControllerPassthroughConfigSpecific:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
ImageId:
|
||||
get_param: controllerImage
|
||||
InstanceType:
|
||||
get_param: InstanceType
|
||||
KeyName:
|
||||
get_param: KeyName
|
||||
type: AWS::EC2::Instance
|
||||
group: os-apply-config
|
||||
config: {get_input: passthrough_config_specific}
|
||||
|
||||
ControllerDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
signal_transport: NO_SIGNAL
|
||||
config: {get_resource: ControllerConfig}
|
||||
server: {get_resource: Controller}
|
||||
input_values:
|
||||
bootstack_nodeid: {get_attr: [Controller, name]}
|
||||
controller_host: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
controller_virtual_ip: {get_param: VirtualIP}
|
||||
neutron_enable_tunneling: {get_param: NeutronEnableTunnelling}
|
||||
heat.watch_server_url:
|
||||
list_join:
|
||||
- ''
|
||||
- - 'http://'
|
||||
- {get_param: VirtualIP}
|
||||
- ':8003'
|
||||
heat.metadata_server_url:
|
||||
list_join:
|
||||
- ''
|
||||
- - 'http://'
|
||||
- {get_param: VirtualIP}
|
||||
- ':8000'
|
||||
heat.waitcondition_server_url:
|
||||
list_join:
|
||||
- ''
|
||||
- - 'http://'
|
||||
- {get_param: VirtualIP}
|
||||
- ':8000/v1/waitcondition'
|
||||
|
||||
SSLConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
ssl:
|
||||
ca_certificate: {get_input: ssl_ca_certificate}
|
||||
stunnel:
|
||||
cert: {get_input: ssl_certificate}
|
||||
key: {get_input: ssl_key}
|
||||
cacert: {get_input: ssl_ca_certificate}
|
||||
ports:
|
||||
- name: 'ec2'
|
||||
accept: 13773
|
||||
connect: 8773
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'image'
|
||||
accept: 13292
|
||||
connect: 9292
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'identity'
|
||||
accept: 13000
|
||||
connect: 5000
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'network'
|
||||
accept: 13696
|
||||
connect: 9696
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'compute'
|
||||
accept: 13774
|
||||
connect: 8774
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'swift-proxy'
|
||||
accept: 13080
|
||||
connect: 8080
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'cinder'
|
||||
accept: 13776
|
||||
connect: 8776
|
||||
connect_host: {get_input: controller_host}
|
||||
- name: 'ceilometer'
|
||||
accept: 13777
|
||||
connect: 8777
|
||||
connect_host: {get_input: controller_host}
|
||||
|
||||
ControllerSSLDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: SSLConfig}
|
||||
server: {get_resource: Controller}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
controller_host: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
ssl_certificate: {get_param: SSLCertificate}
|
||||
ssl_key: {get_param: SSLKey}
|
||||
ssl_ca_certificate: {get_param: SSLCACertificate}
|
||||
|
||||
ControllerPassthroughDeployment:
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: ControllerPassthroughConfig}
|
||||
server: {get_resource: Controller}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config: {get_param: ExtraConfig}
|
||||
|
||||
ControllerPassthroughSpecificDeployment:
|
||||
depends_on: [ControllerPassthroughDeployment]
|
||||
type: OS::Heat::StructuredDeployment
|
||||
properties:
|
||||
config: {get_resource: ControllerPassthroughConfigSpecific}
|
||||
server: {get_resource: Controller}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
passthrough_config_specific: {get_param: ControllerExtraConfig}
|
||||
|
||||
|
||||
outputs:
|
||||
ip_address:
|
||||
description: IP address of the server in the ctlplane network
|
||||
value: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
hostname:
|
||||
description: Hostname of the server
|
||||
value: {get_attr: [Controller, name]}
|
||||
corosync_node:
|
||||
description: >
|
||||
Node object in the format {ip: ..., name: ...} format that the corosync
|
||||
element expects
|
||||
value:
|
||||
ip: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
name: {get_attr: [Controller, name]}
|
||||
hosts_entry:
|
||||
description: >
|
||||
Server's IP address and hostname in the /etc/hosts format
|
||||
value:
|
||||
str_replace:
|
||||
template: IP HOST HOST.novalocal CLOUDNAME
|
||||
params:
|
||||
IP: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
HOST: {get_attr: [Controller, name]}
|
||||
CLOUDNAME: {get_param: CloudName}
|
||||
nova_server_resource:
|
||||
description: Heat resource handle for the Nova compute server
|
||||
value:
|
||||
{get_resource: Controller}
|
||||
swift_device:
|
||||
description: Swift device formatted for swift-ring-builder
|
||||
value:
|
||||
str_replace:
|
||||
template: 'r1z1-IP:%PORT%/d1'
|
||||
params:
|
||||
IP: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
swift_proxy_memcache:
|
||||
description: Swift proxy-memcache value
|
||||
value:
|
||||
str_replace:
|
||||
template: "IP:11211"
|
||||
params:
|
||||
IP: {get_attr: [Controller, networks, ctlplane, 0]}
|
||||
|
3
overcloud-resource-registry.yaml
Normal file
3
overcloud-resource-registry.yaml
Normal file
@ -0,0 +1,3 @@
|
||||
resource_registry:
|
||||
OS::TripleO::Compute: compute.yaml
|
||||
OS::TripleO::Controller: controller.yaml
|
677
overcloud-without-mergepy.yaml
Normal file
677
overcloud-without-mergepy.yaml
Normal file
@ -0,0 +1,677 @@
|
||||
heat_template_version: 2014-10-16
|
||||
|
||||
description: >
|
||||
Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
|
||||
server,Dedicated RabbitMQ Server,Group of Nova Computes
|
||||
|
||||
|
||||
# TODO(shadower): we should probably use the parameter groups to put
|
||||
# some order in here.
|
||||
parameters:
|
||||
|
||||
# Common parameters (not specific to a role)
|
||||
AdminPassword:
|
||||
default: unset
|
||||
description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
||||
type: string
|
||||
hidden: true
|
||||
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
|
||||
CloudName:
|
||||
default: ''
|
||||
description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
|
||||
type: string
|
||||
ControlFixedIPs:
|
||||
default: []
|
||||
description: Should be used for arbitrary ips.
|
||||
type: json
|
||||
Debug:
|
||||
default: ''
|
||||
description: Set to True to enable debugging on all services.
|
||||
type: string
|
||||
DefaultSignalTransport:
|
||||
default: CFN_SIGNAL
|
||||
description: Transport to use for software-config signals.
|
||||
type: string
|
||||
constraints:
|
||||
- allowed_values: [ CFN_SIGNAL, HEAT_SIGNAL, NO_SIGNAL ]
|
||||
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
|
||||
KeyName:
|
||||
default: default
|
||||
description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
||||
type: string
|
||||
NeutronBridgeMappings:
|
||||
description: >
|
||||
The OVS logical->physical bridge mappings to use. See the Neutron
|
||||
documentation for details. Defaults to mapping br-ex - the external
|
||||
bridge on hosts - to a physical name 'datacentre' which can be used
|
||||
to create provider networks (and we use this for the default floating
|
||||
network) - if changing this either use different post-install network
|
||||
scripts or be sure to keep 'datacentre' as a mapping network name.
|
||||
type: string
|
||||
default: "datacentre:br-ex"
|
||||
NeutronControlPlaneID:
|
||||
default: ''
|
||||
type: string
|
||||
description: Neutron ID for ctlplane network.
|
||||
NeutronEnableTunnelling:
|
||||
type: string
|
||||
default: "True"
|
||||
NeutronFlatNetworks:
|
||||
type: string
|
||||
default: 'datacentre'
|
||||
description: >
|
||||
If set, flat networks to configure in neutron plugins. Defaults to
|
||||
'datacentre' to permit external network creation.
|
||||
NeutronNetworkType:
|
||||
default: 'gre'
|
||||
description: The tenant network type for Neutron, either gre or vxlan.
|
||||
type: string
|
||||
NeutronPassword:
|
||||
default: unset
|
||||
description: The password for the neutron service account, used by neutron agents.
|
||||
type: string
|
||||
hidden: true
|
||||
NeutronPublicInterface:
|
||||
default: eth0
|
||||
description: What interface to bridge onto br-ex for network nodes.
|
||||
type: string
|
||||
NeutronPublicInterfaceTag:
|
||||
default: ''
|
||||
description: >
|
||||
VLAN tag for creating a public VLAN. The tag will be used to
|
||||
create an access port on the exterior bridge for each control plane node,
|
||||
and that port will be given the IP address returned by neutron from the
|
||||
public network. Set CONTROLEXTRA=overcloud-vlan-port.yaml when compiling
|
||||
overcloud.yaml to include the deployment of VLAN ports to the control
|
||||
plane.
|
||||
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
|
||||
NovaPassword:
|
||||
default: unset
|
||||
description: The password for the nova service account, used by nova-api.
|
||||
type: string
|
||||
hidden: true
|
||||
NtpServer:
|
||||
type: string
|
||||
default: ''
|
||||
PublicVirtualFixedIPs:
|
||||
default: []
|
||||
description: >
|
||||
Control the IP allocation for the PublicVirtualInterface port. E.g.
|
||||
[{'ip_address':'1.2.3.4'}]
|
||||
type: json
|
||||
PublicVirtualNetwork:
|
||||
default: 'ctlplane'
|
||||
type: string
|
||||
description: >
|
||||
Neutron network to allocate public virtual IP port on.
|
||||
RabbitCookieSalt:
|
||||
type: string
|
||||
default: unset
|
||||
description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
|
||||
RabbitUserName:
|
||||
default: guest
|
||||
description: The username for RabbitMQ
|
||||
type: string
|
||||
RabbitPassword:
|
||||
default: guest
|
||||
description: The password for RabbitMQ
|
||||
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
|
||||
|
||||
|
||||
# Controller-specific params
|
||||
AdminToken:
|
||||
default: unset
|
||||
description: The keystone auth secret.
|
||||
type: string
|
||||
hidden: true
|
||||
CinderLVMLoopDeviceSize:
|
||||
default: 5000
|
||||
description: The size of the loopback file used by the cinder LVM driver.
|
||||
type: number
|
||||
CinderPassword:
|
||||
default: unset
|
||||
description: The password for the cinder service account, used by cinder-api.
|
||||
type: string
|
||||
hidden: true
|
||||
CinderISCSIHelper:
|
||||
default: tgtadm
|
||||
description: The iSCSI helper to use with cinder.
|
||||
type: string
|
||||
ControllerCount:
|
||||
type: number
|
||||
default: 1
|
||||
controllerExtraConfig:
|
||||
default: {}
|
||||
description: |
|
||||
Controller specific configuration to inject into the cluster. Same
|
||||
structure as ExtraConfig.
|
||||
type: json
|
||||
controllerImage:
|
||||
type: string
|
||||
default: overcloud-control
|
||||
OvercloudControlFlavor:
|
||||
default: baremetal
|
||||
description: Flavor for control nodes to request when deploying.
|
||||
type: string
|
||||
ControlVirtualInterface:
|
||||
default: 'br-ex'
|
||||
description: Interface where virtual ip will be assigned.
|
||||
type: string
|
||||
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": "force_config_drive",
|
||||
"value": "always"
|
||||
}
|
||||
]
|
||||
},
|
||||
{"section": "cells",
|
||||
"values":
|
||||
[{"option": "driver",
|
||||
"value": "nova.cells.rpc_driver.CellsRPCDriver"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
type: json
|
||||
GlanceLogFile:
|
||||
description: The filepath of the file to use for logging messages from Glance.
|
||||
type: string
|
||||
default: ''
|
||||
GlanceNotifierStrategy:
|
||||
description: Strategy to use for Glance notification queue
|
||||
type: string
|
||||
default: noop
|
||||
GlancePassword:
|
||||
default: unset
|
||||
description: The password for the glance service account, used by the glance services.
|
||||
type: string
|
||||
hidden: true
|
||||
HeatPassword:
|
||||
default: unset
|
||||
description: The password for the Heat service account, used by the Heat services.
|
||||
type: string
|
||||
hidden: true
|
||||
HeatStackDomainAdminPassword:
|
||||
description: Password for heat_domain_admin user.
|
||||
type: string
|
||||
default: ''
|
||||
hidden: true
|
||||
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
|
||||
hidden: true
|
||||
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
|
||||
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 tunnel overhead.
|
||||
type: string
|
||||
NeutronPublicInterfaceDefaultRoute:
|
||||
default: ''
|
||||
description: A custom default route for the NeutronPublicInterface.
|
||||
type: string
|
||||
NeutronPublicInterfaceIP:
|
||||
default: ''
|
||||
description: A custom IP address to put onto the NeutronPublicInterface.
|
||||
type: string
|
||||
NeutronPublicInterfaceRawDevice:
|
||||
default: ''
|
||||
description: If set, the public interface is a vlan with this device as the raw device.
|
||||
type: string
|
||||
PublicVirtualInterface:
|
||||
default: 'br-ex'
|
||||
description: >
|
||||
Specifies the interface where the public-facing virtual ip will be assigned.
|
||||
This should be int_public when a VLAN is being used.
|
||||
type: string
|
||||
SSLCertificate:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
|
||||
type: string
|
||||
hidden: true
|
||||
SSLKey:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate .key file for encrypting SSL endpoints.
|
||||
type: string
|
||||
hidden: true
|
||||
SSLCACertificate:
|
||||
default: ''
|
||||
description: If set, the contents of an SSL certificate authority file.
|
||||
type: string
|
||||
SwiftHashSuffix:
|
||||
default: unset
|
||||
description: A random string to be used as a salt when hashing to determine mappings in the ring.
|
||||
type: string
|
||||
hidden: true
|
||||
SwiftPassword:
|
||||
default: unset
|
||||
description: The password for the swift service account, used by the swift proxy services.
|
||||
type: string
|
||||
hidden: true
|
||||
SwiftPartPower:
|
||||
default: 10
|
||||
description: Partition Power to use when building Swift rings
|
||||
type: number
|
||||
SwiftReplicas:
|
||||
type: number
|
||||
default: 1
|
||||
description: How many replicas to use in the swift rings.
|
||||
|
||||
# Compute-specific params
|
||||
CeilometerComputeAgent:
|
||||
description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
|
||||
type: string
|
||||
default: ''
|
||||
constraints:
|
||||
- allowed_values: ['', Present]
|
||||
ComputeCount:
|
||||
type: number
|
||||
default: 1
|
||||
HypervisorNeutronPhysicalBridge:
|
||||
default: 'br-ex'
|
||||
description: >
|
||||
An OVS bridge to create on each hypervisor. This defaults to br-ex the
|
||||
same as the control plane nodes, as we have a uniform configuration of
|
||||
the openvswitch agent. Typically should not need to be changed.
|
||||
type: string
|
||||
HypervisorNeutronPublicInterface:
|
||||
default: 'eth0'
|
||||
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: >
|
||||
The Neutron ML2 and OpenVSwitch vlan mapping range to support. See the
|
||||
Neutron documentation for permitted values. Defaults to permitting any
|
||||
VLAN on the 'datacentre' physical network (See NeutronBridgeMappings).
|
||||
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:
|
||||
default: ''
|
||||
type: string
|
||||
NovaImage:
|
||||
type: string
|
||||
default: overcloud-compute
|
||||
OvercloudComputeFlavor:
|
||||
description: Use this flavor
|
||||
type: string
|
||||
default: baremetal
|
||||
|
||||
|
||||
resources:
|
||||
|
||||
Controller:
|
||||
type: OS::Heat::ResourceGroup
|
||||
properties:
|
||||
count: {get_param: ControllerCount}
|
||||
resource_def:
|
||||
type: OS::TripleO::Controller
|
||||
properties:
|
||||
AdminPassword: {get_param: AdminPassword}
|
||||
AdminToken: {get_param: AdminToken}
|
||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||
CeilometerPassword: {get_param: CeilometerPassword}
|
||||
CinderLVMLoopDeviceSize: {get_param: CinderLVMLoopDeviceSize}
|
||||
CinderPassword: {get_param: CinderPassword}
|
||||
CinderISCSIHelper: {get_param: CinderISCSIHelper}
|
||||
CloudName: {get_param: CloudName}
|
||||
ControlVirtualInterface: {get_param: ControlVirtualInterface}
|
||||
ControllerExtraConfig: {get_param: controllerExtraConfig}
|
||||
ExtraConfig: {get_param: ExtraConfig}
|
||||
Flavor: {get_param: OvercloudControlFlavor}
|
||||
GlancePort: {get_param: GlancePort}
|
||||
GlanceProtocol: {get_param: GlanceProtocol}
|
||||
GlancePassword: {get_param: GlancePassword}
|
||||
GlanceNotifierStrategy: {get_param: GlanceNotifierStrategy}
|
||||
GlanceLogFile: {get_param: GlanceLogFile}
|
||||
HeatPassword: {get_param: HeatPassword}
|
||||
HeatStackDomainAdminPassword: {get_param: HeatStackDomainAdminPassword}
|
||||
Image: {get_param: controllerImage}
|
||||
ImageUpdatePolicy: {get_param: ImageUpdatePolicy}
|
||||
KeyName: {get_param: KeyName}
|
||||
KeystoneCACertificate: {get_param: KeystoneCACertificate}
|
||||
KeystoneSigningCertificate: {get_param: KeystoneSigningCertificate}
|
||||
KeystoneSigningKey: {get_param: KeystoneSigningKey}
|
||||
MysqlClusterUniquePart: {get_attr: [MysqlClusterUniquePart, value]}
|
||||
MysqlInnodbBufferPoolSize: {get_param: MysqlInnodbBufferPoolSize}
|
||||
MysqlRootPassword: {get_attr: [MysqlRootPassword, value]}
|
||||
NeutronPublicInterfaceIP: {get_param: NeutronPublicInterfaceIP}
|
||||
NeutronFlatNetworks: {get_param: NeutronFlatNetworks}
|
||||
NeutronBridgeMappings: {get_param: NeutronBridgeMappings}
|
||||
NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
|
||||
NeutronPublicInterface: {get_param: NeutronPublicInterface}
|
||||
NeutronPublicInterfaceDefaultRoute: {get_param: NeutronPublicInterfaceDefaultRoute}
|
||||
NeutronPublicInterfaceRawDevice: {get_param: NeutronPublicInterfaceRawDevice}
|
||||
NeutronPassword: {get_param: NeutronPassword}
|
||||
NeutronDnsmasqOptions: {get_param: NeutronDnsmasqOptions}
|
||||
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]}
|
||||
SnmpdReadonlyUserName: {get_param: SnmpdReadonlyUserName}
|
||||
SnmpdReadonlyUserPassword: {get_param: SnmpdReadonlyUserPassword}
|
||||
SSLCertificate: {get_param: SSLCertificate}
|
||||
SSLKey: {get_param: SSLKey}
|
||||
SSLCACertificate: {get_param: SSLCACertificate}
|
||||
VirtualIP: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
PublicVirtualIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
|
||||
|
||||
Compute:
|
||||
type: OS::Heat::ResourceGroup
|
||||
properties:
|
||||
count: {get_param: ComputeCount}
|
||||
resource_def:
|
||||
type: OS::TripleO::Compute
|
||||
properties:
|
||||
AdminPassword: {get_param: AdminPassword}
|
||||
CeilometerComputeAgent: {get_param: CeilometerComputeAgent}
|
||||
CeilometerMeteringSecret: {get_param: CeilometerMeteringSecret}
|
||||
CeilometerPassword: {get_param: CeilometerPassword}
|
||||
ExtraConfig: {get_param: ExtraConfig}
|
||||
Flavor: {get_param: OvercloudComputeFlavor}
|
||||
GlanceHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
GlancePort: {get_param: GlancePort}
|
||||
GlanceProtocol: {get_param: GlanceProtocol}
|
||||
Image: {get_param: NovaImage}
|
||||
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}
|
||||
NeutronHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
NeutronNetworkType: {get_param: NeutronNetworkType}
|
||||
NeutronTunnelTypes: {get_param: NeutronTunnelTypes}
|
||||
NeutronNetworkVLANRanges: {get_param: NeutronNetworkVLANRanges}
|
||||
NeutronPassword: {get_param: NeutronPassword}
|
||||
NeutronPhysicalBridge: {get_param: HypervisorNeutronPhysicalBridge}
|
||||
NeutronPublicInterface: {get_param: HypervisorNeutronPublicInterface}
|
||||
NovaApiHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
NovaComputeDriver: {get_param: NovaComputeDriver}
|
||||
NovaComputeExtraConfig: {get_param: NovaComputeExtraConfig}
|
||||
NovaComputeLibvirtType: {get_param: NovaComputeLibvirtType}
|
||||
NovaPublicIP: {get_attr: [PublicVirtualIP, fixed_ips, 0, ip_address]}
|
||||
NovaPassword: {get_param: NovaPassword}
|
||||
NtpServer: {get_param: NtpServer}
|
||||
RabbitHost: {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
RabbitPassword: {get_param: RabbitPassword}
|
||||
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
|
||||
|
||||
allNodesConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
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]}
|
||||
# TODO: ADD BLOCK STORAGE ENTRY HERE
|
||||
# TODO: ADD SWIFT STORAGE ENTRY HERE
|
||||
rabbit:
|
||||
nodes:
|
||||
list_join:
|
||||
- ','
|
||||
- {get_attr: [Controller, hostname]}
|
||||
|
||||
MysqlRootPassword:
|
||||
type: OS::Heat::RandomString
|
||||
properties:
|
||||
length: 10
|
||||
|
||||
MysqlClusterUniquePart:
|
||||
type: OS::Heat::RandomString
|
||||
properties:
|
||||
length: 10
|
||||
|
||||
RabbitCookie:
|
||||
type: OS::Heat::RandomString
|
||||
properties:
|
||||
length: 20
|
||||
salt: {get_param: RabbitCookieSalt}
|
||||
|
||||
ControlVirtualIP:
|
||||
type: OS::Neutron::Port
|
||||
properties:
|
||||
name: control_virtual_ip
|
||||
network_id: {get_param: NeutronControlPlaneID}
|
||||
fixed_ips: {get_param: ControlFixedIPs}
|
||||
|
||||
PublicVirtualIP:
|
||||
type: OS::Neutron::Port
|
||||
properties:
|
||||
name: public_virtual_ip
|
||||
network: {get_param: PublicVirtualNetwork}
|
||||
fixed_ips: {get_param: PublicVirtualFixedIPs}
|
||||
|
||||
ControllerBootstrapNodeConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
bootstrap_host:
|
||||
bootstrap_nodeid: {get_attr: [Controller, resource.0.hostname]}
|
||||
|
||||
ControllerBootstrapNodeDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
config: {get_resource: ControllerBootstrapNodeConfig}
|
||||
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
||||
signal_transport: NO_SIGNAL
|
||||
|
||||
ControllerSwiftDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
config: {get_resource: ControllerSwiftConfig}
|
||||
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
||||
signal_transport: NO_SIGNAL
|
||||
input_values:
|
||||
swift_hash_suffix: {get_param: SwiftHashSuffix}
|
||||
swift_password: {get_param: SwiftPassword}
|
||||
swift_part_power: {get_param: SwiftPartPower}
|
||||
swift_replicas: { get_param: SwiftReplicas}
|
||||
|
||||
ControllerSwiftConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
group: os-apply-config
|
||||
config:
|
||||
swift:
|
||||
devices:
|
||||
list_join:
|
||||
- ", "
|
||||
- - list_join:
|
||||
- ", "
|
||||
- {get_attr: [Controller, swift_device]}
|
||||
- list_join:
|
||||
- ", "
|
||||
# TODO: replace the empty list with this:
|
||||
# - {get_attr: [ObjectStorage, swift_device]}
|
||||
# Once we have the swift/object-storage role
|
||||
- []
|
||||
hash: { get_input: swift_hash_suffix }
|
||||
part-power: { get_input: swift_part_power }
|
||||
proxy-memcache:
|
||||
list_join:
|
||||
- ","
|
||||
- {get_attr: [Controller, swift_proxy_memcache]}
|
||||
replicas: {get_input: swift_replicas }
|
||||
service-password: { get_input: swift_password }
|
||||
|
||||
ControllerClusterConfig:
|
||||
type: OS::Heat::StructuredConfig
|
||||
properties:
|
||||
config:
|
||||
corosync:
|
||||
nodes: {get_attr: [Controller, corosync_node]}
|
||||
horizon:
|
||||
caches:
|
||||
memcached:
|
||||
nodes: {get_attr: [Controller, hostname]}
|
||||
mysql:
|
||||
nodes: {get_attr: [Controller, corosync_node]}
|
||||
haproxy:
|
||||
nodes: {get_attr: [Controller, corosync_node]}
|
||||
|
||||
ControllerClusterDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
config: {get_resource: ControllerClusterConfig}
|
||||
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
||||
signal_transport: NO_SIGNAL
|
||||
|
||||
ControllerAllNodesDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
config: {get_resource: allNodesConfig}
|
||||
servers: {get_attr: [Controller, attributes, nova_server_resource]}
|
||||
|
||||
ComputeAllNodesDeployment:
|
||||
type: OS::Heat::StructuredDeployments
|
||||
properties:
|
||||
config: {get_resource: allNodesConfig}
|
||||
servers: {get_attr: [Compute, attributes, nova_server_resource]}
|
||||
|
||||
|
||||
outputs:
|
||||
KeystoneURL:
|
||||
description: URL for the Overcloud Keystone service
|
||||
value:
|
||||
list_join:
|
||||
- ''
|
||||
- - http://
|
||||
- {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]}
|
||||
- :5000/v2.0/
|
Loading…
x
Reference in New Issue
Block a user