343 lines
10 KiB
YAML
343 lines
10 KiB
YAML
Description: All-in-one baremetal OpenStack and all dependencies.
|
|
HeatTemplateFormatVersion: '2012-12-12'
|
|
Parameters:
|
|
AdminPassword:
|
|
Default: unset
|
|
Description: The password for the keystone admin account, used for monitoring, querying neutron etc.
|
|
Type: String
|
|
NoEcho: true
|
|
AdminToken:
|
|
Default: unset
|
|
Description: The keystone auth secret.
|
|
Type: String
|
|
NoEcho: true
|
|
CinderLVMLoopDeviceSize:
|
|
Default: 5000
|
|
Description: The size of the loopback file used by the cinder LVM driver.
|
|
Type: Number
|
|
BaremetalArch:
|
|
Default: i386
|
|
Description: The architecture to use in Nova-BM - i386 or amd64.
|
|
Type: String
|
|
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
|
|
SnmpdReadonlyUserName:
|
|
Default: ro_snmp_user
|
|
Description: The user name for SNMPd with readonly rights running on all Overcloud nodes
|
|
Type: String
|
|
SnmpdReadonlyUserPassword:
|
|
Default: unset
|
|
Description: The user password for SNMPd with readonly rights running on all Overcloud nodes
|
|
Type: String
|
|
NoEcho: true
|
|
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 to request when deploying.
|
|
Type: String
|
|
GlancePassword:
|
|
Default: unset
|
|
Description: The password for the glance service account, used by the glance services.
|
|
Type: String
|
|
NoEcho: true
|
|
GlanceNotifierStrategy:
|
|
Description: Strategy to use for Glance notification queue
|
|
Type: String
|
|
Default: noop
|
|
GlanceLogFile:
|
|
Description: The filepath of the file to use for logging messages from Glance.
|
|
Type: String
|
|
Default: ''
|
|
KeyName:
|
|
Default: default
|
|
Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
|
|
Type: String
|
|
HeatPassword:
|
|
Default: unset
|
|
Description: The password for the Heat service account, used by the Heat services.
|
|
Type: String
|
|
NoEcho: true
|
|
ImageUpdatePolicy:
|
|
Default: REBUILD_PRESERVE_EPHEMERAL
|
|
Description: What policy to use when reconstructing instances. REBUILD for rebuilds,
|
|
REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
|
|
Type: String
|
|
undercloudImage:
|
|
Default: undercloud
|
|
Type: String
|
|
NeutronPassword:
|
|
Default: unset
|
|
Description: The password for the neutron service account, used by neutron agents.
|
|
Type: String
|
|
NoEcho: true
|
|
NovaPassword:
|
|
Default: unset
|
|
Description: The password for the nova service account, used by nova-api.
|
|
Type: String
|
|
NoEcho: true
|
|
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
|
|
NtpServer:
|
|
Type: String
|
|
Default: ''
|
|
RabbitUserName:
|
|
Default: guest
|
|
Description: The username for RabbitMQ
|
|
Type: String
|
|
RabbitPassword:
|
|
Default: guest
|
|
Description: The password for RabbitMQ
|
|
Type: String
|
|
NoEcho: true
|
|
RabbitCookieSalt:
|
|
Type: String
|
|
Default: unset
|
|
Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
|
|
HeatStackDomainAdminPassword:
|
|
Description: Password for heat_domain_admin user.
|
|
Type: String
|
|
Default: ''
|
|
NoEcho: true
|
|
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
|
|
KeystoneCACertificate:
|
|
Default: ''
|
|
Description: Keystone self-signed certificate authority certificate.
|
|
Type: String
|
|
KeystoneSigningCertificate:
|
|
Default: ''
|
|
Description: Keystone certificate for verifying token validity.
|
|
Type: String
|
|
KeystoneSigningKey:
|
|
Default: ''
|
|
Description: Keystone key for signing tokens.
|
|
Type: String
|
|
NoEcho: true
|
|
Resources:
|
|
RabbitCookie:
|
|
Type: OS::Heat::RandomString
|
|
Properties:
|
|
length: 20
|
|
salt:
|
|
Ref: RabbitCookieSalt
|
|
undercloudConfig:
|
|
Type: OS::Heat::StructuredConfig
|
|
Properties:
|
|
config:
|
|
completion-signal: {get_input: deploy_signal_id}
|
|
admin-password:
|
|
Ref: AdminPassword
|
|
admin-token:
|
|
Ref: AdminToken
|
|
bootstrap_host:
|
|
bootstrap_nodeid:
|
|
Fn::Select:
|
|
- 0
|
|
- Fn::Select:
|
|
- 0
|
|
- Merge::Map:
|
|
undercloud:
|
|
- Fn::Select:
|
|
- name
|
|
- Fn::GetAtt:
|
|
- undercloud
|
|
- show
|
|
nodeid: {get_input: bootstack_nodeid}
|
|
bootstack:
|
|
public_interface_ip:
|
|
Ref: NeutronPublicInterfaceIP
|
|
controller-address:
|
|
get_input: controller_host
|
|
ceilometer:
|
|
db: mysql://ceilometer:unset@localhost/ceilometer
|
|
metering_secret: {Ref: CeilometerMeteringSecret}
|
|
snmpd_readonly_user_name:
|
|
Ref: SnmpdReadonlyUserName
|
|
snmpd_readonly_user_password:
|
|
Ref: SnmpdReadonlyUserPassword
|
|
service-password:
|
|
Ref: CeilometerPassword
|
|
db-password: unset
|
|
glance:
|
|
backend: file
|
|
db: mysql://glance:unset@localhost/glance
|
|
host: 127.0.0.1
|
|
service-password:
|
|
Ref: GlancePassword
|
|
notifier-strategy:
|
|
Ref: GlanceNotifierStrategy
|
|
log-file:
|
|
Ref: GlanceLogFile
|
|
heat:
|
|
admin_password:
|
|
Ref: HeatPassword
|
|
admin_tenant_name: service
|
|
admin_user: heat
|
|
auth_encryption_key: unset___________
|
|
db: mysql://heat:unset@localhost/heat
|
|
stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
|
|
watch_server_url: {get_input: heat.watch_server_url}
|
|
metadata_server_url: {get_input: heat.metadata_server_url}
|
|
waitcondition_server_url: {get_input: heat.waitcondition_server_url}
|
|
keystone:
|
|
db: mysql://keystone:unset@localhost/keystone
|
|
host: 127.0.0.1
|
|
ca_certificate: {Ref: KeystoneCACertificate}
|
|
signing_key: {Ref: KeystoneSigningKey}
|
|
signing_certificate: {Ref: KeystoneSigningCertificate}
|
|
mysql:
|
|
innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
|
|
neutron:
|
|
host: 127.0.0.1
|
|
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
|
|
ovs:
|
|
public_interface:
|
|
Ref: NeutronPublicInterface
|
|
public_interface_raw_device:
|
|
Ref: NeutronPublicInterfaceRawDevice
|
|
public_interface_route:
|
|
Ref: NeutronPublicInterfaceDefaultRoute
|
|
physical_bridge: br-ctlplane
|
|
physical_network: ctlplane
|
|
network_vlan_ranges: ctlplane
|
|
bridge_mappings: ctlplane:br-ctlplane
|
|
tenant_network_type: vlan
|
|
enable_tunneling: 'False'
|
|
service-password:
|
|
Ref: NeutronPassword
|
|
rabbit:
|
|
host: 127.0.0.1
|
|
username:
|
|
Ref: RabbitUserName
|
|
password:
|
|
Ref: RabbitPassword
|
|
cookie:
|
|
Fn::GetAtt:
|
|
- RabbitCookie
|
|
- value
|
|
ntp:
|
|
servers:
|
|
- {server: {Ref: NtpServer}, fudge: "stratum 0"}
|
|
undercloudPassthroughConfig:
|
|
Type: OS::Heat::StructuredConfig
|
|
Properties:
|
|
config: {get_input: passthrough_config}
|
|
undercloud:
|
|
Type: OS::Nova::Server
|
|
Properties:
|
|
image:
|
|
Ref: undercloudImage
|
|
flavor:
|
|
Ref: Flavor
|
|
key_name:
|
|
Ref: KeyName
|
|
image_update_policy:
|
|
Ref: ImageUpdatePolicy
|
|
user_data_format: SOFTWARE_CONFIG
|
|
99_undercloudDeployment:
|
|
Type: OS::Heat::StructuredDeployment
|
|
Properties:
|
|
config: {Ref: undercloudConfig}
|
|
server: {Ref: undercloud}
|
|
input_values:
|
|
bootstack_nodeid:
|
|
Fn::Select:
|
|
- name
|
|
- Fn::GetAtt:
|
|
- undercloud
|
|
- show
|
|
controller_host:
|
|
Fn::Select:
|
|
- 0
|
|
- Fn::Select:
|
|
- ctlplane
|
|
- Fn::GetAtt:
|
|
- undercloud
|
|
- networks
|
|
heat.watch_server_url:
|
|
Fn::Join:
|
|
- ''
|
|
- - 'http://'
|
|
- {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
|
|
- ':8003'
|
|
heat.metadata_server_url:
|
|
Fn::Join:
|
|
- ''
|
|
- - 'http://'
|
|
- {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
|
|
- ':8000'
|
|
heat.waitcondition_server_url:
|
|
Fn::Join:
|
|
- ''
|
|
- - 'http://'
|
|
- {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
|
|
- ':8000/v1/waitcondition'
|
|
00_undercloudPassthroughDeployment:
|
|
Type: OS::Heat::StructuredDeployment
|
|
Properties:
|
|
config: {Ref: undercloudPassthroughConfig}
|
|
server: {Ref: undercloud}
|
|
signal_transport: NO_SIGNAL
|
|
input_values:
|
|
passthrough_config: {Ref: ExtraConfig}
|