From 31e6f7f5529d04f12caabe804bfef305b5f263e8 Mon Sep 17 00:00:00 2001 From: Tim Rozet Date: Wed, 5 Dec 2018 09:35:52 -0500 Subject: 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 --- apex/overcloud/deploy.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'apex/overcloud/deploy.py') diff --git a/apex/overcloud/deploy.py b/apex/overcloud/deploy.py index e3177065..41b2d56b 100644 --- a/apex/overcloud/deploy.py +++ b/apex/overcloud/deploy.py @@ -205,6 +205,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, @@ -434,6 +436,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 -- cgit 1.2.3-korg