summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTim Rozet <trozet@redhat.com>2018-12-05 09:35:52 -0500
committerTim Rozet <trozet@redhat.com>2018-12-08 03:04:17 +0000
commit8154d4c215974c9c51b901cc655faace6eca2f98 (patch)
tree3d0cbdfe58b73eee7cddc76ca275972e77d85f28
parentf357aac22a1df2f10cca635c522e2397b2840f62 (diff)
Enable CSIT deployments to use NFS backend
In order to support HA as well as live migration a shared storage backend needs to be used. This patch preps the overcloud image to start with an NFS server sharing out of /root/nfs. If csit environment file is used then NFS parameters will be passed to the deployment, configuring Nova and Glance to use NFS hosted by controller0. JIRA: APEX-654 Change-Id: I049d84bfd454013fc7ba5048939ee17100197624 Signed-off-by: Tim Rozet <trozet@redhat.com>
-rw-r--r--apex/overcloud/deploy.py19
-rw-r--r--build/csit-environment.yaml10
-rw-r--r--build/csit-queens-environment.yaml10
3 files changed, 39 insertions, 0 deletions
diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py
index 6e1d5bb4..e8547d89 100644
--- a/apex/overcloud/deploy.py
+++ b/apex/overcloud/deploy.py
@@ -207,6 +207,8 @@ def create_deploy_cmd(ds, ns, inv, tmp_dir,
else:
deploy_options.append(os.path.join(con.THT_ENV_DIR, v))
+ # TODO(trozet) Fix this check to look for if ceph is in controller services
+ # and not use name of the file
if ds_opts['ceph'] and 'csit' not in env_file:
prep_storage_env(ds, ns, virtual, tmp_dir)
deploy_options.append(os.path.join(con.THT_ENV_DIR,
@@ -432,6 +434,23 @@ def prep_image(ds, ns, img, tmp_dir, root_pw=None, docker_tag=None,
virt_cmds.append(
{con.VIRT_RUN_CMD: "crudini --del {} Unit "
"ConditionPathExists".format(dhcp_unit)})
+ # Prep for NFS
+ virt_cmds.extend([
+ {con.VIRT_INSTALL: "nfs-utils"},
+ {con.VIRT_RUN_CMD: "ln -s /usr/lib/systemd/system/nfs-server.service "
+ "/etc/systemd/system/multi-user.target.wants/"
+ "nfs-server.service"},
+ {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/glance"},
+ {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/cinder"},
+ {con.VIRT_RUN_CMD: "mkdir -p /root/nfs/nova"},
+ {con.VIRT_RUN_CMD: "echo '/root/nfs/glance *(rw,sync,"
+ "no_root_squash,no_acl)' > /etc/exports"},
+ {con.VIRT_RUN_CMD: "echo '/root/nfs/cinder *(rw,sync,"
+ "no_root_squash,no_acl)' >> /etc/exports"},
+ {con.VIRT_RUN_CMD: "echo '/root/nfs/nova *(rw,sync,"
+ "no_root_squash,no_acl)' >> /etc/exports"},
+ {con.VIRT_RUN_CMD: "exportfs -avr"},
+ ])
virt_utils.virt_customize(virt_cmds, tmp_oc_image)
logging.info("Overcloud image customization complete")
return patched_containers
diff --git a/build/csit-environment.yaml b/build/csit-environment.yaml
index 048833d1..74e0c1fc 100644
--- a/build/csit-environment.yaml
+++ b/build/csit-environment.yaml
@@ -14,6 +14,16 @@ parameter_defaults:
ExtraConfig:
tripleo::ringbuilder::build_ring: false
nova::api::default_floating_pool: 'external'
+ ControllerExtraConfig:
+ tripleo::firewall:firewall_rules:
+ '139 allow NFS':
+ dport: 2049
+ GlanceNfsEnabled: true
+ GlanceNfsShare: overcloud-controller-0.opnfvlf.org:/root/nfs/glance
+ GlanceNfsOptions: 'rw,sync,context=system_u:object_r:glance_var_lib_t:s0'
+ NovaNfsEnabled: true
+ NovaNfsShare: overcloud-controller-0.opnfvlf.org:/root/nfs/nova
+ NovaNfsOptions: 'rw,sync,context=system_u:object_r:nfs_t:s0'
DockerPuppetProcessCount: 10
NeutronNetworkVLANRanges: 'datacentre:500:525'
SshServerOptions:
diff --git a/build/csit-queens-environment.yaml b/build/csit-queens-environment.yaml
index b13dd4df..2ecb1fc5 100644
--- a/build/csit-queens-environment.yaml
+++ b/build/csit-queens-environment.yaml
@@ -14,6 +14,16 @@ parameter_defaults:
ExtraConfig:
tripleo::ringbuilder::build_ring: false
nova::api::default_floating_pool: 'external'
+ ControllerExtraConfig:
+ tripleo::firewall:firewall_rules:
+ '139 allow NFS':
+ dport: 2049
+ GlanceNfsEnabled: true
+ GlanceNfsShare: overcloud-controller-0.opnfvlf.org:/root/nfs/glance
+ GlanceNfsOptions: 'rw,sync,context=system_u:object_r:glance_var_lib_t:s0'
+ NovaNfsEnabled: true
+ NovaNfsShare: overcloud-controller-0.opnfvlf.org:/root/nfs/nova
+ NovaNfsOptions: 'rw,sync,context=system_u:object_r:nfs_t:s0'
DockerPuppetProcessCount: 10
NeutronNetworkVLANRanges: 'datacentre:500:525'
SshServerOptions: