From beca15dec5265783047d5df210b270ed3d77dd4b Mon Sep 17 00:00:00 2001 From: Steve Baker Date: Mon, 4 Aug 2014 08:43:34 +1200 Subject: [PATCH] Port all templates to HOT This change was generated and validated by running the following: make hot clean all validate-all This converts all templates to be valid HOT. Fn::Select is not converted in this change but this will actually work with heat_template_version 2013-05-23. Fn::Select is converted manually in the next change in this series. This change also sets the heat_template_version to 2014-10-16 which includes the list_join intrinsic functions used throughout these templates. Partial-Blueprint: tripleo-juno-remove-mergepy Change-Id: Ib3cbb83f6ae94adb7b793ab1b662bd5c55cbb5b3 --- Makefile | 10 +- base.yaml | 78 +-- block-storage-nfs.yaml | 82 +-- block-storage.yaml | 96 ++-- controller.yaml | 226 ++++---- debian-mirror.yaml | 42 +- examples/launchconfig1_hot.yaml | 2 +- examples/launchconfig2_hot.yaml | 2 +- examples/launchconfig_result_hot.yaml | 2 +- examples/scale1_hot.yaml | 2 +- examples/scale2_hot.yaml | 2 +- examples/scale_map2_hot.yaml | 2 +- examples/scale_map_hot.yaml | 2 +- examples/scale_map_result_hot.yaml | 2 +- examples/scale_result_hot.yaml | 2 +- examples/source2_lib_result_hot.yaml | 2 +- examples/source_hot.yaml | 2 +- examples/source_include_subkey_hot.yaml | 2 +- examples/source_include_subkey_result_hot.yaml | 2 +- examples/source_lib_result_hot.yaml | 2 +- nagios3.yaml | 2 +- nfs-server-source.yaml | 16 +- nova-compute-config.yaml | 10 +- nova-compute-instance.yaml | 311 +++++------ overcloud-source.yaml | 685 +++++++++++++------------ ssl-source.yaml | 32 +- swift-deploy.yaml | 52 +- swift-source.yaml | 10 +- swift-storage-source.yaml | 82 +-- tripleo_heat_merge/merge.py | 2 +- undercloud-bm-nova-config.yaml | 6 +- undercloud-bm-nova-deploy.yaml | 38 +- undercloud-source.yaml | 340 ++++++------ undercloud-vm-ironic-config.yaml | 10 +- undercloud-vm-ironic-deploy.yaml | 44 +- undercloud-vm-nova-config.yaml | 6 +- undercloud-vm-nova-deploy.yaml | 62 +-- 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} -- 2.16.6