Fixes undercloud install failure with setting hostname
[apex.git] / apex / deploy.py
index 670fb6b..d0c2b20 100644 (file)
@@ -338,13 +338,14 @@ def main():
     utils.run_ansible(ansible_args,
                       os.path.join(args.lib_dir, constants.ANSIBLE_PATH,
                                    'deploy_dependencies.yml'))
+    all_in_one = not bool(args.virt_compute_nodes)
     if args.snapshot:
         # Start snapshot Deployment
         logging.info('Executing Snapshot Deployment...')
         SnapshotDeployment(deploy_settings=deploy_settings,
                            snap_cache_dir=args.snap_cache,
                            fetch=not args.no_fetch,
-                           all_in_one=not bool(args.virt_compute_nodes))
+                           all_in_one=all_in_one)
     else:
         # Start Standard TripleO Deployment
         deployment = ApexDeployment(deploy_settings, args.patches_file,
@@ -395,7 +396,10 @@ def main():
         args.image_dir = os.path.join(args.image_dir, os_version)
         upstream_url = constants.UPSTREAM_RDO.replace(
             constants.DEFAULT_OS_VERSION, os_version)
+
         upstream_targets = ['overcloud-full.tar', 'ironic-python-agent.tar']
+        if platform.machine() == 'aarch64':
+            upstream_targets.append('undercloud.qcow2')
         utils.fetch_upstream_and_unpack(args.image_dir, upstream_url,
                                         upstream_targets,
                                         fetch=not args.no_fetch)
@@ -406,7 +410,10 @@ def main():
         for tmp_file in UC_DISK_FILES:
             shutil.copyfile(os.path.join(args.image_dir, tmp_file),
                             os.path.join(APEX_TEMP_DIR, tmp_file))
-        sdn_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
+        if platform.machine() == 'aarch64':
+            sdn_image = os.path.join(args.image_dir, 'undercloud.qcow2')
+        else:
+            sdn_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
         # copy undercloud so we don't taint upstream fetch
         uc_image = os.path.join(args.image_dir, 'undercloud_mod.qcow2')
         uc_fetch_img = sdn_image
@@ -486,8 +493,12 @@ def main():
                            opnfv_env, net_env_target, APEX_TEMP_DIR)
         if not args.virtual:
             oc_deploy.LOOP_DEVICE_SIZE = "50G"
+        if platform.machine() == 'aarch64':
+            oc_image = os.path.join(args.image_dir, 'overcloud-full.qcow2')
+        else:
+            oc_image = sdn_image
         patched_containers = oc_deploy.prep_image(
-            deploy_settings, net_settings, sdn_image, APEX_TEMP_DIR,
+            deploy_settings, net_settings, oc_image, APEX_TEMP_DIR,
             root_pw=root_pw, docker_tag=tag, patches=patches['overcloud'])
 
         oc_deploy.create_deploy_cmd(deploy_settings, net_settings, inventory,
@@ -516,6 +527,8 @@ def main():
             container_vars['os_version'] = os_version
             container_vars['aarch64'] = platform.machine() == 'aarch64'
             container_vars['sdn_env_file'] = sdn_env_files
+            container_vars['container_client'] = utils.find_container_client(
+                os_version)
             try:
                 utils.run_ansible(container_vars, docker_playbook,
                                   host=undercloud.ip, user='stack',
@@ -558,6 +571,8 @@ def main():
         deploy_vars['http_proxy'] = net_settings.get('http_proxy', '')
         deploy_vars['https_proxy'] = net_settings.get('https_proxy', '')
         deploy_vars['vim'] = ds_opts['vim']
+        deploy_vars['container_client'] = utils.find_container_client(
+            os_version)
         for dns_server in net_settings['dns_servers']:
             deploy_vars['dns_server_args'] += " --dns-nameserver {}".format(
                 dns_server)
@@ -721,6 +736,10 @@ def main():
         deploy_vars['l2gw'] = ds_opts.get('l2gw')
         deploy_vars['sriov'] = ds_opts.get('sriov')
         deploy_vars['tacker'] = ds_opts.get('tacker')
+        deploy_vars['all_in_one'] = all_in_one
+        # TODO(trozet): need to set container client to docker until OOO
+        # migrates OC to podman. Remove this later.
+        deploy_vars['container_client'] = 'docker'
         # TODO(trozet): pull all logs and store in tmp dir in overcloud
         # playbook
         post_overcloud = os.path.join(args.lib_dir, constants.ANSIBLE_PATH,