From a2602039fc66891bb9d08dbd5963c9968e1a8ee8 Mon Sep 17 00:00:00 2001 From: Ryan Brady Date: Thu, 20 Feb 2014 07:40:31 -0500 Subject: Adds block-storage-nfs template To support the changes to the cinder element to allow the nfs backend to be utilized, this template has been added to show the usage of the nfs_shares key in the cinder metadata. The value is a list of strings containing share addresses. This change is added to facilitate an example to test the cinder element change: https://review.openstack.org/#/c/74563/ You may setup the nfs server manually or use the nfs-server element at https://review.openstack.org/#/c/74712/. Change-Id: I5b6cb118b34421ea07a81ed1fe68db24b1d4f19d --- .gitignore | 2 ++ Makefile | 20 ++++++++++++----- block-storage-nfs.yaml | 59 ++++++++++++++++++++++++++++++++++++++++++++++++++ nfs-server-source.yaml | 28 ++++++++++++++++++++++++ 4 files changed, 103 insertions(+), 6 deletions(-) create mode 100644 block-storage-nfs.yaml create mode 100644 nfs-server-source.yaml diff --git a/.gitignore b/.gitignore index 90c6090d..06513ac8 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ # Built via Makefile overcloud.yaml +overcloud-with-block-storage.yaml +overcloud-with-block-storage-nfs.yaml undercloud-bm.yaml undercloud-vm.yaml undercloud-vm-tuskar.yaml diff --git a/Makefile b/Makefile index 75b8a4a5..93ff852d 100644 --- a/Makefile +++ b/Makefile @@ -1,8 +1,10 @@ -generated_templates = \ - overcloud.yaml \ - undercloud-vm.yaml \ - undercloud-bm.yaml \ - undercloud-vm-tuskar.yaml \ +generated_templates = \ + overcloud.yaml \ + overcloud-with-block-storage.yaml \ + overcloud-with-block-storage-nfs.yaml \ + undercloud-vm.yaml \ + undercloud-bm.yaml \ + undercloud-vm-tuskar.yaml \ undercloud-vm-ironic.yaml # Files included in overcloud-source.yaml via FileInclude @@ -17,7 +19,13 @@ overcloud.yaml: overcloud-source.yaml swift-source.yaml ssl-source.yaml $(overcl 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 + python ./tripleo_heat_merge/merge.py --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale BlockStorage=$${CINDERSCALE:-'1'} overcloud-source.yaml swift-source.yaml block-storage.yaml > $@.tmp + mv $@.tmp $@ + +overcloud-with-block-storage-nfs.yaml: overcloud-source.yaml nova-compute-instance.yaml swift-source.yaml nfs-server-source.yaml block-storage-nfs.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 --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale BlockStorage=$${CINDERSCALE:-'1'} overcloud-source.yaml swift-source.yaml nfs-server-source.yaml block-storage-nfs.yaml > $@.tmp mv $@.tmp $@ undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-source.yaml diff --git a/block-storage-nfs.yaml b/block-storage-nfs.yaml new file mode 100644 index 00000000..04f45ef4 --- /dev/null +++ b/block-storage-nfs.yaml @@ -0,0 +1,59 @@ +HeatTemplateFormatVersion: '2012-12-12' +Description: 'Common Block Storage Configuration' +Parameters: + BlockStorageImage: + Type: String + Default: overcloud-cinder-volume + OvercloudBlockStorageFlavor: + Default: baremetal + Description: Flavor for block storage nodes to request when deploying. + Type: String +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: OvercloudBlockStorageFlavor} + key_name: {Ref: KeyName} + 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: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + cinder: + db: {"Fn::Join": ['', ['mysql://cinder:unset@', {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } , '/cinder']]} + volume_size_mb: '5000' + service-password: + Ref: CinderPassword + volume: 'true' + include_nfs_backend: 'true' + nfs_shares: + - {"Fn::Join": ['', [{"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } , ':/mnt/state/var/lib/nfs_share']]} + admin-password: {Ref: AdminPassword} + rabbit: + host: {"Fn::Select": [ 0, {"Fn::Select": [ "ctlplane", {"Fn::GetAtt": [notCompute0, networks]} ]} ] } + username: {Ref: RabbitUserName} + password: {Ref: RabbitPassword} + interfaces: + control: {Ref: NeutronPublicInterface} diff --git a/nfs-server-source.yaml b/nfs-server-source.yaml new file mode 100644 index 00000000..22214ae0 --- /dev/null +++ b/nfs-server-source.yaml @@ -0,0 +1,28 @@ +Description: 'NFS server share configuration for testing' +Resources: + notCompute0Config: + Type: AWS::AutoScaling::LaunchConfiguration + Metadata: + nfs_server: + shares: + Merge::Map: + NovaCompute0: + Fn::Join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - Fn::GetAtt: + - NovaCompute0 + - networks + BlockStorage0: + Fn::Join: + - ' ' + - - Fn::Select: + - 0 + - Fn::Select: + - ctlplane + - Fn::GetAtt: + - BlockStorage0 + - networks \ No newline at end of file -- cgit 1.2.3-korg