From be5af1a35e6bbb9e517fd953a5fe0e2467676b91 Mon Sep 17 00:00:00 2001 From: Clint Byrum Date: Wed, 19 Mar 2014 15:16:32 -0700 Subject: Switch overcloud to software-config This migrates the overcloud to using OS::Heat::StructuredConfig and OS::Heat::StructuredDeployment. With those tools, we can decouple servers from software configuration and begin to deprecate features in tripleo_heat_merge. Change-Id: Ice85f0711e90d0fabf1d1bc4698201c4d6758508 --- overcloud-source.yaml | 412 ++++++++++++++++++-------------------------------- 1 file changed, 147 insertions(+), 265 deletions(-) (limited to 'overcloud-source.yaml') diff --git a/overcloud-source.yaml b/overcloud-source.yaml index 950b39a5..f215e3be 100644 --- a/overcloud-source.yaml +++ b/overcloud-source.yaml @@ -181,53 +181,10 @@ Resources: length: 20 salt: Ref: RabbitCookieSalt - AccessPolicy: - Properties: - AllowedResources: - - controller0 - - controller0Config - Type: OS::Heat::AccessPolicy - ComputeAccessPolicy: - Properties: - AllowedResources: - - NovaCompute0 - - NovaCompute0Config - Type: OS::Heat::AccessPolicy - controller0Key: - Properties: - UserName: - Ref: User - Type: AWS::IAM::AccessKey - controller0CompletionCondition: - Type: AWS::CloudFormation::WaitCondition - DependsOn: controller0Config - Properties: - Handle: {Ref: controller0CompletionHandle} - Count: '1' - Timeout: '1800' - controller0CompletionHandle: - Type: OS::Heat::UpdateWaitConditionHandle - NovaCompute0Key: - Type: FileInclude - Path: nova-compute-instance.yaml - SubKey: Resources.NovaCompute0Key - NovaCompute0CompletionCondition: - Type: FileInclude - Path: nova-compute-instance.yaml - SubKey: Resources.NovaCompute0CompletionCondition - NovaCompute0CompletionHandle: - Type: FileInclude - Path: nova-compute-instance.yaml - SubKey: Resources.NovaCompute0CompletionHandle - ComputeUser: - Properties: - Policies: - - Ref: ComputeAccessPolicy - Type: AWS::IAM::User NovaCompute0Config: Type: FileInclude Path: nova-compute-instance.yaml - SubKey: Resources.NovaCompute0Config + SubKey: Resources.NovaCompute0Deploy Parameters: NovaApiHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } KeystoneHost: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [controller0, networks]} ]} ] } @@ -293,243 +250,168 @@ Resources: Type: FileInclude Path: nova-compute-instance.yaml SubKey: Resources.NovaCompute0 - User: + controllerConfig: + Type: OS::Heat::StructuredConfig Properties: - Policies: - - Ref: AccessPolicy - Type: AWS::IAM::User - controller0Config: - Type: AWS::AutoScaling::LaunchConfiguration + config: + completion-signal: {get_input: deploy_signal_id} + admin-password: + Ref: AdminPassword + admin-token: + Ref: AdminToken + bootstack: + public_interface_ip: + Ref: NeutronPublicInterfaceIP + cinder: + db: mysql://cinder:unset@localhost/cinder + volume_size_mb: '5000' + service-password: + Ref: CinderPassword + iscsi-helper: + Ref: CinderISCSIHelper + controller-address: + get_input: controller_host + db-password: unset + glance: + backend: swift + db: mysql://glance:unset@localhost/glance + host: + get_input: controller_host + service-password: + Ref: GlancePassword + swift-store-user: service:glance + swift-store-key: + Ref: GlancePassword + notifier-strategy: + Ref: GlanceNotifierStrategy + log-file: + Ref: GlanceLogFile + heat: + admin_password: + Ref: HeatPassword + admin_tenant_name: service + admin_user: heat + auth_encryption_key: unset___________ + db: mysql://heat:unset@localhost/heat + stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword} + watch_server_url: {get_input: heat.watch_server_url} + metadata_server_url: {get_input: heat.metadata_server_url} + waitcondition_server_url: {get_input: heat.waitcondition_server_url} + hosts: {get_input: hosts} + keystone: + db: mysql://keystone:unset@localhost/keystone + host: + get_input: controller_host + mysql: + innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize} + neutron: + flat-networks: {Ref: NeutronFlatNetworks} + host: + get_input: controller_host + metadata_proxy_shared_secret: unset + ovs: + enable_tunneling: 'True' + local_ip: + get_input: controller_host + bridge_mappings: {Ref: NeutronBridgeMappings} + public_interface: + Ref: NeutronPublicInterface + public_interface_raw_device: + Ref: NeutronPublicInterfaceRawDevice + public_interface_route: + Ref: NeutronPublicInterfaceDefaultRoute + physical_bridge: br-ex + tenant_network_type: gre + ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 + service-password: + Ref: NeutronPassword + ceilometer: + db: mysql://ceilometer:unset@localhost/ceilometer + metering_secret: {Ref: CeilometerMeteringSecret} + service-password: + Ref: CeilometerPassword + nova: + compute_driver: libvirt.LibvirtDriver + db: mysql://nova:unset@localhost/nova + default_floating_pool: + ext-net + host: + get_input: controller_host + metadata-proxy: true + service-password: + Ref: NovaPassword + rabbit: + host: + get_input: controller_host + username: + Ref: RabbitUserName + password: + Ref: RabbitPassword + cookie: + Fn::GetAtt: + - RabbitCookie + - value + ntp: + servers: + - {server: {Ref: NtpServer}, fudge: "stratum 0"} + controller0: + Type: OS::Nova::Server Properties: - ImageId: '0' - InstanceType: '0' - Metadata: - OpenStack::Heat::Stack: {} - OpenStack::ImageBuilder::Elements: - - boot-stack - - heat-cfntools - - heat-localip - - neutron-network-node - admin-password: - Ref: AdminPassword - admin-token: - Ref: AdminToken - bootstack: - public_interface_ip: - Ref: NeutronPublicInterfaceIP - cinder: - db: mysql://cinder:unset@localhost/cinder - volume_size_mb: '5000' - service-password: - Ref: CinderPassword - iscsi-helper: - Ref: CinderISCSIHelper - completion-handle: - Ref: controller0CompletionHandle - controller-address: - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks - db-password: unset - glance: - backend: swift - db: mysql://glance:unset@localhost/glance - host: + image: + Ref: controllerImage + image_update_policy: + Ref: ImageUpdatePolicy + flavor: + Ref: OvercloudControlFlavor + key_name: + Ref: KeyName + user_data_format: SOFTWARE_CONFIG + controller0Deployment: + Type: OS::Heat::StructuredDeployment + Properties: + config: {Ref: controllerConfig} + server: {Ref: controller0} + input_values: + controller_host: Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks - service-password: - Ref: GlancePassword - swift-store-user: service:glance - swift-store-key: - Ref: GlancePassword - notifier-strategy: - Ref: GlanceNotifierStrategy - log-file: - Ref: GlanceLogFile - heat: - admin_password: - Ref: HeatPassword - admin_tenant_name: service - admin_user: heat - auth_encryption_key: unset___________ - db: mysql://heat:unset@localhost/heat - stack_domain_admin_password: {Ref: HeatStackDomainAdminPassword} - watch_server_url: + - 0 + - Fn::Select: + - ctlplane + - Fn::GetAtt: + - controller0 + - networks + heat.watch_server_url: Fn::Join: - '' - - 'http://' - - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]} - ':8003' - metadata_server_url: + heat.metadata_server_url: Fn::Join: - '' - - 'http://' - - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]} - ':8000' - waitcondition_server_url: + heat.waitcondition_server_url: Fn::Join: - '' - - 'http://' - - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks + - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]} - ':8000/v1/waitcondition' - hosts: - Fn::Join: - - ' ' - - - Fn::Select: - - 0 - - Fn::Select: - - ctlplane - - Fn::GetAtt: - - controller0 - - networks - - {Ref: CloudName} - keystone: - db: mysql://keystone:unset@localhost/keystone - host: - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks - mysql: - innodb_buffer_pool_size: {Ref: MysqlInnodbBufferPoolSize} - neutron: - flat-networks: {Ref: NeutronFlatNetworks} - host: - Fn::Select: - - 0 - - Fn::Select: - - ctlplane - - Fn::GetAtt: - - controller0 - - networks - metadata_proxy_shared_secret: unset - ovs: - enable_tunneling: 'True' - local_ip: - Fn::Select: - - 0 - - Fn::Select: - - ctlplane - - Fn::GetAtt: - - controller0 - - networks - bridge_mappings: {Ref: NeutronBridgeMappings} - public_interface: - Ref: NeutronPublicInterface - public_interface_raw_device: - Ref: NeutronPublicInterfaceRawDevice - public_interface_route: - Ref: NeutronPublicInterfaceDefaultRoute - physical_bridge: br-ex - tenant_network_type: gre - ovs_db: mysql://neutron:unset@localhost/ovs_neutron?charset=utf8 - service-password: - Ref: NeutronPassword - ceilometer: - db: mysql://ceilometer:unset@localhost/ceilometer - metering_secret: {Ref: CeilometerMeteringSecret} - service-password: - Ref: CeilometerPassword - nova: - compute_driver: libvirt.LibvirtDriver - db: mysql://nova:unset@localhost/nova - default_floating_pool: - ext-net - host: - Fn::Select: - - 0 - - Fn::Select: - - 'ctlplane' - - Fn::GetAtt: - - controller0 - - networks - metadata-proxy: true - service-password: - Ref: NovaPassword - os-collect-config: - cfn: - access_key_id: - Ref: controller0Key - path: controller0Config.Metadata - secret_access_key: - Fn::GetAtt: - - controller0Key - - SecretAccessKey - stack_name: - Ref: AWS::StackName - rabbit: - host: - Fn::Select: - - 0 - - Fn::Select: - - ctlplane - - Fn::GetAtt: - - controller0 - - networks - username: - Ref: RabbitUserName - password: - Ref: RabbitPassword - cookie: - Fn::GetAtt: - - RabbitCookie - - value - ntp: - servers: - - {server: {Ref: NtpServer}, fudge: "stratum 0"} - controller0: - Type: OS::Nova::Server + hosts: + Fn::Join: + - ' ' + - - {"Fn::Select": [ 0, "Fn::Select": [ ctlplane, { "Fn::GetAtt": [ controller0, networks ]}]]} + - {Ref: CloudName} + controller0SSLDeployment: + Type: OS::Heat::StructuredDeployment Properties: - image: - Ref: controllerImage - image_update_policy: - Ref: ImageUpdatePolicy - flavor: - Ref: OvercloudControlFlavor - key_name: - Ref: KeyName - Metadata: - os-collect-config: - cfn: - access_key_id: - Ref: controller0Key - path: controller0Config.Metadata - secret_access_key: - Fn::GetAtt: - - controller0Key - - SecretAccessKey - stack_name: - Ref: AWS::StackName + config: {Ref: SSLConfig} + server: {Ref: controller0} + signal_transport: NO_SIGNAL + input_values: + ssl_certificate: {Ref: SSLCertificate} + ssl_key: {Ref: SSLKey} Outputs: KeystoneURL: Description: URL for the Overcloud Keystone service -- cgit 1.2.3-korg