diff --git a/.gitignore b/.gitignore index 90c6090d47..06513ac836 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 75b8a4a5ec..93ff852d11 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 0000000000..04f45ef4c5 --- /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 0000000000..22214ae02b --- /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