Fix rocky container preparation
[apex.git] / apex / undercloud / undercloud.py
index d2de2de..8b6b9d4 100644 (file)
@@ -199,7 +199,7 @@ class Undercloud:
                          '/root/.ssh/id_rsa.pub:/root/.ssh/authorized_keys'})
         run_cmds = [
             'chmod 600 /root/.ssh/authorized_keys',
-            'restorecon /root/.ssh/authorized_keys',
+            'restorecon -R -v /root/.ssh',
             'cp /root/.ssh/authorized_keys /home/stack/.ssh/',
             'chown stack:stack /home/stack/.ssh/authorized_keys',
             'chmod 600 /home/stack/.ssh/authorized_keys'
@@ -234,12 +234,18 @@ class Undercloud:
             "undercloud_hostname undercloud.{}".format(ns['dns-domain']),
             "local_ip {}/{}".format(str(ns_admin['installer_vm']['ip']),
                                     str(ns_admin['cidr']).split('/')[1]),
-            "network_gateway {}".format(str(ns_admin['installer_vm']['ip'])),
-            "network_cidr {}".format(str(ns_admin['cidr'])),
+            "generate_service_certificate false",
+            "undercloud_ntp_servers {}".format(str(ns['ntp'][0])),
+            "container_images_file "
+            "/home/stack/containers-prepare-parameter.yaml"
+        ]
+
+        config['undercloud_network_config'] = [
+            "gateway {}".format(str(ns_admin['installer_vm']['ip'])),
+            "cidr {}".format(str(ns_admin['cidr'])),
             "dhcp_start {}".format(str(ns_admin['dhcp_range'][0])),
             "dhcp_end {}".format(str(ns_admin['dhcp_range'][1])),
             "inspection_iprange {}".format(','.join(intro_range)),
-            "generate_service_certificate false"
         ]
 
         config['ironic_config'] = [
@@ -263,8 +269,11 @@ class Undercloud:
             "prefix": str(ns_external['cidr']).split('/')[1],
             "enabled": ns_external['enabled']
         }
-        # TODO(trozet): clean this logic up and merge with above
-        if 'external' in ns.enabled_network_list:
+        # We will NAT external network if it is enabled. If external network
+        # is IPv6, we will NAT admin network in case we need IPv4 connectivity
+        # for things like DNS server.
+        if 'external' in ns.enabled_network_list and \
+                ns_external['cidr'].version == 4:
             nat_cidr = ns_external['cidr']
         else:
             nat_cidr = ns['networks']['admin']['cidr']