From 8154d4c215974c9c51b901cc655faace6eca2f98 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 +++++++++++++++++++ build/csit-environment.yaml | 10 ++++++++++ build/csit-queens-environment.yaml | 10 ++++++++++ 3 files changed, 39 insertions(+) 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: -- cgit 1.2.3-korg