Skip to content
This repository has been archived by the owner on Feb 29, 2024. It is now read-only.

Commit

Permalink
Adds block-storage-nfs template
Browse files Browse the repository at this point in the history
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
  • Loading branch information
Ryan Brady committed Mar 7, 2014
1 parent c124833 commit a260203
Show file tree
Hide file tree
Showing 4 changed files with 103 additions and 6 deletions.
2 changes: 2 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -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
Expand Down
20 changes: 14 additions & 6 deletions Makefile
Original file line number Diff line number Diff line change
@@ -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
Expand All @@ -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
Expand Down
59 changes: 59 additions & 0 deletions block-storage-nfs.yaml
Original file line number Diff line number Diff line change
@@ -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}
28 changes: 28 additions & 0 deletions nfs-server-source.yaml
Original file line number Diff line number Diff line change
@@ -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

0 comments on commit a260203

Please sign in to comment.