From 6674c39d80b2418aa573d7f8bbbb9c92648f90c5 Mon Sep 17 00:00:00 2001 From: Giulio Fidente Date: Fri, 21 Nov 2014 06:11:26 -0500 Subject: [PATCH] Bring back (abandoned) support for Cinder/NFS We used to have a YAML file providing a test setup for Cinder/NFS which could be used via a special Makefile target; this was not used in CI anymore though and overtime things broke. This change aims at bringing that functionality back and also make it easier to use it via a number of changes: * delete unmaintained nfs-server-source (not working due to changes in the elements) * delete (unneeded) block-storage-nfs * remove the hidden block-storage-with-nfs target from Makefile * add a some nfs-source which supports newer elements and newer template language as well * improve existing comments in Makefile documeting how to use it Change-Id: I96144ee2f4ca33bd7467f09ad960ea268c1250bf --- Makefile | 11 +++----- block-storage-nfs.yaml | 69 -------------------------------------------------- nfs-server-source.yaml | 24 ------------------ nfs-source.yaml | 36 ++++++++++++++++++++++++++ 4 files changed, 39 insertions(+), 101 deletions(-) delete mode 100644 block-storage-nfs.yaml delete mode 100644 nfs-server-source.yaml create mode 100644 nfs-source.yaml diff --git a/Makefile b/Makefile index 349a0778..2db9d45e 100644 --- a/Makefile +++ b/Makefile @@ -15,18 +15,13 @@ validate-all: $(VALIDATE) $(VALIDATE): heat template-validate -f $(subst validate-,,$@) -# set CONTROLEXTRA to overcloud-vlan-port.yaml to activate the VLAN -# auto-assignment from Neutron. +# You can define in CONTROLEXTRA one or more additional YAML files to further extend the template, some additions could be: +# - overcloud-vlan-port.yaml to activate the VLAN auto-assignment from Neutron +# - nfs-source.yaml to configure Cinder with NFS overcloud.yaml: overcloud-source.yaml block-storage.yaml swift-deploy.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml nova-compute-config.yaml $(overcloud_source_deps) python ./tripleo_heat_merge/merge.py --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'0'} overcloud-source.yaml block-storage.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml swift-deploy.yaml nova-compute-config.yaml ${CONTROLEXTRA} > $@.tmp mv $@.tmp $@ -overcloud-with-block-storage-nfs.yaml: overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml $(overcloud_source_deps) - # $^ 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 --hot --scale NovaCompute=$${COMPUTESCALE:-'1'} --scale controller=$${CONTROLSCALE:-'1'} --scale SwiftStorage=$${SWIFTSTORAGESCALE:-'0'} --scale BlockStorage=$${BLOCKSTORAGESCALE:-'1'} overcloud-source.yaml block-storage-nfs.yaml nfs-server-source.yaml swift-source.yaml swift-storage-source.yaml ssl-source.yaml > $@.tmp - mv $@.tmp $@ - undercloud-vm.yaml: undercloud-source.yaml undercloud-vm-nova-config.yaml undercloud-vm-nova-deploy.yaml python ./tripleo_heat_merge/merge.py --hot $^ > $@.tmp mv $@.tmp $@ diff --git a/block-storage-nfs.yaml b/block-storage-nfs.yaml deleted file mode 100644 index b87ef4e5..00000000 --- a/block-storage-nfs.yaml +++ /dev/null @@ -1,69 +0,0 @@ -heat_template_version: 2013-05-23 -description: 'Common Block Storage Configuration' -parameters: - BlockStorageImage: - type: string - default: overcloud-cinder-volume - OvercloudBlockStorageFlavor: - description: Flavor for block storage nodes to request when deploying. - type: string - constraints: - - custom_constraint: nova.flavor -resources: - BlockStorageAccessPolicy: - type: OS::Heat::AccessPolicy - properties: - AllowedResources: - - BlockStorage0 - BlockStorageUser: - type: AWS::IAM::User - properties: - Policies: [ { get_resource: BlockStorageAccessPolicy } ] - BlockStorageKey: - type: AWS::IAM::AccessKey - properties: - UserName: - get_resource: BlockStorageUser - BlockStorage0CompletionCondition: - type: AWS::CloudFormation::WaitCondition - depends_on: controller0Config - properties: - Handle: {get_resource: BlockStorage0CompletionHandle} - Count: '1' - Timeout: '1800' - BlockStorage0CompletionHandle: - type: AWS::CloudFormation::WaitConditionHandle - BlockStorage0: - type: OS::Nova::Server - properties: - image: - {get_param: BlockStorageImage} - flavor: {get_param: OvercloudBlockStorageFlavor} - key_name: {get_param: KeyName} - metadata: - completion-handle: - get_resource: BlockStorage0CompletionHandle - os-collect-config: - cfn: - access_key_id: - get_resource: BlockStorageKey - secret_access_key: - get_attr: [ BlockStorageKey, SecretAccessKey ] - stack_name: {get_param: 'AWS::StackName'} - keystone: - host: {get_attr: [controller0, networks, ctlplane, 0]} - cinder: - db: {"Fn::Join": ['', ['mysql://cinder:unset@', {get_attr: [ControlVirtualIP, fixed_ips, 0, ip_address]} , '/cinder']]} - volume_size_mb: '5000' - service-password: - get_param: CinderPassword - include_nfs_backend: 'true' - nfs_shares: - - {"Fn::Join": ['', [{get_attr: [controller0, networks, ctlplane, 0]} , ':/mnt/state/var/lib/nfs_share']]} - admin-password: {get_param: AdminPassword} - rabbit: - host: {get_attr: [controller0, networks, ctlplane, 0]} - username: {get_param: RabbitUserName} - password: {get_param: RabbitPassword} - interfaces: - control: {get_param: NeutronPublicInterface} diff --git a/nfs-server-source.yaml b/nfs-server-source.yaml deleted file mode 100644 index 8e32e963..00000000 --- a/nfs-server-source.yaml +++ /dev/null @@ -1,24 +0,0 @@ -description: 'NFS server share configuration for testing' -resources: - controller0Config: - type: AWS::AutoScaling::LaunchConfiguration - metadata: - nfs_server: - shares: - Merge::Map: - NovaCompute0: - Fn::Join: - - ' ' - - - get_attr: - - NovaCompute0 - - networks - - ctlplane - - 0 - BlockStorage0: - Fn::Join: - - ' ' - - - get_attr: - - BlockStorage0 - - networks - - ctlplane - - 0 diff --git a/nfs-source.yaml b/nfs-source.yaml new file mode 100644 index 00000000..5d865ea7 --- /dev/null +++ b/nfs-source.yaml @@ -0,0 +1,36 @@ +resources: + controllerNfsServerConfig: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + nfs_server: + shares: + - name: cinder + clients: + - machine: 192.0.2.0/24 + options: rw,async,all_squash,anonuid=0,anongid=0 + controllerCinderNfsConfig: + type: OS::Heat::StructuredConfig + properties: + group: os-apply-config + config: + cinder: + include_nfs_backend: true + nfs_shares: + Fn::Join: + - ':' + - - {get_attr: [controller0, networks, ctlplane, 0]} + - /mnt/state/var/lib/nfs/cinder + controllerNfsServerDeployment: + type: OS::Heat::StructuredDeployment + properties: + config: {get_resource: controllerNfsServerConfig} + server: {get_resource: controller0} + signal_transport: NO_SIGNAL + controller0CinderNfsDeployment: + type: OS::Heat::StructuredDeployment + properties: + config: {get_resource: controllerCinderNfsConfig} + server: {get_resource: controller0} + signal_transport: NO_SIGNAL -- 2.16.6