aboutsummaryrefslogtreecommitdiffstats
path: root/mysql.yaml
diff options
context:
space:
mode:
Diffstat (limited to 'mysql.yaml')
-rw-r--r--mysql.yaml84
1 files changed, 84 insertions, 0 deletions
diff --git a/mysql.yaml b/mysql.yaml
new file mode 100644
index 00000000..3df3d0e3
--- /dev/null
+++ b/mysql.yaml
@@ -0,0 +1,84 @@
+HeatTemplateFormatVersion: '2012-12-12'
+Description: 'HEAT Template - Dedicated MySQL server'
+Parameters:
+ KeyName:
+ Description: Name of an existing EC2 KeyPair to enable SSH access to the instances
+ Type: String
+ Default: default
+ InstanceType:
+ Description: Use this flavor
+ Type: String
+ Default: m1.small
+ MySQLImage:
+ Type: String
+Resources:
+ ApiAccessPolicy:
+ Type: OS::Heat::AccessPolicy
+ Properties:
+ AllowedResources: [ MySQL0 ]
+ ApiUser:
+ Type: AWS::IAM::User
+ Properties:
+ Policies: [ { Ref: ApiAccessPolicy } ]
+ MySQL0:
+ Type: AWS::EC2::Instance
+ Metadata:
+ OpenStack::ImageBuilder::Elements: [ mysql ]
+ OpenStack::MySQL:
+ masterhandle: {Ref: MySQLMasterHandle}
+ keystone:
+ userhandle: {Ref: KeystonePasswordHandle}
+ OpenStack::Heat::CFNTools:
+ AWSAccessKeyId:
+ Ref: ApiKey
+ AWSSecretAccessKey:
+ Fn::GetAtt: [ ApiKey, SecretAccessKey ]
+ Properties:
+ ImageId:
+ {Ref: MySQLImage}
+ InstanceType: {Ref: InstanceType}
+ KeyName: {Ref: KeyName}
+ MySQL1:
+ Type: AWS::EC2::Instance
+ DependsOn: MySQL0
+ Metadata:
+ OpenStack::ImageBuilder::Elements: [ mysql ]
+ OpenStack::MySQL:
+ masterinfo: {Fn::GetAtt: [ MySQLMaster, Data ]}
+ consumers: {Ref: Consumers}
+ keystone:
+ userhandle: {Ref: KeystonePasswordHandle}
+ OpenStack::Heat::CFNTools:
+ AWSAccessKeyId:
+ Ref: ApiKey
+ AWSSecretAccessKey:
+ Fn::GetAtt: [ ApiKey, SecretAccessKey ]
+ Properties:
+ ImageId:
+ {Ref: MySQLImage}
+ InstanceType: {Ref: InstanceType}
+ KeyName: {Ref: KeyName}
+ MySQLMasterHandle:
+ Type: AWS::CloudFormation::WaitConditionHandle
+ MySQLMaster:
+ DependsOn: MySQL0
+ Type: AWS::CloudFormation::WaitCondition
+ Properties:
+ Handle: {Ref: MySQLMasterHandle}
+ Timeout: 60
+ KeystonePasswordHandle:
+ Type: AWS::CloudFormation:WaitConditionHandle
+ Properties:
+ KeystonePassword:
+ DependsOn: MySQL1
+ Type: AWS::CloudFormation::WaitCondition
+ Properties:
+ Handle: {Ref: KeystonePasswordHandle}
+ Timeout: 60
+Outputs:
+ MySQLHost:
+ Fn::GetAtt: [ MySQL0 , PrivateIp ]
+ MySQLSlaves:
+ Fn::GetAtt: [ MySQL1, PrivateIp ]
+ KeystonePassword:
+ Fn::GetAtt: [ KeystonePassword, Data ]