controllerImage: overcloud-full
   OvercloudControlFlavor: baremetal
   ControllerEnableSwiftStorage: false
+#  CloudDomain:
   EnableSahara: false
   ExtraConfig:
     tripleo::ringbuilder::build_ring: False
 
 # DNS Servers for all nodes, comma delimited list
 dns_servers: ["8.8.8.8", "8.8.4.4"]
 
+# Domain name to use for undercloud/overcloud nodes
+domain_name: 'opnfvapex.com'
+
 # "admin" is the short name for Control Plane Network.
 # During OPNFV deployment it is used for node provisioning so
 # PXE boot should be enabled for the related interfaces on all
 
   dns_server_ext="\${dns_server_ext} --dns-nameserver \${dns_server}"
 done
 neutron subnet-update \$(neutron subnet-list | grep -Ev "id|tenant|external|storage" | grep -v \\\\-\\\\- | awk {'print \$2'}) \${dns_server_ext}
+sed -i '/CloudDomain:/c\  CloudDomain: '${domain_name} opnfv-environment.yaml
 echo "Executing overcloud deployment, this should run for an extended period without output."
 sleep 60 #wait for Hypervisor stats to check-in to nova
 # save deploy command so it can be used for debugging
 
                        STORAGE_NETWORK, API_NETWORK]
 DNS_SERVERS = ["8.8.8.8", "8.8.4.4"]
 ROLES = ['compute', 'controller']
+DOMAIN_NAME = 'localdomain.com'
 
 
         self.settings_obj['dns_servers'] = self.settings_obj.get(
             'dns_servers', constants.DNS_SERVERS)
+        self.settings_obj['domain_name'] = self.settings_obj.get(
+            'domain_name', constants.DOMAIN_NAME)
 
     def _validate_overcloud_nic_order(self, network):
         """
             dns_list = dns_list + "{} ".format(dns_server)
         dns_list = dns_list.strip()
         bash_str += "dns_servers=\'{}\'\n".format(dns_list)
+        bash_str += "domain_name=\'{}\'\n".format(self.settings_obj[
+                                                  'domain_name'])
         if path:
             with open(path, 'w') as file:
                 file.write(bash_str)
 
   openstack-config --set undercloud.conf DEFAULT dhcp_end ${admin_network_dhcp_range##*,}
   openstack-config --set undercloud.conf DEFAULT inspection_iprange ${admin_network_introspection_range}
   openstack-config --set undercloud.conf DEFAULT undercloud_debug false
+  openstack-config --set undercloud.conf DEFAULT undercloud_hostname "undercloud.${domain_name}"
 
 fi
 
 
 sleep 30
 sudo systemctl restart openstack-glance-api
+# Set nova domain name
+sudo openstack-config --set /etc/nova/nova.conf DEFAULT dns_domain ${domain_name}
+sudo openstack-config --set /etc/nova/nova.conf DEFAULT dhcp_domain ${domain_name}
 sudo systemctl restart openstack-nova-conductor
 sudo systemctl restart openstack-nova-compute
+sudo systemctl restart openstack-nova-api
+sudo systemctl restart openstack-nova-scheduler
+
+# Set neutron domain name
+sudo openstack-config --set /etc/neutron/neutron.conf DEFAULT dns_domain ${domain_name}
+sudo systemctl restart neutron-server
+sudo systemctl restart neutron-dhcp-agent
 
 sudo sed -i '/num_engine_workers/c\num_engine_workers = 2' /etc/heat/heat.conf
 sudo sed -i '/#workers\s=/c\workers = 2' /etc/heat/heat.conf