Description: Dedicated RabbitMQ Server,Dedicated MySQL server,Nova API,Keystone,Heat Engine and API,Glance HeatTemplateFormatVersion: '2012-12-12' Outputs: GlancePassword: Fn::GetAtt: - GlancePassword - Data GlanceUser: Ref: GlanceUser HeatPassword: Fn::GetAtt: - HeatPassword - Data HeatUser: Ref: HeatUser KeystonePassword: Fn::GetAtt: - KeystonePassword - Data KeystoneUser: Ref: KeystoneUser MySQLHost: Fn::GetAtt: - notcompute - PrivateIp RabbitMQHost: Fn::GetAtt: - notcompute - PrivateIp RabbitMQPassword: Fn::GetAtt: - RabbitMQPassword - Data Parameters: AdminToken: Type: String BootstrapDumpPassword: Default: '' Description: Password to use for mysqldump from Bootstrap Host Type: String BootstrapHost: Default: '' Description: Load mysqldump from this Host Type: String BootstrapRootPassword: Default: '' Description: Root password for localhost access after bootstrap Type: String BootstrapSlavePassword: Default: '' Description: Password to use with BootstrapSlaveUser Type: String BootstrapSlaveUser: Default: '' Description: User to use for replication from bootstrap host Type: String GlanceDSN: Description: DSN for connecting to glance database Type: String GlanceUser: Default: heat Description: Glance database username. Type: String HeatUser: Default: heat Description: Heat database username. Type: String InstanceType: Default: bm.small 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 KeystoneDSN: Description: DSN for connecting to keystone Type: String KeystoneHost: Type: String KeystoneUser: Default: keystone Description: Keystone database username. Type: String NovaAPiSize: Default: 1 Type: Integer NovaDSN: Description: DSN for connecting to nova database Type: String NovaInterfaces: Default: eth0 Type: String RabbitHost: Type: String RabbitMQHost: Description: Host for RabbitMQ Type: String RabbitMQPassword: Description: Password for RabbitMQ Type: String RabbitPassword: Type: String ServicePassword: Description: admin_password for setting up auth in nova. Type: String notcomputeImage: Type: String Resources: AccessPolicy: Properties: AllowedResources: - notcompute Type: OS::Heat::AccessPolicy ApiAccessPolicy: Properties: AllowedResources: - notcompute Type: OS::Heat::AccessPolicy ApiKey: Properties: UserName: Ref: ApiUser Type: AWS::IAM::AccessKey ApiUser: Properties: Policies: - Ref: ApiAccessPolicy Type: AWS::IAM::User GlancePassword: DependsOn: notcompute Properties: Handle: Ref: GlancePasswordHandle Timeout: 90 Type: AWS::CloudFormation::WaitCondition GlancePasswordHandle: Type: AWS::CloudFormation::WaitConditionHandle HeatAccessPolicy: Properties: AllowedResources: - notcompute Type: OS::Heat::AccessPolicy HeatKey: Properties: UserName: Ref: HeatUser Type: AWS::IAM::AccessKey HeatPassword: DependsOn: notcompute Properties: Handle: Ref: HeatPasswordHandle Timeout: 90 Type: AWS::CloudFormation::WaitCondition HeatPasswordHandle: Type: AWS::CloudFormation::WaitConditionHandle HeatUser: Properties: Policies: - Ref: HeatAccessPolicy Type: AWS::IAM::User Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey KeystonePassword: DependsOn: notcompute Properties: Handle: Ref: KeystonePasswordHandle Timeout: 90 Type: AWS::CloudFormation::WaitCondition KeystonePasswordHandle: Type: AWS::CloudFormation::WaitConditionHandle RabbitMQPassword: DependsOn: notcompute Properties: Handle: Ref: RabbitMQPasswordHandle Timeout: 60 Type: AWS::CloudFormation::WaitCondition RabbitMQPasswordHandle: Type: AWS::CloudFormation::WaitConditionHandle User: Properties: Policies: - Ref: AccessPolicy Type: AWS::IAM::User notcompute: Metadata: OpenStack::ImageBuilder::Elements: - rabbitmq-server - mysql-migration - nova-api - keystone - heat-api - heat-engine - glance OpenStack::Role: stateful admin-password: Ref: ServicePassword admin-token: Ref: AdminToken glance: db: Ref: GlanceDSN heat: access_key_id: Ref: ApiKey refresh: - resource: MySQL secret_key: Fn::GetAtt: - ApiKey - SecretAccessKey stack: name: Ref: AWS::StackName region: Ref: AWS::Region interfaces: control: Ref: NovaInterfaces keystone: host: Ref: KeystoneHost mysql: create-users: - database: keystone userhandle: Ref: KeystonePasswordHandle username: Ref: KeystoneUser - database: heat userhandle: Ref: HeatPasswordHandle username: Ref: HeatUser - database: glance userhandle: Ref: GlancePasswordHandle username: Ref: GlanceUser mysql-migration: bootstrap_host: Ref: BootstrapHost slave_password: Ref: BootstrapSlavePassword slave_user: Ref: BootstrapSlaveUser users: dump: password: Ref: BootstrapDumpPassword username: dump root: password: Ref: BootstrapRootPassword username: root nova: db: Ref: NovaDSN quantum: host: Ref: QuantumHost rabbit: host: Ref: RabbitHost password: Ref: RabbitPassword rabbitmq: password_handle: Ref: RabbitMQPasswordHandle service-password: Ref: ServicePassword swift: store_key: '' store_user: '' Properties: ImageId: Ref: notcomputeImage InstanceType: Ref: InstanceType KeyName: Ref: KeyName Type: AWS::EC2::Instance