Description: Nova API,Keystone,Heat Engine and API,Glance,Quantum,Dedicated MySQL server,Dedicated RabbitMQ Server HeatTemplateFormatVersion: '2012-12-12' 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 GlanceDBPassword: Description: Password for connecting to glance database Type: String HeatDBPassword: Description: Password for accessing Heat database. Type: String InstanceType: 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 KeystoneDBPassword: Description: Password for connecting to keystone Type: String NovaDBPassword: Description: Password for connecting to nova database Type: String NovaInterfaces: Default: eth0 Type: String QuantumDBPassword: Description: Password for connecting to quantum database Type: String QuantumInterfaces: Default: eth0 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 Key: Properties: UserName: Ref: User Type: AWS::IAM::AccessKey User: Properties: Policies: - Ref: AccessPolicy Type: AWS::IAM::User notcompute: Metadata: OpenStack::ImageBuilder::Elements: - nova-api - keystone - heat-api - heat-engine - glance - mysql-migration - rabbitmq-server admin-password: Ref: ServicePassword admin-token: Ref: AdminToken mysql: create-users: - database: keystone username: keystone password: {Ref: KeystoneDBPassword} - database: heat username: heat password: {Ref: HeatDBPassword} - database: glance username: glance password: {Ref: GlanceDBPassword} - database: nova username: nova password: {Ref: NovaDBPassword} - database: quantum username: quantum password: {Ref: QuantumDBPassword} glance: db: Fn::Join: - '' - - 'mysql://glance:' - {Ref: GlanceDBPassword} - '@127.0.0.1/glance' heat: db: Fn::Join: - '' - - 'mysql://heat:' - {Ref: HeatDBPassword} - '@127.0.0.1/heat' access_key_id: Ref: Key refresh: - resource: notcompute secret_key: Fn::GetAtt: - Key - SecretAccessKey stack: name: Ref: AWS::StackName region: Ref: AWS::Region auth_encryption_key: unset interfaces: control: Ref: NovaInterfaces keystone: host: Fn::GetAtt: [ notcompute, PrivateIp ] db: Fn::Join: - '' - - 'mysql://keystone:' - {Ref: KeystoneDBPassword} - '@127.0.0.1/keystone' nova: db: Fn::Join: - '' - - 'mysql://nova:' - {Ref: NovaDBPassword} - '@127.0.0.1/nova' quantum: host: Fn::GetAtt: [ notcompute , PrivateIp ] ovs_db: Fn::Join: - '' - - 'mysql://quantum:' - {Ref: QuantumDBPassword} - '@127.0.0.1/ovs_quantum' rabbit: host: Fn::GetAtt: [ notcompute , PrivateIp ] password: Ref: RabbitPassword users: username: guest password: Ref: RabbitPassword service-password: Ref: ServicePassword Properties: ImageId: Ref: notcomputeImage InstanceType: Ref: InstanceType KeyName: Ref: KeyName Type: AWS::EC2::Instance