aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--Makefile10
-rw-r--r--base.yaml78
-rw-r--r--block-storage-nfs.yaml82
-rw-r--r--block-storage.yaml96
-rw-r--r--controller.yaml226
-rw-r--r--debian-mirror.yaml42
-rw-r--r--examples/launchconfig1_hot.yaml2
-rw-r--r--examples/launchconfig2_hot.yaml2
-rw-r--r--examples/launchconfig_result_hot.yaml2
-rw-r--r--examples/scale1_hot.yaml2
-rw-r--r--examples/scale2_hot.yaml2
-rw-r--r--examples/scale_map2_hot.yaml2
-rw-r--r--examples/scale_map_hot.yaml2
-rw-r--r--examples/scale_map_result_hot.yaml2
-rw-r--r--examples/scale_result_hot.yaml2
-rw-r--r--examples/source2_lib_result_hot.yaml2
-rw-r--r--examples/source_hot.yaml2
-rw-r--r--examples/source_include_subkey_hot.yaml2
-rw-r--r--examples/source_include_subkey_result_hot.yaml2
-rw-r--r--examples/source_lib_result_hot.yaml2
-rw-r--r--nagios3.yaml2
-rw-r--r--nfs-server-source.yaml16
-rw-r--r--nova-compute-config.yaml10
-rw-r--r--nova-compute-instance.yaml311
-rw-r--r--overcloud-source.yaml685
-rw-r--r--ssl-source.yaml32
-rw-r--r--swift-deploy.yaml52
-rw-r--r--swift-source.yaml10
-rw-r--r--swift-storage-source.yaml82
-rw-r--r--tripleo_heat_merge/merge.py2
-rw-r--r--undercloud-bm-nova-config.yaml6
-rw-r--r--undercloud-bm-nova-deploy.yaml38
-rw-r--r--undercloud-source.yaml340
-rw-r--r--undercloud-vm-ironic-config.yaml10
-rw-r--r--undercloud-vm-ironic-deploy.yaml44
-rw-r--r--undercloud-vm-nova-config.yaml6
-rw-r--r--undercloud-vm-nova-deploy.yaml62
37 files changed, 1136 insertions, 1134 deletions
diff --git a/Makefile b/Makefile
index 18199edf..295e85c5 100644
--- a/Makefile
+++ b/Makefile
@@ -15,25 +15,25 @@ $(VALIDATE):
heat template-validate -f $(subst validate-,,$@)
overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps)
- python ./tripleo_heat_merge/merge.py --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE='0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE='0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml > $@.tmp
mv $@.tmp $@
overcloud-with-block-storage-nfs.yaml: overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml $(overcloud_source_deps)
# $^ won't work here because we want to list nova-compute-instance.yaml as
# a prerequisite but don't want to pass it into merge.py
- python ./tripleo_heat_merge/merge.py --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'1'} overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE='0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'1'} overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml > $@.tmp
mv $@.tmp $@
undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml
- python ./tripleo_heat_merge/merge.py $^ > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
mv $@.tmp $@
undercloud-bm.yaml: undercloud-source.yaml undercloud-bm-nova-config.yaml undercloud-bm-nova-deploy.yaml
- python ./tripleo_heat_merge/merge.py $^ > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
mv $@.tmp $@
undercloud-vm-ironic.yaml: undercloud-source.yaml undercloud-vm-ironic-config.yaml undercloud-vm-ironic-deploy.yaml
- python ./tripleo_heat_merge/merge.py $^ > $@.tmp
+ python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp
mv $@.tmp $@
check: test
diff --git a/base.yaml b/base.yaml
index f1e8967d..43ce7e6f 100644
--- a/base.yaml
+++ b/base.yaml
@@ -1,77 +1,77 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Tie OpenStack components together'
-Parameters:
+heat_template_version: 2014-10-16
+description: 'Tie OpenStack components together'
+parameters:
TemplateRoot:
- Description: URL Base where all of our templates are available
- Type: String
+ description: URL Base where all of our templates are available
+ type: string
KeystoneAdminToken:
- Description: Admin Token needed for keystone
- Type: String
- NoEcho: true
-Resources:
+ description: Admin Token needed for keystone
+ type: string
+ hidden: true
+resources:
RabbitMQ:
- Type: AWS::CloudFormation::Stack
+ type: AWS::CloudFormation::Stack
TemplateURL:
- Fn::Join:
- - {Ref: TemplateRoot}
+ list_join:
+ - {get_param: TemplateRoot}
- rabbitmq.yaml
- Parameters:
+ parameters:
InstanceType: m1.small
KeyName: default
RabbitMQImage: image-rabbitmq
MySQL:
- Type: AWS::CloudFormation::Stack
+ type: AWS::CloudFormation::Stack
TemplateURL:
- Fn::Join:
- - {Ref: TemplateRoot}
+ list_join:
+ - {get_param: TemplateRoot}
- mysql.yaml
- Parameters:
+ parameters:
InstanceType: m1.small
KeyName: default
MySQLImage: image-mysql
Keystone:
- Type: AWS::CloudFormation::Stack
+ type: AWS::CloudFormation::Stack
TemplateURL:
- Fn::Join:
- - {Ref: TemplateRoot}
+ list_join:
+ - {get_param: TemplateRoot}
- keystone.yaml
- Parameters:
- AdminToken: {Ref: KeystoneAdminToken}
+ parameters:
+ AdminToken: {get_param: KeystoneAdminToken}
KeyName: default
KeystoneDSN:
- Fn::Join:
+ list_join:
- 'mysql://keystone:'
- - {"Fn::GetAtt": [ MySQL , KeystonePassword ]}
+ - {get_attr: [ MySQL , KeystonePassword ]}
- '@'
- - {"Fn::GetAtt": [ MySQL , MySQLHost ]}
+ - {get_attr: [ MySQL , MySQLHost ]}
- '/keystone'
Glance:
- Type: AWS::CloudFormation::Stack
+ type: AWS::CloudFormation::Stack
TemplateURL:
- Fn::Join:
- - {Ref: TemplateRoot}
+ list_join:
+ - {get_param: TemplateRoot}
- glance.yaml
- Parameters:
+ parameters:
KeyName: default
HeatDSN:
- Fn::Join:
+ list_join:
- 'mysql://glance:'
- - {"Fn::GetAtt": [ MySQL, GlancePassword ] }
+ - {get_attr: [ MySQL, GlancePassword ] }
- '@'
- - {"Fn::GetAtt": [ MySQL, MySQLHost ]}
+ - {get_attr: [ MySQL, MySQLHost ]}
- '/glance'
Heat:
- Type: AWS::CloudFormation::Stack
+ type: AWS::CloudFormation::Stack
TemplateURL:
- Fn::Join:
- - {Ref: TemplateRoot}
+ list_join:
+ - {get_param: TemplateRoot}
- heat.yaml
- Parameters:
+ parameters:
KeyName: default
HeatDSN:
- Fn::Join:
+ list_join:
- 'mysql://heat:'
- - {"Fn::GetAtt": [ MySQL, HeatPassword ] }
+ - {get_attr: [ MySQL, HeatPassword ] }
- '@'
- - {"Fn::GetAtt": [ MySQL, MySQLHost ]}
+ - {get_attr: [ MySQL, MySQLHost ]}
- '/heat'
diff --git a/block-storage-nfs.yaml b/block-storage-nfs.yaml
index 93ac4f65..9583576f 100644
--- a/block-storage-nfs.yaml
+++ b/block-storage-nfs.yaml
@@ -1,68 +1,68 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Block Storage Configuration'
-Parameters:
+heat_template_version: 2014-10-16
+description: 'Common Block Storage Configuration'
+parameters:
BlockStorageImage:
- Type: String
- Default: overcloud-cinder-volume
+ type: string
+ default: overcloud-cinder-volume
OvercloudBlockStorageFlavor:
- Default: baremetal
- Description: Flavor for block storage nodes to request when deploying.
- Type: String
-Resources:
+ default: baremetal
+ description: Flavor for block storage nodes to request when deploying.
+ type: string
+resources:
BlockStorageAccessPolicy:
- Type: OS::Heat::AccessPolicy
- Properties:
+ type: OS::Heat::AccessPolicy
+ properties:
AllowedResources:
- BlockStorage0
BlockStorageUser:
- Type: AWS::IAM::User
- Properties:
- Policies: [ { Ref: BlockStorageAccessPolicy } ]
+ type: AWS::IAM::User
+ properties:
+ Policies: [ { get_resource: BlockStorageAccessPolicy } ]
BlockStorageKey:
- Type: AWS::IAM::AccessKey
- Properties:
+ type: AWS::IAM::AccessKey
+ properties:
UserName:
- Ref: BlockStorageUser
+ get_resource: BlockStorageUser
BlockStorage0CompletionCondition:
- Type: AWS::CloudFormation::WaitCondition
- DependsOn: controller0Config
- Properties:
- Handle: {Ref: BlockStorage0CompletionHandle}
+ type: AWS::CloudFormation::WaitCondition
+ depends_on: controller0Config
+ properties:
+ Handle: {get_resource: BlockStorage0CompletionHandle}
Count: '1'
Timeout: '1800'
BlockStorage0CompletionHandle:
- Type: AWS::CloudFormation::WaitConditionHandle
+ type: AWS::CloudFormation::WaitConditionHandle
BlockStorage0:
- Type: OS::Nova::Server
- Properties:
+ type: OS::Nova::Server
+ properties:
image:
- {Ref: BlockStorageImage}
- flavor: {Ref: OvercloudBlockStorageFlavor}
- key_name: {Ref: KeyName}
- Metadata:
+ {get_param: BlockStorageImage}
+ flavor: {get_param: OvercloudBlockStorageFlavor}
+ key_name: {get_param: KeyName}
+ metadata:
completion-handle:
- Ref: BlockStorage0CompletionHandle
+ get_resource: BlockStorage0CompletionHandle
os-collect-config:
cfn:
access_key_id:
- Ref: BlockStorageKey
+ get_resource: BlockStorageKey
secret_access_key:
- Fn::GetAtt: [ BlockStorageKey, SecretAccessKey ]
- stack_name: {Ref: 'AWS::StackName'}
+ get_attr: [ BlockStorageKey, SecretAccessKey ]
+ stack_name: {get_param: 'AWS::StackName'}
keystone:
- host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
cinder:
- db: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , '/cinder']]}
+ db: {list_join: ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , '/cinder']]}
volume_size_mb: '5000'
service-password:
- Ref: CinderPassword
+ get_param: CinderPassword
include_nfs_backend: 'true'
nfs_shares:
- - {"Fn::Join": ['', [{"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , ':/mnt/state/var/lib/nfs_share']]}
- admin-password: {Ref: AdminPassword}
+ - {list_join: ['', [{"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , ':/mnt/state/var/lib/nfs_share']]}
+ admin-password: {get_param: AdminPassword}
rabbit:
- host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- username: {Ref: RabbitUserName}
- password: {Ref: RabbitPassword}
+ host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+ username: {get_param: RabbitUserName}
+ password: {get_param: RabbitPassword}
interfaces:
- control: {Ref: NeutronPublicInterface}
+ control: {get_param: NeutronPublicInterface}
diff --git a/block-storage.yaml b/block-storage.yaml
index da5f9edc..98f62c44 100644
--- a/block-storage.yaml
+++ b/block-storage.yaml
@@ -1,90 +1,90 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Block Storage Configuration'
-Parameters:
+heat_template_version: 2014-10-16
+description: 'Common Block Storage Configuration'
+parameters:
BlockStorageImage:
- Type: String
- Default: overcloud-cinder-volume
+ type: string
+ default: overcloud-cinder-volume
OvercloudBlockStorageFlavor:
- Default: baremetal
- Description: Flavor for block storage nodes to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor for block storage nodes to request when deploying.
+ type: string
NeutronNetworkType:
- Type: String
- Default: 'gre'
+ type: string
+ default: 'gre'
NeutronEnableTunnelling:
- Type: String
- Default: True
-Resources:
+ type: string
+ default: True
+resources:
BlockStorage0:
- Type: OS::Nova::Server
- Properties:
+ type: OS::Nova::Server
+ properties:
image:
- {Ref: BlockStorageImage}
- flavor: {Ref: OvercloudBlockStorageFlavor}
- key_name: {Ref: KeyName}
+ {get_param: BlockStorageImage}
+ flavor: {get_param: OvercloudBlockStorageFlavor}
+ key_name: {get_param: KeyName}
user_data_format: SOFTWARE_CONFIG
BlockStorage0Deployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- server: {Ref: BlockStorage0}
- config: {Ref: BlockStorageConfig}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: BlockStorage0}
+ config: {get_resource: BlockStorageConfig}
input_values:
- controller_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- cinder_dsn: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } , '/cinder']]}
- neutron_local_ip: {"Fn::Select": [0, "Fn::Select": [ctlplane, {"Fn::GetAtt": [BlockStorage0 , networks]}]]}
+ controller_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+ cinder_dsn: {list_join: ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] } , '/cinder']]}
+ neutron_local_ip: {"Fn::Select": [0, "Fn::Select": [ctlplane, {get_attr: [BlockStorage0 , networks]}]]}
signal_transport: NO_SIGNAL
BlockStorageConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
- admin-password: {Ref: AdminPassword}
+ admin-password: {get_param: AdminPassword}
keystone:
host: {get_input: controller_host}
cinder:
db: {get_input: cinder_dsn}
volume_size_mb:
- Ref: CinderLVMLoopDeviceSize
+ get_param: CinderLVMLoopDeviceSize
service-password:
- Ref: CinderPassword
+ get_param: CinderPassword
iscsi-helper:
- Ref: CinderISCSIHelper
- admin-password: {Ref: AdminPassword}
+ get_param: CinderISCSIHelper
+ admin-password: {get_param: AdminPassword}
rabbit:
host: {get_input: controller_host}
- username: {Ref: RabbitUserName}
- password: {Ref: RabbitPassword}
+ username: {get_param: RabbitUserName}
+ password: {get_param: RabbitPassword}
interfaces:
- control: {Ref: NeutronPublicInterface}
+ control: {get_param: NeutronPublicInterface}
neutron:
ovs:
local_ip: {get_input: neutron_local_ip}
- tenant_network_type: {Ref: NeutronNetworkType}
- enable_tunneling: {Ref: NeutronEnableTunnelling}
+ tenant_network_type: {get_param: NeutronNetworkType}
+ enable_tunneling: {get_param: NeutronEnableTunnelling}
service-password:
- Ref: NeutronPassword
+ get_param: NeutronPassword
config:
keystone:
host: {get_input: controller_host}
cinder:
db: {get_input: cinder_dsn}
volume_size_mb:
- Ref: CinderLVMLoopDeviceSize
+ get_param: CinderLVMLoopDeviceSize
service-password:
- Ref: CinderPassword
+ get_param: CinderPassword
iscsi-helper:
- Ref: CinderISCSIHelper
- admin-password: {Ref: AdminPassword}
+ get_param: CinderISCSIHelper
+ admin-password: {get_param: AdminPassword}
rabbit:
host: {get_input: controller_host}
- username: {Ref: RabbitUserName}
- password: {Ref: RabbitPassword}
+ username: {get_param: RabbitUserName}
+ password: {get_param: RabbitPassword}
interfaces:
- control: {Ref: NeutronPublicInterface}
+ control: {get_param: NeutronPublicInterface}
neutron:
ovs:
local_ip: { get_input: neutron_local_ip }
- tenant_network_type: {Ref: NeutronNetworkType}
- enable_tunneling: {Ref: NeutronEnableTunnelling}
+ tenant_network_type: {get_param: NeutronNetworkType}
+ enable_tunneling: {get_param: NeutronEnableTunnelling}
service-password:
- Ref: NeutronPassword
+ get_param: NeutronPassword
diff --git a/controller.yaml b/controller.yaml
index f7a8633e..1b0cb541 100644
--- a/controller.yaml
+++ b/controller.yaml
@@ -1,217 +1,217 @@
-Description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
+description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
server,Dedicated RabbitMQ Server
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
+heat_template_version: 2014-10-16
+parameters:
AdminToken:
- Type: String
+ type: string
BootstrapDumpPassword:
- Default: ''
- Description: Password to use for mysqldump from Bootstrap Host
- Type: String
- NoEcho: true
+ default: ''
+ description: Password to use for mysqldump from Bootstrap Host
+ type: string
+ hidden: true
BootstrapHost:
- Default: ''
- Description: Load mysqldump from this Host
- Type: String
+ default: ''
+ description: Load mysqldump from this Host
+ type: string
BootstrapRootPassword:
- Default: ''
- Description: Root password for localhost access after bootstrap
- Type: String
- NoEcho: true
+ default: ''
+ description: Root password for localhost access after bootstrap
+ type: string
+ hidden: true
BootstrapSlavePassword:
- Default: ''
- Description: Password to use with BootstrapSlaveUser
- Type: String
- NoEcho: true
+ default: ''
+ description: Password to use with BootstrapSlaveUser
+ type: string
+ hidden: true
BootstrapSlaveUser:
- Default: ''
- Description: User to use for replication from bootstrap host
- Type: String
+ default: ''
+ description: User to use for replication from bootstrap host
+ type: string
GlanceDBPassword:
- Description: Password for connecting to glance database
- Type: String
- NoEcho: true
+ description: Password for connecting to glance database
+ type: string
+ hidden: true
GlanceNotifierStrategy:
- Description: Strategy to use for Glance notification queue
- Type: String
- Default: noop
+ 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: ''
+ description: The filepath of the file to use for logging messages from Glance.
+ type: string
+ default: ''
HeatDBPassword:
- Description: Password for accessing Heat database.
- Type: String
- NoEcho: true
+ description: Password for accessing Heat database.
+ type: string
+ hidden: true
InstanceType:
- Default: baremetal
- Description: Use this flavor
- Type: String
+ default: baremetal
+ description: Use this flavor
+ type: string
KeyName:
- Default: default
- Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
- Type: String
+ 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
- Type: String
- NoEcho: true
+ description: Password for connecting to keystone
+ type: string
+ hidden: true
NovaDBPassword:
- Description: Password for connecting to nova database
- Type: String
- NoEcho: true
+ description: Password for connecting to nova database
+ type: string
+ hidden: true
NovaInterfaces:
- Default: eth0
- Type: String
+ default: eth0
+ type: string
NeutronDBPassword:
- Description: Password for connecting to neutron database
- Type: String
- NoEcho: true
+ description: Password for connecting to neutron database
+ type: string
+ hidden: true
NeutronInterfaces:
- Default: eth0
- Type: String
+ default: eth0
+ type: string
RabbitMQPassword:
- Description: Password for RabbitMQ
- Type: String
- NoEcho: true
+ description: Password for RabbitMQ
+ type: string
+ hidden: true
RabbitUserName:
- Type: String
+ type: string
RabbitPassword:
- Type: String
- NoEcho: true
+ type: string
+ hidden: true
ServicePassword:
- Description: admin_password for setting up auth in nova.
- Type: String
- NoEcho: true
+ description: admin_password for setting up auth in nova.
+ type: string
+ hidden: true
controllerImage:
- Type: String
+ type: string
HeatStackDomainAdminPassword:
- Description: Password for heat_domain_admin user.
- Type: String
- Default: ''
- NoEcho: true
-Resources:
+ description: Password for heat_domain_admin user.
+ type: string
+ default: ''
+ hidden: true
+resources:
AccessPolicy:
- Properties:
+ properties:
AllowedResources:
- controller0
- Type: OS::Heat::AccessPolicy
+ type: OS::Heat::AccessPolicy
controller0Key:
- Properties:
+ properties:
UserName:
- Ref: User
- Type: AWS::IAM::AccessKey
+ get_resource: User
+ type: AWS::IAM::AccessKey
User:
- Properties:
+ properties:
Policies:
- - Ref: AccessPolicy
- Type: AWS::IAM::User
+ - get_resource: AccessPolicy
+ type: AWS::IAM::User
controller0:
- Metadata:
+ metadata:
admin-password:
- Ref: ServicePassword
+ get_param: ServicePassword
admin-token:
- Ref: AdminToken
+ get_param: AdminToken
mysql:
create-users:
- database: keystone
username: keystone
- password: {Ref: KeystoneDBPassword}
+ password: {get_param: KeystoneDBPassword}
- database: heat
username: heat
- password: {Ref: HeatDBPassword}
+ password: {get_param: HeatDBPassword}
- database: glance
username: glance
- password: {Ref: GlanceDBPassword}
+ password: {get_param: GlanceDBPassword}
- database: nova
username: nova
- password: {Ref: NovaDBPassword}
+ password: {get_param: NovaDBPassword}
- database: neutron
username: neutron
- password: {Ref: NeutronDBPassword}
+ password: {get_param: NeutronDBPassword}
glance:
db:
- Fn::Join:
+ list_join:
- ''
- - 'mysql://glance:'
- - {Ref: GlanceDBPassword}
+ - {get_param: GlanceDBPassword}
- '@127.0.0.1/glance'
notifier-strategy:
- Ref: GlanceNotifierStrategy
+ get_param: GlanceNotifierStrategy
log-file:
- Ref: GlanceLogFile
+ get_param: GlanceLogFile
heat:
db:
- Fn::Join:
+ list_join:
- ''
- - 'mysql://heat:'
- - {Ref: HeatDBPassword}
+ - {get_param: HeatDBPassword}
- '@127.0.0.1/heat'
access_key_id:
- Ref: controller0Key
+ get_resource: controller0Key
refresh:
- resource: controller0
secret_key:
- Fn::GetAtt:
+ get_attr:
- controller0Key
- SecretAccessKey
stack:
name:
- Ref: AWS::StackName
+ get_param: AWS::StackName
region:
- Ref: AWS::Region
+ get_param: AWS::Region
auth_encryption_key: unset
- stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
+ stack_domain_admin_password: {get_param: HeatStackDomainAdminPassword}
interfaces:
control:
- Ref: NovaInterfaces
+ get_param: NovaInterfaces
keystone:
host:
'127.0.0.1'
db:
- Fn::Join:
+ list_join:
- ''
- - 'mysql://keystone:'
- - {Ref: KeystoneDBPassword}
+ - {get_param: KeystoneDBPassword}
- '@127.0.0.1/keystone'
nova:
db:
- Fn::Join:
+ list_join:
- ''
- - 'mysql://nova:'
- - {Ref: NovaDBPassword}
+ - {get_param: NovaDBPassword}
- '@127.0.0.1/nova'
neutron:
host:
'127.0.0.1'
ovs_db:
- Fn::Join:
+ list_join:
- ''
- - 'mysql://neutron:'
- - {Ref: NeutronDBPassword}
+ - {get_param: NeutronDBPassword}
- '@127.0.0.1/ovs_neutron'
rabbit:
host:
'127.0.0.1'
username:
- Ref: RabbitUserName
+ get_param: RabbitUserName
password:
- Ref: RabbitPassword
+ get_param: RabbitPassword
users:
username:
- Ref: RabbitUserName
+ get_param: RabbitUserName
password:
- Ref: RabbitPassword
+ get_param: RabbitPassword
cookie:
- Fn::GetAtt:
+ get_attr:
- RabbitCookie
- value
service-password:
- Ref: ServicePassword
- Properties:
+ get_param: ServicePassword
+ properties:
ImageId:
- Ref: controllerImage
+ get_param: controllerImage
InstanceType:
- Ref: InstanceType
+ get_param: InstanceType
KeyName:
- Ref: KeyName
- Type: AWS::EC2::Instance
+ get_param: KeyName
+ type: AWS::EC2::Instance
diff --git a/debian-mirror.yaml b/debian-mirror.yaml
index f9e76997..7ae12c1b 100644
--- a/debian-mirror.yaml
+++ b/debian-mirror.yaml
@@ -1,31 +1,31 @@
-Description: 'Debian-mirror: A Debian or Ubuntu mirror in the cloud'
-Parameters:
+description: 'Debian-mirror: A Debian or Ubuntu mirror in the cloud'
+parameters:
DebianMirrorMirror:
- Default: http://archive.ubuntu.com/ubuntu
- Description: The mirror that is to be used as the source
- Type: String
+ default: http://archive.ubuntu.com/ubuntu
+ description: The mirror that is to be used as the source
+ type: string
DebianMirrorSuites:
- Default: ["saucy", "saucy-updates", "saucy-security"]
- Description: The suites to be mirrored
- Type: JSON
+ default: ["saucy", "saucy-updates", "saucy-security"]
+ description: The suites to be mirrored
+ type: JSON
DebianMirrorArchitectures:
- Default: [{"arch": "amd64"}]
- Description: The architectures to be mirrored
- Type: JSON
+ default: [{"arch": "amd64"}]
+ description: The architectures to be mirrored
+ type: JSON
DebianMirrorComponents:
- Default: ["main", "restricted", "universe", "multiverse"]
- Description: The components to be mirrored
- Type: JSON
-Resources:
+ default: ["main", "restricted", "universe", "multiverse"]
+ description: The components to be mirrored
+ type: JSON
+resources:
debianMirrorConfig:
- Type: AWS::AutoScaling::LaunchConfiguration
- Metadata:
+ type: AWS::AutoScaling::LaunchConfiguration
+ metadata:
debian-mirror:
mirror:
- Ref: DebianMirrorMirror
+ get_param: DebianMirrorMirror
suites:
- Ref: DebianMirrorSuites
+ get_param: DebianMirrorSuites
architectures:
- Ref: DebianMirrorArchitectures
+ get_param: DebianMirrorArchitectures
components:
- Ref: DebianMirrorComponents
+ get_param: DebianMirrorComponents
diff --git a/examples/launchconfig1_hot.yaml b/examples/launchconfig1_hot.yaml
index 1354f469..4c86e76d 100644
--- a/examples/launchconfig1_hot.yaml
+++ b/examples/launchconfig1_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
A:
type: string
diff --git a/examples/launchconfig2_hot.yaml b/examples/launchconfig2_hot.yaml
index 3bd5549d..1586a4d0 100644
--- a/examples/launchconfig2_hot.yaml
+++ b/examples/launchconfig2_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
C:
type: string
diff --git a/examples/launchconfig_result_hot.yaml b/examples/launchconfig_result_hot.yaml
index e3019f20..1375bae9 100644
--- a/examples/launchconfig_result_hot.yaml
+++ b/examples/launchconfig_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/launchconfig1_hot.yaml,examples/launchconfig2_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
parameters:
A:
default: test1
diff --git a/examples/scale1_hot.yaml b/examples/scale1_hot.yaml
index 5597bbbf..6e46a32d 100644
--- a/examples/scale1_hot.yaml
+++ b/examples/scale1_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
resources:
ComputeUser:
type: AWS::IAM::User
diff --git a/examples/scale2_hot.yaml b/examples/scale2_hot.yaml
index 8800a6c8..0f3989cb 100644
--- a/examples/scale2_hot.yaml
+++ b/examples/scale2_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
ComputeImage:
type: string
diff --git a/examples/scale_map2_hot.yaml b/examples/scale_map2_hot.yaml
index b2b6dfbb..1d7dc5fc 100644
--- a/examples/scale_map2_hot.yaml
+++ b/examples/scale_map2_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
AllHosts:
type: string
diff --git a/examples/scale_map_hot.yaml b/examples/scale_map_hot.yaml
index 282d49bb..24c14dcc 100644
--- a/examples/scale_map_hot.yaml
+++ b/examples/scale_map_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
resources:
ComputeUser:
type: AWS::IAM::User
diff --git a/examples/scale_map_result_hot.yaml b/examples/scale_map_result_hot.yaml
index 5976e54e..69f0f241 100644
--- a/examples/scale_map_result_hot.yaml
+++ b/examples/scale_map_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/scale_map_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
resources:
ComputeUser:
properties:
diff --git a/examples/scale_result_hot.yaml b/examples/scale_result_hot.yaml
index 17c05147..c9f865a5 100644
--- a/examples/scale_result_hot.yaml
+++ b/examples/scale_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/scale1_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
resources:
ComputeUser:
properties:
diff --git a/examples/source2_lib_result_hot.yaml b/examples/source2_lib_result_hot.yaml
index 3f891e47..294fed89 100644
--- a/examples/source2_lib_result_hot.yaml
+++ b/examples/source2_lib_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/source2_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
parameters:
BImage:
type: string
diff --git a/examples/source_hot.yaml b/examples/source_hot.yaml
index e8dd59a3..7b47f2b5 100644
--- a/examples/source_hot.yaml
+++ b/examples/source_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
SourceImage:
type: string
diff --git a/examples/source_include_subkey_hot.yaml b/examples/source_include_subkey_hot.yaml
index b330efe6..8970db44 100644
--- a/examples/source_include_subkey_hot.yaml
+++ b/examples/source_include_subkey_hot.yaml
@@ -1,4 +1,4 @@
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
parameters:
Foo:
type: string
diff --git a/examples/source_include_subkey_result_hot.yaml b/examples/source_include_subkey_result_hot.yaml
index f8853c23..ec3bfb6f 100644
--- a/examples/source_include_subkey_result_hot.yaml
+++ b/examples/source_include_subkey_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/source_include_subkey_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
parameters:
Foo:
type: string
diff --git a/examples/source_lib_result_hot.yaml b/examples/source_lib_result_hot.yaml
index 4c07da0c..0235f200 100644
--- a/examples/source_lib_result_hot.yaml
+++ b/examples/source_lib_result_hot.yaml
@@ -1,5 +1,5 @@
description: examples/source_hot.yaml
-heat_template_version: '2013-05-23'
+heat_template_version: '2014-10-16'
parameters:
SourceImage:
default: my_image
diff --git a/nagios3.yaml b/nagios3.yaml
index 1e0a4615..06cbb6a2 100644
--- a/nagios3.yaml
+++ b/nagios3.yaml
@@ -12,7 +12,7 @@
# License for the specific language governing permissions and limitations
# under the License.
#
-heat_template_version: 2013-05-23
+heat_template_version: 2014-10-16
description: Deploy Nagios
parameters:
adm_web_passwd:
diff --git a/nfs-server-source.yaml b/nfs-server-source.yaml
index 0fed3920..bad7cced 100644
--- a/nfs-server-source.yaml
+++ b/nfs-server-source.yaml
@@ -1,28 +1,28 @@
-Description: 'NFS server share configuration for testing'
-Resources:
+description: 'NFS server share configuration for testing'
+resources:
controller0Config:
- Type: AWS::AutoScaling::LaunchConfiguration
- Metadata:
+ type: AWS::AutoScaling::LaunchConfiguration
+ metadata:
nfs_server:
shares:
Merge::Map:
NovaCompute0:
- Fn::Join:
+ list_join:
- ' '
- - Fn::Select:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- NovaCompute0
- networks
BlockStorage0:
- Fn::Join:
+ list_join:
- ' '
- - Fn::Select:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- BlockStorage0
- networks
diff --git a/nova-compute-config.yaml b/nova-compute-config.yaml
index c4264430..081ca81a 100644
--- a/nova-compute-config.yaml
+++ b/nova-compute-config.yaml
@@ -1,7 +1,7 @@
-Resources:
+resources:
NovaComputeConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
nova:
@@ -54,7 +54,7 @@ Resources:
servers:
- {server: {get_input: ntp_server}, fudge: "stratum 0"}
NovaComputePassthrough:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config: {get_input: passthrough_config}
diff --git a/nova-compute-instance.yaml b/nova-compute-instance.yaml
index baf781df..d8b3a712 100644
--- a/nova-compute-instance.yaml
+++ b/nova-compute-instance.yaml
@@ -1,13 +1,13 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Nova Compute'
-Parameters:
+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
- NoEcho: true
+ default: unset
+ description: The password for the keystone admin account, used for monitoring, querying neutron etc.
+ type: string
+ hidden: true
ExtraConfig:
- Description: |
+ description: |
Additional configuration to inject into the cluster. The JSON should have
the following structure:
{"FILEKEY":
@@ -42,200 +42,201 @@ Parameters:
]
}
}
- Type: Json
+ type: json
KeyName:
- Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
- Type: String
- Default: default
+ 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
+ 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
+ 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
+ type: string
+ default: overcloud-compute
NtpServer:
- Type: String
- Default: ''
+ type: string
+ default: ''
KeystoneHost:
- Type: String
+ 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
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
RabbitUserName:
- Type: String
+ type: string
RabbitPassword:
- Type: String
- NoEcho: true
+ type: string
+ hidden: true
CeilometerComputeAgent:
- Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
- Type: String
- Default: ''
- AllowedValues: ['', Present]
+ 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
- NoEcho: true
+ 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
- NoEcho: true
+ 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
+ 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
+ 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
+ type: string
+ default: libvirt.LibvirtDriver
NovaComputeLibvirtType:
- Type: String
- Default: ''
+ type: string
+ default: ''
NovaApiHost:
- Type: String
+ type: string
NovaPassword:
- Default: unset
- Description: The password for the nova service account, used by nova-api.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the nova service account, used by nova-api.
+ type: string
+ hidden: true
GlanceHost:
- Type: String
+ type: string
GlancePort:
- Default: 9292
- Description: Glance port.
- Type: String
+ 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
+ default: http
+ description: Protocol to use when connecting to glance, set to https for SSL.
+ type: string
CeilometerDSN:
- Type: String
+ type: string
NovaDSN:
- Type: String
+ type: string
NeutronDSN:
- Type: String
+ type: string
NeutronBridgeMappings:
- Type: String
+ type: string
NeutronNetworkVLANRanges:
- Type: String
+ type: string
NeutronNetworkType:
- Type: String
+ type: string
NeutronEnableTunnelling:
- Type: String
+ type: string
AllNodesConfig:
- Type: String
- Description: OS::Heat::Config to use for all nodes deployment
+ 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: ''
+ 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: ''
+ 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: ''
+ 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
+ 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:
+ type: string
+ description: The image ID for live-updates to the overcloud compute nodes.
+ default: ''
+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: [controller0AllNodes]
- Type: OS::Heat::StructuredDeployment
- Properties:
+ depends_on: [controller0AllNodes]
+ type: OS::Heat::StructuredDeployment
+ properties:
signal_transport: NO_SIGNAL
- config: {Ref: NovaComputeConfig}
- server: {Ref: NovaCompute0}
+ config: {get_resource: NovaComputeConfig}
+ server: {get_resource: 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_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}
+ 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: {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ NovaCompute0, networks ]}]]}
+ 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:
- DependsOn: [NovaCompute0Passthrough]
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: AllNodesConfig}
- server: {Ref: NovaCompute0}
+ depends_on: [NovaCompute0Passthrough]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_param: AllNodesConfig}
+ server: {get_resource: NovaCompute0}
NovaCompute0Passthrough:
- DependsOn: [NovaCompute0Deploy]
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: NovaComputePassthrough}
- server: {Ref: NovaCompute0}
+ depends_on: [NovaCompute0Deploy]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: NovaComputePassthrough}
+ server: {get_resource: NovaCompute0}
signal_transport: NO_SIGNAL
input_values:
- passthrough_config: {Ref: ExtraConfig}
+ passthrough_config: {get_param: ExtraConfig}
diff --git a/overcloud-source.yaml b/overcloud-source.yaml
index b8216cd9..acca8ea1 100644
--- a/overcloud-source.yaml
+++ b/overcloud-source.yaml
@@ -1,33 +1,33 @@
-Description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
+description: Nova API,Keystone,Heat Engine and API,Glance,Neutron,Dedicated MySQL
server,Dedicated RabbitMQ Server,Group of Nova Computes
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
+heat_template_version: 2014-10-16
+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
AdminToken:
- Default: unset
- Description: The keystone auth secret.
- Type: String
- NoEcho: true
+ default: unset
+ description: The keystone auth secret.
+ type: string
+ hidden: true
CinderPassword:
- Default: unset
- Description: The password for the cinder service account, used by cinder-api.
- Type: String
- NoEcho: true
+ 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
+ default: tgtadm
+ description: The iSCSI helper to use with cinder.
+ type: string
CinderLVMLoopDeviceSize:
- Default: 5000
- Description: The size of the loopback file used by the cinder LVM driver.
- Type: Number
+ default: 5000
+ description: The size of the loopback file used by the cinder LVM driver.
+ type: number
ExtraConfig:
- Default: {}
- Description: |
+ default: {}
+ description: |
Additional configuration to inject into the cluster. The JSON should have
the following structure:
{"FILEKEY":
@@ -62,302 +62,303 @@ Parameters:
]
}
}
- Type: Json
+ type: json
OvercloudControlFlavor:
- Default: baremetal
- Description: Flavor for control nodes to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor for control nodes to request when deploying.
+ type: string
OvercloudComputeFlavor:
- Default: baremetal
- Description: Flavor for compute nodes to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor for compute nodes to request when deploying.
+ type: string
GlancePort:
- Default: 9292
- Description: Glance port.
- Type: String
+ 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
+ default: http
+ description: Protocol to use when connecting to glance, set to https for SSL.
+ type: string
GlancePassword:
- Default: unset
- Description: The password for the glance service account, used by the glance services.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the glance service account, used by the glance services.
+ type: string
+ hidden: true
GlanceNotifierStrategy:
- Description: Strategy to use for Glance notification queue
- Type: String
- Default: noop
+ 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: ''
+ description: The filepath of the file to use for logging messages from Glance.
+ type: string
+ default: ''
HeatPassword:
- Default: unset
- Description: The password for the Heat service account, used by the Heat services.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the Heat service account, used by the Heat services.
+ type: string
+ hidden: 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
+ 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
+ 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.
- Type: String
- Default: ''
+ description: The OVS logical->physical bridge mappings to use.
+ type: string
+ default: ''
NeutronPassword:
- Default: unset
- Description: The password for the neutron service account, used by neutron agents.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the neutron service account, used by neutron agents.
+ type: string
+ hidden: true
CeilometerComputeAgent:
- Description: Indicates whether the Compute agent is present and expects nova-compute to be configured accordingly
- Type: String
- Default: ''
- AllowedValues: ['', Present]
+ 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
- NoEcho: true
+ 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
- NoEcho: true
+ 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
+ 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
+ default: unset
+ description: The user password for SNMPd with readonly rights running on all Overcloud nodes
+ type: string
+ hidden: true
CloudName:
- Default: ''
- Description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
- Type: String
+ default: ''
+ description: The DNS name of this cloud. E.g. ci-overcloud.tripleo.org
+ type: string
NovaComputeDriver:
- Default: libvirt.LibvirtDriver
- Type: String
+ default: libvirt.LibvirtDriver
+ type: string
NovaComputeLibvirtType:
- Default: ''
- Type: String
+ default: ''
+ type: string
NovaImage:
- Type: String
- Default: overcloud-compute
+ type: string
+ default: overcloud-compute
NovaPassword:
- Default: unset
- Description: The password for the nova service account, used by nova-api.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the nova service account, used by nova-api.
+ type: string
+ hidden: true
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.
HypervisorNeutronPhysicalBridge:
- Default: ''
- Description: An OVS bridge to create on each hypervisor.
- Type: String
+ default: ''
+ description: An OVS bridge to create on each hypervisor.
+ type: string
HypervisorNeutronPublicInterface:
- Default: ''
- Description: What interface to add to the HypervisorNeutronPhysicalBridge.
- Type: String
+ default: ''
+ description: What interface to add to the HypervisorNeutronPhysicalBridge.
+ type: string
NeutronPublicInterface:
- Default: eth0
- Description: What interface to bridge onto br-ex for network nodes.
- Type: String
+ default: eth0
+ description: What interface to bridge onto br-ex for network nodes.
+ type: string
NeutronPublicInterfaceDefaultRoute:
- Default: ''
- Description: A custom default route for the NeutronPublicInterface.
- Type: String
+ 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
+ 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
+ default: ''
+ description: If set, the public interface is a vlan with this device as the raw device.
+ type: string
NeutronControlPlaneID:
- Default: ''
- Type: String
- Description: Neutron ID for ctlplane network.
+ default: ''
+ type: string
+ description: Neutron ID for ctlplane network.
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
+ 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
controllerImage:
- Type: String
- Default: overcloud-control
+ type: string
+ default: overcloud-control
NtpServer:
- Type: String
- Default: ''
+ type: string
+ default: ''
RabbitUserName:
- Default: guest
- Description: The username for RabbitMQ
- Type: String
+ default: guest
+ description: The username for RabbitMQ
+ type: string
RabbitPassword:
- Default: guest
- Description: The password for RabbitMQ
- Type: String
- NoEcho: true
+ default: guest
+ description: The password for RabbitMQ
+ type: string
+ hidden: true
RabbitCookieSalt:
- Type: String
- Default: unset
- Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
+ 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
+ description: Password for heat_domain_admin user.
+ type: string
+ default: ''
+ hidden: true
LiveUpdateUserName:
- Type: String
- Description: The live-update username for the undercloud Glance API.
- Default: ''
+ 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: ''
+ 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: ''
+ 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
+ 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: ''
+ type: string
+ description: The image ID for live-updates to the overcloud compute nodes.
+ default: ''
MysqlInnodbBufferPoolSize:
- Description: >
+ 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
+ type: number
+ default: 0
ControlVirtualInterface:
- Default: 'br-ex'
- Description: Interface where virtual ip will be assigned.
- Type: String
+ default: 'br-ex'
+ description: Interface where virtual ip will be assigned.
+ type: string
ControlFixedIPs:
- Default: []
- Description: Should be used for arbitrary ips.
- Type: Json
+ default: []
+ description: Should be used for arbitrary ips.
+ type: json
PublicVirtualFixedIPs:
- Default: []
- Description: |
+ default: []
+ description: |
Control the IP allocation for the PublicVirtualInterface port. E.g.
[{'ip_address':'1.2.3.4'}]
- Type: Json
+ type: json
PublicVirtualInterface:
- Default: 'br-ex'
- Description: >
+ 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
+ type: string
PublicVirtualNetwork:
- Default: 'ctlplane'
- Type: String
- Description: >
+ default: 'ctlplane'
+ type: string
+ description: >
Neutron network to allocate public virtual IP port on.
KeystoneCACertificate:
- Default: ''
- Description: Keystone self-signed certificate authority certificate.
- Type: String
+ default: ''
+ description: Keystone self-signed certificate authority certificate.
+ type: string
KeystoneSigningCertificate:
- Default: ''
- Description: Keystone certificate for verifying token validity.
- Type: String
+ default: ''
+ description: Keystone certificate for verifying token validity.
+ type: string
KeystoneSigningKey:
- Default: ''
- Description: Keystone key for signing tokens.
- Type: String
- NoEcho: true
-Resources:
+ default: ''
+ description: Keystone key for signing tokens.
+ type: string
+ hidden: true
+resources:
ControlVirtualIP:
- Type: OS::Neutron::Port
- Properties:
+ type: OS::Neutron::Port
+ properties:
name: control_virtual_ip
- network_id: {Ref: NeutronControlPlaneID}
+ network_id: {get_param: NeutronControlPlaneID}
fixed_ips:
- Ref: ControlFixedIPs
+ get_param: ControlFixedIPs
MysqlClusterUniquePart:
- Type: OS::Heat::RandomString
- Properties:
+ type: OS::Heat::RandomString
+ properties:
length: 10
PublicVirtualIP:
- Type: OS::Neutron::Port
- Properties:
+ type: OS::Neutron::Port
+ properties:
name: public_virtual_ip
- network: {Ref: PublicVirtualNetwork}
+ network: {get_param: PublicVirtualNetwork}
fixed_ips:
- Ref: PublicVirtualFixedIPs
+ get_param: PublicVirtualFixedIPs
RabbitCookie:
- Type: OS::Heat::RandomString
- Properties:
+ type: OS::Heat::RandomString
+ properties:
length: 20
salt:
- Ref: RabbitCookieSalt
+ get_param: RabbitCookieSalt
NovaCompute0Deploy:
- Type: FileInclude
+ type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0Deploy
- Parameters:
- NovaApiHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- KeystoneHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- NeutronHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- GlanceHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- NovaDSN: {"Fn::Join": ['', ['mysql://nova:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/nova']]}
- CeilometerDSN: {"Fn::Join": ['', ['mysql://ceilometer:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/ceilometer']]}
- NeutronDSN: {"Fn::Join": ['', ['mysql://neutron:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}, '/ovs_neutron']]}
+ SubKey: resources.NovaCompute0Deploy
+ parameters:
+ NovaApiHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+ KeystoneHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+ NeutronHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+ GlanceHost: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+ NovaDSN: {list_join: ['', ['mysql://nova:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/nova']]}
+ CeilometerDSN: {list_join: ['', ['mysql://ceilometer:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/ceilometer']]}
+ NeutronDSN: {list_join: ['', ['mysql://neutron:unset@', {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}, '/ovs_neutron']]}
NeutronNetworkType: "gre"
NeutronEnableTunnelling: "True"
NeutronFlatNetworks:
- Ref: NeutronFlatNetworks
+ get_param: NeutronFlatNetworks
NeutronNetworkVLANRanges: ""
NeutronPhysicalBridge:
- Ref: HypervisorNeutronPhysicalBridge
+ get_param: HypervisorNeutronPhysicalBridge
NeutronPublicInterface:
- Ref: HypervisorNeutronPublicInterface
+ get_param: HypervisorNeutronPublicInterface
NeutronBridgeMappings:
- Ref: NeutronBridgeMappings
+ get_param: NeutronBridgeMappings
NovaCompute0AllNodes:
- Type: FileInclude
+ type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0AllNodesDeploy
- Parameters:
- AllNodesConfig: {Ref: allNodesConfig}
+ SubKey: resources.NovaCompute0AllNodesDeploy
+ parameters:
+ AllNodesConfig: {get_resource: allNodesConfig}
NovaCompute0Passthrough:
- Type: FileInclude
+ type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0Passthrough
- Parameters:
- passthrough_config: {Ref: ExtraConfig}
+ SubKey: resources.NovaCompute0Passthrough
+ parameters:
+ passthrough_config: {get_param: ExtraConfig}
NovaCompute0:
- Type: FileInclude
+ type: FileInclude
Path: nova-compute-instance.yaml
- SubKey: Resources.NovaCompute0
+ SubKey: resources.NovaCompute0
controllerConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
admin-password:
- Ref: AdminPassword
+ get_param: AdminPassword
admin-token:
- Ref: AdminToken
+ get_param: AdminToken
bootstack:
public_interface_ip:
- Ref: NeutronPublicInterfaceIP
+ get_param: NeutronPublicInterfaceIP
bootstrap_host:
bootstrap_nodeid:
Fn::Select:
@@ -368,18 +369,18 @@ Resources:
controller0:
- Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- controller0
- show
nodeid: {get_input: bootstack_nodeid}
cinder:
db: mysql://cinder:unset@localhost/cinder
volume_size_mb:
- Ref: CinderLVMLoopDeviceSize
+ get_param: CinderLVMLoopDeviceSize
service-password:
- Ref: CinderPassword
+ get_param: CinderPassword
iscsi-helper:
- Ref: CinderISCSIHelper
+ get_param: CinderISCSIHelper
controller-address:
get_input: controller_host
corosync:
@@ -388,7 +389,7 @@ Resources:
nodes:
Merge::Map:
controller0:
- ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
pacemaker:
stonith_enabled : false
recheck_interval : 5
@@ -402,26 +403,26 @@ Resources:
host:
get_input: controller_virtual_ip
port:
- Ref: GlancePort
+ get_param: GlancePort
protocol:
- Ref: GlanceProtocol
+ get_param: GlanceProtocol
service-password:
- Ref: GlancePassword
+ get_param: GlancePassword
swift-store-user: service:glance
swift-store-key:
- Ref: GlancePassword
+ get_param: GlancePassword
notifier-strategy:
- Ref: GlanceNotifierStrategy
+ get_param: GlanceNotifierStrategy
log-file:
- Ref: GlanceLogFile
+ get_param: GlanceLogFile
heat:
admin_password:
- Ref: HeatPassword
+ get_param: HeatPassword
admin_tenant_name: service
admin_user: heat
auth_encryption_key: unset___________
db: mysql://heat:unset@localhost/heat
- stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
+ 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}
@@ -431,58 +432,58 @@ Resources:
nodes:
Merge::Map:
controller0:
- {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+ {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
keystone:
db: mysql://keystone:unset@localhost/keystone
host:
get_input: controller_virtual_ip
- ca_certificate: {Ref: KeystoneCACertificate}
- signing_key: {Ref: KeystoneSigningKey}
- signing_certificate: {Ref: KeystoneSigningCertificate}
+ ca_certificate: {get_param: KeystoneCACertificate}
+ signing_key: {get_param: KeystoneSigningKey}
+ signing_certificate: {get_param: KeystoneSigningCertificate}
mysql:
- innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
+ innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
nodes:
Merge::Map:
controller0:
- ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
cluster_name:
- Fn::Join:
+ list_join:
- '-'
- - 'tripleo'
- - {Ref: MysqlClusterUniquePart}
+ - {get_resource: MysqlClusterUniquePart}
neutron:
- flat-networks: {Ref: NeutronFlatNetworks}
+ flat-networks: {get_param: NeutronFlatNetworks}
host: {get_input: controller_virtual_ip}
metadata_proxy_shared_secret: unset
ovs:
enable_tunneling: 'True'
local_ip:
get_input: controller_host
- bridge_mappings: {Ref: NeutronBridgeMappings}
+ bridge_mappings: {get_param: NeutronBridgeMappings}
public_interface:
- Ref: NeutronPublicInterface
+ get_param: NeutronPublicInterface
public_interface_raw_device:
- Ref: NeutronPublicInterfaceRawDevice
+ get_param: NeutronPublicInterfaceRawDevice
public_interface_route:
- Ref: NeutronPublicInterfaceDefaultRoute
+ get_param: NeutronPublicInterfaceDefaultRoute
physical_bridge: br-ex
tenant_network_type: gre
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
service-password:
- Ref: NeutronPassword
+ get_param: NeutronPassword
dnsmasq-options:
- Ref: NeutronDnsmasqOptions
+ get_param: NeutronDnsmasqOptions
ceilometer:
db: mysql://ceilometer:unset@localhost/ceilometer
- metering_secret: {Ref: CeilometerMeteringSecret}
+ metering_secret: {get_param: CeilometerMeteringSecret}
service-password:
- Ref: CeilometerPassword
+ get_param: CeilometerPassword
snmpd:
export_MIB: UCD-SNMP-MIB
readonly_user_name:
- Ref: SnmpdReadonlyUserName
+ get_param: SnmpdReadonlyUserName
readonly_user_password:
- Ref: SnmpdReadonlyUserPassword
+ get_param: SnmpdReadonlyUserPassword
nova:
compute_driver: libvirt.LibvirtDriver
db: mysql://nova:unset@localhost/nova
@@ -491,39 +492,39 @@ Resources:
host: {get_input: controller_virtual_ip}
metadata-proxy: true
service-password:
- Ref: NovaPassword
+ get_param: NovaPassword
rabbit:
username:
- Ref: RabbitUserName
+ get_param: RabbitUserName
password:
- Ref: RabbitPassword
+ get_param: RabbitPassword
cookie:
- Fn::GetAtt:
+ get_attr:
- RabbitCookie
- value
ntp:
servers:
- - {server: {Ref: NtpServer}, fudge: "stratum 0"}
+ - {server: {get_param: NtpServer}, fudge: "stratum 0"}
virtual_interfaces:
instances:
- vrrp_instance_name: VI_CONTROL
virtual_router_id: 51
keepalive_interface:
- Ref: ControlVirtualInterface
+ get_param: ControlVirtualInterface
priority: 101
virtual_ips:
- - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
interface:
- Ref: ControlVirtualInterface
+ get_param: ControlVirtualInterface
- vrrp_instance_name: VI_PUBLIC
virtual_router_id: 52
keepalive_interface:
- Ref: PublicVirtualInterface
+ get_param: PublicVirtualInterface
priority: 101
virtual_ips:
- - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]}
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
interface:
- Ref: PublicVirtualInterface
+ get_param: PublicVirtualInterface
vrrp_sync_groups:
- name: VG1
members:
@@ -531,31 +532,31 @@ Resources:
- VI_PUBLIC
keepalived:
keepalive_interface:
- Ref: PublicVirtualInterface
+ get_param: PublicVirtualInterface
priority: 101
virtual_ips:
-
- ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
interface:
- Ref: ControlVirtualInterface
+ get_param: ControlVirtualInterface
-
- ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]}
+ ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
interface:
- Ref: PublicVirtualInterface
+ get_param: PublicVirtualInterface
haproxy:
nodes:
Merge::Map:
controller0:
- ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
- name: {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+ ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
+ name: {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
net_binds:
- - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
services:
- name: keystone_admin
port: 35357
net_binds: &public_binds
- - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
- - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [PublicVirtualIP, fixed_ips]]]}
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
+ - ip: {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [PublicVirtualIP, fixed_ips]]]}
- name: keystone_public
port: 5000
net_binds: *public_binds
@@ -598,41 +599,41 @@ Resources:
port: 8080
net_binds: *public_binds
controllerPassthrough:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config: {get_input: passthrough_config}
controller0:
- Type: OS::Nova::Server
- Properties:
+ type: OS::Nova::Server
+ properties:
image:
- Ref: controllerImage
+ get_param: controllerImage
image_update_policy:
- Ref: ImageUpdatePolicy
+ get_param: ImageUpdatePolicy
flavor:
- Ref: OvercloudControlFlavor
+ get_param: OvercloudControlFlavor
key_name:
- Ref: KeyName
+ get_param: KeyName
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
controller0AllNodes:
- DependsOn: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: allNodesConfig}
- server: {Ref: controller0}
+ depends_on: [controller0Deployment,controller0SSLDeployment,controller0Swift,controller0Passthrough]
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: allNodesConfig}
+ server: {get_resource: controller0}
controller0Deployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
+ type: OS::Heat::StructuredDeployment
+ properties:
signal_transport: NO_SIGNAL
- config: {Ref: controllerConfig}
- server: {Ref: controller0}
+ config: {get_resource: controllerConfig}
+ server: {get_resource: controller0}
input_values:
bootstack_nodeid:
Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- controller0
- show
controller_host:
@@ -640,102 +641,102 @@ Resources:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- controller0
- networks
controller_virtual_ip:
- {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
heat.watch_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
- ':8003'
heat.metadata_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
- ':8000'
heat.waitcondition_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {'Fn::Select': [ip_address, 'Fn::Select': [0, 'Fn::GetAtt': [ControlVirtualIP, fixed_ips]]]}
+ - {'Fn::Select': [ip_address, 'Fn::Select': [0, get_attr: [ControlVirtualIP, fixed_ips]]]}
- ':8000/v1/waitcondition'
allNodesConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
completion-signal: {get_input: deploy_signal_id}
hosts:
- Fn::Join:
+ list_join:
- "\n"
- - - Fn::Join:
+ - - list_join:
- "\n"
- Merge::Map:
NovaCompute0:
- Fn::Join:
+ list_join:
- ' '
- - Fn::Select:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- NovaCompute0
- networks
- Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- NovaCompute0
- show
- - Fn::Join:
+ - list_join:
- '.'
- - Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- NovaCompute0
- show
- 'novalocal'
- - Fn::Join:
+ - list_join:
- "\n"
- Merge::Map:
controller0:
- Fn::Join:
+ list_join:
- ' '
- - Fn::Select:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- controller0
- networks
- Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- controller0
- show
- - Fn::Join:
+ - list_join:
- '.'
- - Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- controller0
- show
- 'novalocal'
- - {Ref: CloudName}
+ - {get_param: CloudName}
rabbit:
nodes:
- Fn::Join:
+ list_join:
- ','
- Merge::Map:
controller0:
- {"Fn::Select": [ name, {"Fn::GetAtt": [controller0, show]} ] }
+ {"Fn::Select": [ name, {get_attr: [controller0, show]} ] }
controller0SSLDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: SSLConfig}
- server: {Ref: controller0}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: SSLConfig}
+ server: {get_resource: controller0}
signal_transport: NO_SIGNAL
input_values:
controller_host:
@@ -743,32 +744,32 @@ Resources:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- controller0
- networks
- ssl_certificate: {Ref: SSLCertificate}
- ssl_key: {Ref: SSLKey}
- ssl_ca_certificate: {Ref: SSLCACertificate}
+ ssl_certificate: {get_param: SSLCertificate}
+ ssl_key: {get_param: SSLKey}
+ ssl_ca_certificate: {get_param: SSLCACertificate}
controller0Passthrough:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: controllerPassthrough}
- server: {Ref: controller0}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: controllerPassthrough}
+ server: {get_resource: controller0}
signal_transport: NO_SIGNAL
input_values:
- passthrough_config: {Ref: ExtraConfig}
-Outputs:
+ passthrough_config: {get_param: ExtraConfig}
+outputs:
KeystoneURL:
- Description: URL for the Overcloud Keystone service
- Value:
- Fn::Join:
+ description: URL for the Overcloud Keystone service
+ value:
+ list_join:
- ''
- - http://
- Fn::Select:
- ip_address
- Fn::Select:
- 0
- - Fn::GetAtt:
+ - get_attr:
- ControlVirtualIP
- fixed_ips
- :5000/v2.0/
diff --git a/ssl-source.yaml b/ssl-source.yaml
index e64eca51..09ea52a2 100644
--- a/ssl-source.yaml
+++ b/ssl-source.yaml
@@ -1,23 +1,23 @@
-Description: 'ssl-source: SSL endpoint metadata for openstack'
-Parameters:
+description: 'ssl-source: SSL endpoint metadata for openstack'
+parameters:
SSLCertificate:
- Default: ''
- Description: If set, the contents of an SSL certificate .crt file for encrypting SSL endpoints.
- Type: String
- NoEcho: true
+ 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
- NoEcho: true
+ 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
-Resources:
+ default: ''
+ description: If set, the contents of an SSL certificate authority file.
+ type: string
+resources:
SSLConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
stunnel:
diff --git a/swift-deploy.yaml b/swift-deploy.yaml
index e5b83de4..2da242e1 100644
--- a/swift-deploy.yaml
+++ b/swift-deploy.yaml
@@ -1,55 +1,55 @@
-Description: 'Swift-proxy: OpenStack object storage proxy'
-Parameters:
+description: 'Swift-proxy: OpenStack object storage proxy'
+parameters:
SwiftHashSuffix:
- Default: unset
- Description: A random string to be used as a salt when hashing to determine mappings in the ring.
- Type: String
- NoEcho: true
+ 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
- NoEcho: true
-Resources:
+ default: unset
+ description: The password for the swift service account, used by the swift proxy services.
+ type: string
+ hidden: true
+resources:
controller0Swift:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: SwiftConfig}
- server: {Ref: controller0}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: SwiftConfig}
+ server: {get_resource: controller0}
signal_transport: NO_SIGNAL
input_values:
- swift_hash_suffix: {Ref: SwiftHashSuffix}
- swift_password: {Ref: SwiftPassword}
+ swift_hash_suffix: {get_param: SwiftHashSuffix}
+ swift_password: {get_param: SwiftPassword}
swift_devices:
- Fn::Join:
+ list_join:
- ', '
- Merge::Map:
controller0:
- Fn::Join:
+ list_join:
- ''
- - 'r1z1-'
- - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
- ':%PORT%/d1'
SwiftStorage0:
- Fn::Join:
+ list_join:
- ''
- - 'r1z1-'
- Fn::Select:
- 0
- Fn::Select:
- 'ctlplane'
- - Fn::GetAtt:
+ - get_attr:
- SwiftStorage0
- networks
- ':%PORT%/d1'
swift_proxy_memcache:
- Fn::Join:
+ list_join:
- ','
- Merge::Map:
controller0:
- Fn::Join:
+ list_join:
- ', '
- - - Fn::Join:
+ - - list_join:
- ''
- - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
- ':11211'
diff --git a/swift-source.yaml b/swift-source.yaml
index 3ca2b1a8..a0336872 100644
--- a/swift-source.yaml
+++ b/swift-source.yaml
@@ -1,7 +1,7 @@
-Resources:
+resources:
SwiftConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
group: os-apply-config
config:
swift:
@@ -12,7 +12,7 @@ Resources:
replicas: 1
service-password: { get_input: swift_password }
neutron:
- enable_tunnelling: {Ref: NeutronEnableTunnelling}
- tenant_network_type: {Ref: NeutronNetworkType}
+ enable_tunnelling: {get_param: NeutronEnableTunnelling}
+ tenant_network_type: {get_param: NeutronNetworkType}
ovs:
local_ip: { get_input: neutron_local_ip }
diff --git a/swift-storage-source.yaml b/swift-storage-source.yaml
index cbbecf10..92bcf273 100644
--- a/swift-storage-source.yaml
+++ b/swift-storage-source.yaml
@@ -1,81 +1,81 @@
-HeatTemplateFormatVersion: '2012-12-12'
-Description: 'Common Swift Storage Configuration'
-Parameters:
+heat_template_version: 2014-10-16
+description: 'Common Swift Storage Configuration'
+parameters:
SwiftStorageImage:
- Type: String
- Default: overcloud-swift-storage
+ type: string
+ default: overcloud-swift-storage
OvercloudSwiftStorageFlavor:
- Default: baremetal
- Description: Flavor for Swift storage nodes to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor for Swift storage nodes to request when deploying.
+ type: string
NeutronNetworkType:
- Type: String
- Default: 'gre'
+ type: string
+ default: 'gre'
NeutronEnableTunnelling:
- Type: String
- Default: True
-Resources:
+ type: string
+ default: True
+resources:
SwiftStorage0:
- Type: OS::Nova::Server
- Properties:
- image: {Ref: SwiftStorageImage}
- flavor: {Ref: OvercloudSwiftStorageFlavor}
- key_name: {Ref: KeyName}
+ type: OS::Nova::Server
+ properties:
+ image: {get_param: SwiftStorageImage}
+ flavor: {get_param: OvercloudSwiftStorageFlavor}
+ key_name: {get_param: KeyName}
user_data_format: SOFTWARE_CONFIG
SwiftKeystoneConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
keystone:
host: {get_input: keystone_host}
SwiftStorage0Keystone:
- Type: OS::Heat::StructuredDeployment
- Properties:
- server: {Ref: SwiftStorage0}
- config: {Ref: SwiftKeystoneConfig}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: SwiftStorage0}
+ config: {get_resource: SwiftKeystoneConfig}
signal_transport: NO_SIGNAL
input_values:
- keystone_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ keystone_host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
SwiftStorage0Deploy:
- Type: OS::Heat::StructuredDeployment
- Properties:
- server: {Ref: SwiftStorage0}
- config: {Ref: SwiftConfig}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ server: {get_resource: SwiftStorage0}
+ config: {get_resource: SwiftConfig}
signal_transport: NO_SIGNAL
input_values:
- neutron_local_ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [SwiftStorage0, networks]} ]} ] }
- swift_hash_suffix: {Ref: SwiftHashSuffix}
- swift_password: {Ref: SwiftPassword}
+ neutron_local_ip: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [SwiftStorage0, networks]} ]} ] }
+ swift_hash_suffix: {get_param: SwiftHashSuffix}
+ swift_password: {get_param: SwiftPassword}
swift_devices:
- Fn::Join:
+ list_join:
- ', '
- Merge::Map:
controller0:
- Fn::Join:
+ list_join:
- ''
- - 'r1z1-'
- - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
- ':%PORT%/d1'
SwiftStorage0:
- Fn::Join:
+ list_join:
- ''
- - 'r1z1-'
- Fn::Select:
- 0
- Fn::Select:
- 'ctlplane'
- - Fn::GetAtt:
+ - get_attr:
- SwiftStorage0
- networks
- ':%PORT%/d1'
swift_proxy_memcache:
- Fn::Join:
+ list_join:
- ','
- Merge::Map:
controller0:
- Fn::Join:
+ list_join:
- ', '
- - - Fn::Join:
+ - - list_join:
- ''
- - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] }
+ - - {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {get_attr: [controller0, networks]} ]} ] }
- ':11211'
diff --git a/tripleo_heat_merge/merge.py b/tripleo_heat_merge/merge.py
index 077bcb1c..3549769d 100644
--- a/tripleo_heat_merge/merge.py
+++ b/tripleo_heat_merge/merge.py
@@ -26,7 +26,7 @@ class Cfn(object):
class Hot(object):
base_template = {
- 'heat_template_version': '2013-05-23',
+ 'heat_template_version': '2014-10-16',
'description': []
}
get_resource = 'get_resource'
diff --git a/undercloud-bm-nova-config.yaml b/undercloud-bm-nova-config.yaml
index 1d40121a..ba39710b 100644
--- a/undercloud-bm-nova-config.yaml
+++ b/undercloud-bm-nova-config.yaml
@@ -1,7 +1,7 @@
-Resources:
+resources:
undercloudNovaConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
nova:
compute_hostname: undercloud
diff --git a/undercloud-bm-nova-deploy.yaml b/undercloud-bm-nova-deploy.yaml
index 41cf10a5..3df85970 100644
--- a/undercloud-bm-nova-deploy.yaml
+++ b/undercloud-bm-nova-deploy.yaml
@@ -1,25 +1,25 @@
-Parameters:
+parameters:
NeutronPublicInterface:
- Default: eth2
- Description: What interface to bridge onto br-ex for network nodes.
- Type: String
+ default: eth2
+ description: What interface to bridge onto br-ex for network nodes.
+ type: string
PowerManager:
- Default: nova.virt.baremetal.ipmi.IPMI
- Description: Bare metal power manager driver.
- Type: String
+ default: nova.virt.baremetal.ipmi.IPMI
+ description: Bare metal power manager driver.
+ type: string
PxeDeployTimeout:
- Default: 2400
- Description: Timeout for PXE deployment of baremetal nodes
- Type: Number
-Resources:
+ default: 2400
+ description: Timeout for PXE deployment of baremetal nodes
+ type: number
+resources:
01_undercloudNovaDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudNovaConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudNovaConfig}
+ server: {get_resource: undercloud}
signal_transport: NO_SIGNAL
input_values:
- nova_arch: {Ref: BaremetalArch}
- power_manager: {Ref: PowerManager}
- pxe_deploy_timeout: {Ref: PxeDeployTimeout}
- nova_service_password: {Ref: NovaPassword}
+ nova_arch: {get_param: BaremetalArch}
+ power_manager: {get_param: PowerManager}
+ pxe_deploy_timeout: {get_param: PxeDeployTimeout}
+ nova_service_password: {get_param: NovaPassword}
diff --git a/undercloud-source.yaml b/undercloud-source.yaml
index aa0c9eed..e39eb5ee 100644
--- a/undercloud-source.yaml
+++ b/undercloud-source.yaml
@@ -1,46 +1,46 @@
-Description: All-in-one baremetal OpenStack and all dependencies.
-HeatTemplateFormatVersion: '2012-12-12'
-Parameters:
+description: All-in-one baremetal OpenStack and all dependencies.
+heat_template_version: 2014-10-16
+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
AdminToken:
- Default: unset
- Description: The keystone auth secret.
- Type: String
- NoEcho: true
+ 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
+ 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
+ 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
+ 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
- NoEcho: true
+ 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
+ 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
+ default: unset
+ description: The user password for SNMPd with readonly rights running on all Overcloud nodes
+ type: string
+ hidden: true
ExtraConfig:
- Default: {}
- Description: |
+ default: {}
+ description: |
Additional configuration to inject into the cluster. The JSON should have
the following structure:
{"FILEKEY":
@@ -75,128 +75,128 @@ Parameters:
]
}
}
- Type: Json
+ type: json
Flavor:
- Default: baremetal
- Description: Flavor to request when deploying.
- Type: String
+ default: baremetal
+ description: Flavor to request when deploying.
+ type: string
GlancePort:
- Default: 9292
- Description: Glance port.
- Type: String
+ 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
+ default: http
+ description: Protocol to use when connecting to glance, set to https for SSL.
+ type: string
GlancePassword:
- Default: unset
- Description: The password for the glance service account, used by the glance services.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the glance service account, used by the glance services.
+ type: string
+ hidden: true
GlanceNotifierStrategy:
- Description: Strategy to use for Glance notification queue
- Type: String
- Default: noop
+ 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: ''
+ 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
+ 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
+ default: unset
+ description: The password for the Heat service account, used by the Heat services.
+ type: string
+ hidden: true
ImageUpdatePolicy:
- Default: REBUILD_PRESERVE_EPHEMERAL
- Description: What policy to use when reconstructing instances. REBUILD for rebuilds,
+ default: REBUILD_PRESERVE_EPHEMERAL
+ description: What policy to use when reconstructing instances. REBUILD for rebuilds,
REBUILD_PRESERVE_EPHEMERAL to preserve /mnt.
- Type: String
+ type: string
undercloudImage:
- Default: undercloud
- Type: String
+ default: undercloud
+ type: string
NeutronPassword:
- Default: unset
- Description: The password for the neutron service account, used by neutron agents.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the neutron service account, used by neutron agents.
+ type: string
+ hidden: true
NovaPassword:
- Default: unset
- Description: The password for the nova service account, used by nova-api.
- Type: String
- NoEcho: true
+ default: unset
+ description: The password for the nova service account, used by nova-api.
+ type: string
+ hidden: true
NeutronPublicInterfaceDefaultRoute:
- Default: ''
- Description: A custom default route for the NeutronPublicInterface.
- Type: String
+ 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
+ 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
+ default: ''
+ description: If set, the public interface is a vlan with this device as the raw device.
+ type: string
NtpServer:
- Type: String
- Default: ''
+ type: string
+ default: ''
RabbitUserName:
- Default: guest
- Description: The username for RabbitMQ
- Type: String
+ default: guest
+ description: The username for RabbitMQ
+ type: string
RabbitPassword:
- Default: guest
- Description: The password for RabbitMQ
- Type: String
- NoEcho: true
+ default: guest
+ description: The password for RabbitMQ
+ type: string
+ hidden: true
RabbitCookieSalt:
- Type: String
- Default: unset
- Description: Salt for the rabbit cookie, change this to force the randomly generated rabbit cookie to change.
+ 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
+ description: Password for heat_domain_admin user.
+ type: string
+ default: ''
+ hidden: true
MysqlInnodbBufferPoolSize:
- Description: >
+ 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
+ type: number
+ default: 0
KeystoneCACertificate:
- Default: ''
- Description: Keystone self-signed certificate authority certificate.
- Type: String
+ default: ''
+ description: Keystone self-signed certificate authority certificate.
+ type: string
KeystoneSigningCertificate:
- Default: ''
- Description: Keystone certificate for verifying token validity.
- Type: String
+ default: ''
+ description: Keystone certificate for verifying token validity.
+ type: string
KeystoneSigningKey:
- Default: ''
- Description: Keystone key for signing tokens.
- Type: String
- NoEcho: true
-Resources:
+ default: ''
+ description: Keystone key for signing tokens.
+ type: string
+ hidden: true
+resources:
RabbitCookie:
- Type: OS::Heat::RandomString
- Properties:
+ type: OS::Heat::RandomString
+ properties:
length: 20
salt:
- Ref: RabbitCookieSalt
+ get_param: RabbitCookieSalt
undercloudConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
completion-signal: {get_input: deploy_signal_id}
admin-password:
- Ref: AdminPassword
+ get_param: AdminPassword
admin-token:
- Ref: AdminToken
+ get_param: AdminToken
bootstrap_host:
bootstrap_nodeid:
Fn::Select:
@@ -207,68 +207,68 @@ Resources:
undercloud:
- Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- undercloud
- show
nodeid: {get_input: bootstack_nodeid}
bootstack:
public_interface_ip:
- Ref: NeutronPublicInterfaceIP
+ get_param: NeutronPublicInterfaceIP
controller-address:
get_input: controller_host
ceilometer:
db: mysql://ceilometer:unset@localhost/ceilometer
- metering_secret: {Ref: CeilometerMeteringSecret}
+ metering_secret: {get_param: CeilometerMeteringSecret}
snmpd_readonly_user_name:
- Ref: SnmpdReadonlyUserName
+ get_param: SnmpdReadonlyUserName
snmpd_readonly_user_password:
- Ref: SnmpdReadonlyUserPassword
+ get_param: SnmpdReadonlyUserPassword
service-password:
- Ref: CeilometerPassword
+ get_param: CeilometerPassword
db-password: unset
glance:
backend: file
db: mysql://glance:unset@localhost/glance
host: 127.0.0.1
port:
- Ref: GlancePort
+ get_param: GlancePort
protocol:
- Ref: GlanceProtocol
+ get_param: GlanceProtocol
service-password:
- Ref: GlancePassword
+ get_param: GlancePassword
notifier-strategy:
- Ref: GlanceNotifierStrategy
+ get_param: GlanceNotifierStrategy
log-file:
- Ref: GlanceLogFile
+ get_param: GlanceLogFile
heat:
admin_password:
- Ref: HeatPassword
+ get_param: HeatPassword
admin_tenant_name: service
admin_user: heat
auth_encryption_key: unset___________
db: mysql://heat:unset@localhost/heat
- stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword}
+ 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: mysql://keystone:unset@localhost/keystone
host: 127.0.0.1
- ca_certificate: {Ref: KeystoneCACertificate}
- signing_key: {Ref: KeystoneSigningKey}
- signing_certificate: {Ref: KeystoneSigningCertificate}
+ ca_certificate: {get_param: KeystoneCACertificate}
+ signing_key: {get_param: KeystoneSigningKey}
+ signing_certificate: {get_param: KeystoneSigningCertificate}
mysql:
- innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize}
+ innodb_buffer_pool_size: {get_param: MysqlInnodbBufferPoolSize}
neutron:
host: 127.0.0.1
ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8
ovs:
public_interface:
- Ref: NeutronPublicInterface
+ get_param: NeutronPublicInterface
public_interface_raw_device:
- Ref: NeutronPublicInterfaceRawDevice
+ get_param: NeutronPublicInterfaceRawDevice
public_interface_route:
- Ref: NeutronPublicInterfaceDefaultRoute
+ get_param: NeutronPublicInterfaceDefaultRoute
physical_bridge: br-ctlplane
physical_network: ctlplane
network_vlan_ranges: ctlplane
@@ -276,48 +276,48 @@ Resources:
tenant_network_type: vlan
enable_tunneling: 'False'
service-password:
- Ref: NeutronPassword
+ get_param: NeutronPassword
rabbit:
host: 127.0.0.1
username:
- Ref: RabbitUserName
+ get_param: RabbitUserName
password:
- Ref: RabbitPassword
+ get_param: RabbitPassword
cookie:
- Fn::GetAtt:
+ get_attr:
- RabbitCookie
- value
ntp:
servers:
- - {server: {Ref: NtpServer}, fudge: "stratum 0"}
+ - {server: {get_param: NtpServer}, fudge: "stratum 0"}
undercloudPassthroughConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config: {get_input: passthrough_config}
undercloud:
- Type: OS::Nova::Server
- Properties:
+ type: OS::Nova::Server
+ properties:
image:
- Ref: undercloudImage
+ get_param: undercloudImage
flavor:
- Ref: Flavor
+ get_param: Flavor
key_name:
- Ref: KeyName
+ get_param: KeyName
image_update_policy:
- Ref: ImageUpdatePolicy
+ get_param: ImageUpdatePolicy
networks:
- network: ctlplane
user_data_format: SOFTWARE_CONFIG
99_undercloudDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudConfig}
+ server: {get_resource: undercloud}
input_values:
bootstack_nodeid:
Fn::Select:
- name
- - Fn::GetAtt:
+ - get_attr:
- undercloud
- show
controller_host:
@@ -325,32 +325,32 @@ Resources:
- 0
- Fn::Select:
- ctlplane
- - Fn::GetAtt:
+ - get_attr:
- undercloud
- networks
heat.watch_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
+ - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
- ':8003'
heat.metadata_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
+ - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
- ':8000'
heat.waitcondition_server_url:
- Fn::Join:
+ list_join:
- ''
- - 'http://'
- - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ undercloud, networks ]}]]}
+ - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { get_attr: [ undercloud, networks ]}]]}
- ':8000/v1/waitcondition'
00_undercloudPassthroughDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudPassthroughConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudPassthroughConfig}
+ server: {get_resource: undercloud}
signal_transport: NO_SIGNAL
input_values:
- passthrough_config: {Ref: ExtraConfig}
+ passthrough_config: {get_param: ExtraConfig}
diff --git a/undercloud-vm-ironic-config.yaml b/undercloud-vm-ironic-config.yaml
index 241efa19..1a90504a 100644
--- a/undercloud-vm-ironic-config.yaml
+++ b/undercloud-vm-ironic-config.yaml
@@ -1,7 +1,7 @@
-Resources:
+resources:
undercloudNovaConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
nova:
compute_hostname: undercloud
@@ -16,8 +16,8 @@ Resources:
reserved_host_memory_mb: 0
service-password: {get_input: nova_service_password}
undercloudIronicConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
ironic:
db: mysql://ironic:unset@localhost/ironic
diff --git a/undercloud-vm-ironic-deploy.yaml b/undercloud-vm-ironic-deploy.yaml
index 10eb44d2..8fff9d54 100644
--- a/undercloud-vm-ironic-deploy.yaml
+++ b/undercloud-vm-ironic-deploy.yaml
@@ -1,31 +1,31 @@
-Parameters:
+parameters:
IronicPassword:
- Type: String
- Description: Ironic password for keystone access
- NoEcho: true
+ type: string
+ description: Ironic password for keystone access
+ hidden: true
NeutronPublicInterface:
- Default: eth0
- Description: What interface to bridge onto br-ex for network nodes.
- Type: String
+ default: eth0
+ description: What interface to bridge onto br-ex for network nodes.
+ type: string
PowerSSHPrivateKey:
- Description: Private key for using to ssh to a virtual power host.
- Type: String
- NoEcho: true
-Resources:
+ description: Private key for using to ssh to a virtual power host.
+ type: string
+ hidden: true
+resources:
01_undercloudNovaDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudNovaConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudNovaConfig}
+ server: {get_resource: undercloud}
signal_transport: NO_SIGNAL
input_values:
- nova_service_password: {Ref: NovaPassword}
+ nova_service_password: {get_param: NovaPassword}
02_undercloudIronicDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudIronicConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudIronicConfig}
+ server: {get_resource: undercloud}
signal_transport: NO_SIGNAL
input_values:
- ironic_service_password: {Ref: IronicPassword}
- virtual_power_ssh_key: {Ref: PowerSSHPrivateKey}
+ ironic_service_password: {get_param: IronicPassword}
+ virtual_power_ssh_key: {get_param: PowerSSHPrivateKey}
diff --git a/undercloud-vm-nova-config.yaml b/undercloud-vm-nova-config.yaml
index 99da8059..77d23c1e 100644
--- a/undercloud-vm-nova-config.yaml
+++ b/undercloud-vm-nova-config.yaml
@@ -1,7 +1,7 @@
-Resources:
+resources:
undercloudNovaConfig:
- Type: OS::Heat::StructuredConfig
- Properties:
+ type: OS::Heat::StructuredConfig
+ properties:
config:
nova:
compute_hostname: undercloud
diff --git a/undercloud-vm-nova-deploy.yaml b/undercloud-vm-nova-deploy.yaml
index 16890360..14809384 100644
--- a/undercloud-vm-nova-deploy.yaml
+++ b/undercloud-vm-nova-deploy.yaml
@@ -1,40 +1,40 @@
-Parameters:
+parameters:
NeutronPublicInterface:
- Default: eth0
- Description: What interface to bridge onto br-ex for network nodes.
- Type: String
+ default: eth0
+ description: What interface to bridge onto br-ex for network nodes.
+ type: string
PowerManager:
- Default: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
- Description: Bare metal power manager driver.
- Type: String
+ default: nova.virt.baremetal.virtual_power_driver.VirtualPowerManager
+ description: Bare metal power manager driver.
+ type: string
PxeDeployTimeout:
- Default: 2400
- Description: Timeout for PXE deployment of baremetal nodes
- Type: Number
+ default: 2400
+ description: Timeout for PXE deployment of baremetal nodes
+ type: number
PowerSSHHost:
- Default: 192.168.122.1
- Description: SSH host to ssh to for power management operations.
- Type: String
+ default: 192.168.122.1
+ description: SSH host to ssh to for power management operations.
+ type: string
PowerSSHPrivateKey:
- Description: Private key for using to ssh to a virtual power host.
- Type: String
- NoEcho: true
+ description: Private key for using to ssh to a virtual power host.
+ type: string
+ hidden: true
PowerUserName:
- Default: stack
- Description: What username to ssh to the virtual power host with.
- Type: String
-Resources:
+ default: stack
+ description: What username to ssh to the virtual power host with.
+ type: string
+resources:
01_undercloudNovaDeployment:
- Type: OS::Heat::StructuredDeployment
- Properties:
- config: {Ref: undercloudNovaConfig}
- server: {Ref: undercloud}
+ type: OS::Heat::StructuredDeployment
+ properties:
+ config: {get_resource: undercloudNovaConfig}
+ server: {get_resource: undercloud}
signal_transport: NO_SIGNAL
input_values:
- nova_arch: {Ref: BaremetalArch}
- power_manager: {Ref: PowerManager}
- pxe_deploy_timeout: {Ref: PxeDeployTimeout}
- nova_service_password: {Ref: NovaPassword}
- user: {Ref: PowerUserName}
- ssh_host: {Ref: PowerSSHHost}
- ssh_key: {Ref: PowerSSHPrivateKey}
+ nova_arch: {get_param: BaremetalArch}
+ power_manager: {get_param: PowerManager}
+ pxe_deploy_timeout: {get_param: PxeDeployTimeout}
+ nova_service_password: {get_param: NovaPassword}
+ user: {get_param: PowerUserName}
+ ssh_host: {get_param: PowerSSHHost}
+ ssh_key: {get_param: PowerSSHPrivateKey}