Add optional cinder storage node to overcloud
authorRyan Brady <rbrady@redhat.com>
Wed, 8 Jan 2014 14:06:32 +0000 (09:06 -0500)
committerRyan Brady <rbrady@redhat.com>
Wed, 15 Jan 2014 13:53:24 +0000 (08:53 -0500)
Mergeable block storage yaml template. Makefile updated to create a
overcloud-with-block-storage template to deploy an additional machine
as a block storage node.

Change-Id: I37c06cde114592507a4583f7ec53ffac123d66e3

Makefile
block-storage.yaml [new file with mode: 0644]

index b05f951..8ffc8b8 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -4,6 +4,12 @@ overcloud.yaml: overcloud-source.yaml nova-compute-instance.yaml swift-source.ya
        python ./tripleo_heat_merge/merge.py overcloud-source.yaml swift-source.yaml > $@.tmp
        mv $@.tmp $@
 
+overcloud-with-block-storage.yaml: overcloud-source.yaml nova-compute-instance.yaml swift-source.yaml block-storage.yaml
+       # $^ 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 overcloud-source.yaml swift-source.yaml block-storage.yaml > $@.tmp
+       mv $@.tmp $@
+
 undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-source.yaml
        python ./tripleo_heat_merge/merge.py $^ > $@.tmp
        mv $@.tmp $@
diff --git a/block-storage.yaml b/block-storage.yaml
new file mode 100644 (file)
index 0000000..d7548c9
--- /dev/null
@@ -0,0 +1,66 @@
+HeatTemplateFormatVersion: '2012-12-12'
+Description: 'Common Block Storage Configuration'
+Parameters:
+  BlockStorageImage:
+    Type: String
+    Default: overcloud-cinder-volume
+  KeystoneHost:
+    Type: String
+    Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
+  MySQLHost:
+    Type: String
+    Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
+  RabbitHost:
+    Type: String
+    Default: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notcompute, networks]} ]} ] }
+  RabbitPassword:
+    Type: String
+    Default: "guest"
+    NoEcho: true
+Resources:
+  BlockStorageAccessPolicy:
+    Type: OS::Heat::AccessPolicy
+    Properties:
+      AllowedResources:
+      - BlockStorage0
+  BlockStorageUser:
+    Type: AWS::IAM::User
+    Properties:
+      Policies: [ { Ref: BlockStorageAccessPolicy } ]
+  BlockStorageKey:
+    Type: AWS::IAM::AccessKey
+    Properties:
+      UserName:
+        Ref: BlockStorageUser
+  BlockStorage0:
+    Type: OS::Nova::Server
+    Properties:
+      image:
+        {Ref: BlockStorageImage}
+      flavor: {Ref: Flavor}
+      key_name: {Ref: KeyName}
+      InstanceType: '0'
+      ImageId: '0'
+    Metadata:
+      os-collect-config:
+        cfn:
+          access_key_id:
+            Ref: BlockStorageKey
+          secret_access_key:
+            Fn::GetAtt: [ BlockStorageKey, SecretAccessKey ]
+          stack_name: {Ref: 'AWS::StackName'}
+      OpenStack::ImageBuilder::Elements: [ cinder ]
+      keystone:
+        host: {Ref: KeystoneHost}
+      cinder:
+        db: {"Fn::Join": ['', ['mysql://cinder:unset@', {Ref: MySQLHost}, '/cinder']]}
+        volume_size_mb: '5000'
+        service-password:
+          Ref: CinderPassword
+        volume: 'true'
+      admin-password: {Ref: AdminPassword}
+      rabbit:
+        host: {Ref: RabbitHost}
+        password: {Ref: RabbitPassword}
+      interfaces:
+        control: {Ref: NeutronPublicInterface}
\ No newline at end of file