From 7c1131e5b46160a1ba4ee52d59b4650cdc1a4c9d Mon Sep 17 00:00:00 2001 From: Michal Zegan Date: Thu, 5 Sep 2019 18:48:18 +0200 Subject: Add ability to put dockerdata-nfs on root disk Modify the heat template so that it becomes possible to skip volume creation for dockerdata-nfs. This feature can be toggled at will. It is useful for the cases where /dockerdata-nfs needs to be fast, but there are no ssd volumes available. Of course, large enough ephemeral disks are needed, around 60 gb. Change-Id: I37e29e7cf7273d1d4a6e896ec017d9ef8177b1d0 Issue-ID: OOM-2042 Signed-off-by: Michal Zegan --- tools/cicdansible/group_vars/all.yml | 3 +++ tools/cicdansible/heat/installer.yaml | 15 ++++++++++++++- .../setup_openstack_infrastructure/tasks/deploy/heat.yml | 1 + 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/tools/cicdansible/group_vars/all.yml b/tools/cicdansible/group_vars/all.yml index 581e7c4a..f886b628 100644 --- a/tools/cicdansible/group_vars/all.yml +++ b/tools/cicdansible/group_vars/all.yml @@ -26,6 +26,9 @@ infra_flavor_name: "" installer_flavor_name: "" #Name of the image for instances. image_name: "" +#Whether to use a volume for /dockerdata-nfs or to use ephemeral disk. +#True by default, most openstack providers offer ssd volumes probably. +use_volume_for_nfs: true #Cidr of private subnet where instances are connected. subnet_cidr: "10.1.0.0/24" #Start of dhcp allocation range for subnet. diff --git a/tools/cicdansible/heat/installer.yaml b/tools/cicdansible/heat/installer.yaml index 793386c6..7b3f10c0 100644 --- a/tools/cicdansible/heat/installer.yaml +++ b/tools/cicdansible/heat/installer.yaml @@ -90,6 +90,13 @@ parameters: constraints: - range: { min: 1 } description: "must be a positive number" + use_volume_for_nfs: + type: boolean + label: "use volume for nfs storage" + description: "Indicates whether a cinder volume should be used for nfs storage or not. If not checked, the nfs would be stored in the root disk" +conditions: + #Condition for nfs volume usage. + use_volume_for_nfs: { get_param: use_volume_for_nfs } resources: # Security group used to secure access to instances. secgroup: @@ -200,12 +207,14 @@ resources: #Nfs storage volume for first node. nfs_storage: type: OS::Cinder::Volume + condition: use_volume_for_nfs properties: name: nfs_storage size: 50 #Attachment of volume to first node. nfs_storage_attachment: type: OS::Cinder::VolumeAttachment + condition: use_volume_for_nfs properties: instance_uuid: { get_attr: [nodes, "resource.0"] } volume_id: { get_resource: nfs_storage } @@ -292,8 +301,12 @@ resources: node0_volumes: type: OS::Heat::Value properties: + #Note that it returns an empty list if nfs volume is disabled. value: - - [{ get_resource: nfs_storage }, "/dockerdata-nfs"] + if: + - use_volume_for_nfs + - - [{ get_resource: nfs_storage }, "/dockerdata-nfs"] + - [] #Output values outputs: installer_ip: diff --git a/tools/cicdansible/roles/setup_openstack_infrastructure/tasks/deploy/heat.yml b/tools/cicdansible/roles/setup_openstack_infrastructure/tasks/deploy/heat.yml index 2bfeda77..5f9bc4f6 100644 --- a/tools/cicdansible/roles/setup_openstack_infrastructure/tasks/deploy/heat.yml +++ b/tools/cicdansible/roles/setup_openstack_infrastructure/tasks/deploy/heat.yml @@ -32,5 +32,6 @@ node_ip: "{{ floating_ips_by_address[first_node_ip].id }}" infra_ip: "{{ floating_ips_by_address[infra_ip].id }}" installer_ip: "{{ floating_ips_by_address[installer_ip].id }}" + use_volume_for_nfs: "{{ use_volume_for_nfs }}" wait: true register: heat_stack -- cgit 1.2.3-korg