summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGiulio Fidente <gfidente@redhat.com>2014-11-21 06:11:26 -0500
committerGiulio Fidente <gfidente@redhat.com>2014-12-11 00:19:27 +0100
commit6674c39d80b2418aa573d7f8bbbb9c92648f90c5 (patch)
treece3a9cdec905789389f3c85af6635cd87c2f0da1
parentf0ba1a632448fb50c0a8754f5d183c4d1f5759f4 (diff)
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
-rw-r--r--Makefile11
-rw-r--r--block-storage-nfs.yaml69
-rw-r--r--nfs-server-source.yaml24
-rw-r--r--nfs-source.yaml36
4 files changed, 39 insertions, 101 deletions
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