Merge "tripleo deploy: Use Standalone role by default"
This commit is contained in:
commit
8e468b5799
@ -0,0 +1,6 @@
|
|||||||
|
---
|
||||||
|
upgrade:
|
||||||
|
- |
|
||||||
|
The ``openstack tripleo deploy`` command no longer executes the preflight
|
||||||
|
validations by default. The ``--preflight-validation`` option should be
|
||||||
|
added to enable the validations.
|
@ -25,6 +25,7 @@ TRIPLEO_HEAT_TEMPLATES = "/usr/share/openstack-tripleo-heat-templates/"
|
|||||||
OVERCLOUD_YAML_NAME = "overcloud.yaml"
|
OVERCLOUD_YAML_NAME = "overcloud.yaml"
|
||||||
OVERCLOUD_ROLES_FILE = "roles_data.yaml"
|
OVERCLOUD_ROLES_FILE = "roles_data.yaml"
|
||||||
UNDERCLOUD_ROLES_FILE = "roles_data_undercloud.yaml"
|
UNDERCLOUD_ROLES_FILE = "roles_data_undercloud.yaml"
|
||||||
|
STANDALONE_ROLES_FILE = "roles_data_standalone.yaml"
|
||||||
STANDALONE_EPHEMERAL_STACK_VSTATE = '/var/lib/tripleo-heat-installer'
|
STANDALONE_EPHEMERAL_STACK_VSTATE = '/var/lib/tripleo-heat-installer'
|
||||||
UNDERCLOUD_LOG_FILE = "install-undercloud.log"
|
UNDERCLOUD_LOG_FILE = "install-undercloud.log"
|
||||||
OVERCLOUD_NETWORKS_FILE = "network_data_default.yaml"
|
OVERCLOUD_NETWORKS_FILE = "network_data_default.yaml"
|
||||||
|
@ -62,7 +62,8 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
@mock.patch('tripleoclient.utils.check_hostname')
|
@mock.patch('tripleoclient.utils.check_hostname')
|
||||||
def test_run_preflight_checks(self, mock_check_hostname, mock_uc):
|
def test_run_preflight_checks(self, mock_check_hostname, mock_uc):
|
||||||
parsed_args = self.check_parser(self.cmd,
|
parsed_args = self.check_parser(self.cmd,
|
||||||
['--local-ip', '127.0.0.1/8'], [])
|
['--local-ip', '127.0.0.1/8',
|
||||||
|
'--preflight-validations'], [])
|
||||||
|
|
||||||
mock_uc.return_value = False
|
mock_uc.return_value = False
|
||||||
self.cmd._run_preflight_checks(parsed_args)
|
self.cmd._run_preflight_checks(parsed_args)
|
||||||
@ -74,7 +75,8 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
mock_uc):
|
mock_uc):
|
||||||
parsed_args = self.check_parser(self.cmd,
|
parsed_args = self.check_parser(self.cmd,
|
||||||
['--local-ip', '127.0.0.1/8',
|
['--local-ip', '127.0.0.1/8',
|
||||||
'--output-only'], [])
|
'--output-only',
|
||||||
|
'--preflight-validations'], [])
|
||||||
|
|
||||||
mock_uc.return_value = False
|
mock_uc.return_value = False
|
||||||
self.cmd._run_preflight_checks(parsed_args)
|
self.cmd._run_preflight_checks(parsed_args)
|
||||||
@ -82,10 +84,11 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
|
|
||||||
@mock.patch('tripleoclient.v1.tripleo_deploy.Deploy._is_undercloud_deploy')
|
@mock.patch('tripleoclient.v1.tripleo_deploy.Deploy._is_undercloud_deploy')
|
||||||
@mock.patch('tripleoclient.utils.check_hostname')
|
@mock.patch('tripleoclient.utils.check_hostname')
|
||||||
def test_run_preflight_checks_undercloud(self, mock_check_hostname,
|
def test_run_preflight_checks_disabled(self, mock_check_hostname,
|
||||||
mock_uc):
|
mock_uc):
|
||||||
parsed_args = self.check_parser(self.cmd,
|
parsed_args = self.check_parser(self.cmd,
|
||||||
['--local-ip', '127.0.0.1/8'], [])
|
['--local-ip', '127.0.0.1/8'],
|
||||||
|
[])
|
||||||
|
|
||||||
mock_uc.return_value = True
|
mock_uc.return_value = True
|
||||||
self.cmd._run_preflight_checks(parsed_args)
|
self.cmd._run_preflight_checks(parsed_args)
|
||||||
@ -98,7 +101,7 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
roles_file = self.cmd._get_roles_file_path(parsed_args)
|
roles_file = self.cmd._get_roles_file_path(parsed_args)
|
||||||
self.assertEqual(roles_file,
|
self.assertEqual(roles_file,
|
||||||
'/usr/share/openstack-tripleo-heat-templates/'
|
'/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'roles_data_undercloud.yaml')
|
'roles_data_standalone.yaml')
|
||||||
|
|
||||||
def test_get_roles_file_path_custom_file(self):
|
def test_get_roles_file_path_custom_file(self):
|
||||||
parsed_args = self.check_parser(self.cmd,
|
parsed_args = self.check_parser(self.cmd,
|
||||||
@ -118,7 +121,7 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
pprint.pprint(parsed_args)
|
pprint.pprint(parsed_args)
|
||||||
roles_file = self.cmd._get_roles_file_path(parsed_args)
|
roles_file = self.cmd._get_roles_file_path(parsed_args)
|
||||||
self.assertEqual(roles_file,
|
self.assertEqual(roles_file,
|
||||||
'/tmp/thtroot/roles_data_undercloud.yaml')
|
'/tmp/thtroot/roles_data_standalone.yaml')
|
||||||
|
|
||||||
def test_get_networks_file_path(self):
|
def test_get_networks_file_path(self):
|
||||||
parsed_args = self.check_parser(self.cmd,
|
parsed_args = self.check_parser(self.cmd,
|
||||||
@ -161,7 +164,7 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
self.assertEqual(
|
self.assertEqual(
|
||||||
self.cmd._get_primary_role_name(parsed_args.roles_file,
|
self.cmd._get_primary_role_name(parsed_args.roles_file,
|
||||||
parsed_args.templates),
|
parsed_args.templates),
|
||||||
'Undercloud')
|
'Standalone')
|
||||||
|
|
||||||
@mock.patch('tripleoclient.utils.fetch_roles_file')
|
@mock.patch('tripleoclient.utils.fetch_roles_file')
|
||||||
def test_get_primary_role_name_no_primary(self, mock_data):
|
def test_get_primary_role_name_no_primary(self, mock_data):
|
||||||
@ -228,12 +231,12 @@ class TestDeployUndercloud(TestPluginV1):
|
|||||||
mock_exists, mock_chmod, mock_user):
|
mock_exists, mock_chmod, mock_user):
|
||||||
pw_dict = {"GeneratedPassword": 123, "LegacyPass": "override me"}
|
pw_dict = {"GeneratedPassword": 123, "LegacyPass": "override me"}
|
||||||
t_pw_conf_path = os.path.join(
|
t_pw_conf_path = os.path.join(
|
||||||
self.temp_homedir, 'tripleo-undercloud-passwords.yaml')
|
self.temp_homedir, 'tripleo-standalone-passwords.yaml')
|
||||||
|
|
||||||
mock_pw.return_value = pw_dict
|
mock_pw.return_value = pw_dict
|
||||||
|
|
||||||
old_pw_file = os.path.join(constants.CLOUD_HOME_DIR,
|
old_pw_file = os.path.join(constants.CLOUD_HOME_DIR,
|
||||||
'tripleo-undercloud-passwords.yaml')
|
'tripleo-standalone-passwords.yaml')
|
||||||
|
|
||||||
def mock_file_exists(file_name):
|
def mock_file_exists(file_name):
|
||||||
return not file_name == old_pw_file
|
return not file_name == old_pw_file
|
||||||
|
@ -78,6 +78,8 @@ class TestUndercloudInstall(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--heat-native', '-e',
|
'--heat-native', '-e',
|
||||||
@ -133,6 +135,8 @@ class TestUndercloudInstall(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--heat-native', '-e',
|
'--heat-native', '-e',
|
||||||
@ -345,6 +349,8 @@ class TestUndercloudInstall(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--heat-native', '-e',
|
'--heat-native', '-e',
|
||||||
@ -408,6 +414,8 @@ class TestUndercloudInstall(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--heat-native', '-e',
|
'--heat-native', '-e',
|
||||||
@ -464,6 +472,8 @@ class TestUndercloudInstall(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--heat-native', '-e',
|
'--heat-native', '-e',
|
||||||
@ -545,6 +555,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--upgrade', '-e',
|
'--upgrade', '-e',
|
||||||
@ -630,6 +642,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--upgrade', '-e',
|
'--upgrade', '-e',
|
||||||
@ -690,6 +704,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--upgrade', '-e',
|
'--upgrade', '-e',
|
||||||
@ -749,6 +765,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--upgrade', '-e',
|
'--upgrade', '-e',
|
||||||
@ -809,6 +827,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'-y', '--upgrade', '-e',
|
'-y', '--upgrade', '-e',
|
||||||
@ -872,6 +892,8 @@ class TestUndercloudUpgrade(TestPluginV1):
|
|||||||
'undercloud', '--local-domain=localdomain',
|
'undercloud', '--local-domain=localdomain',
|
||||||
'--local-ip=192.168.24.1/24',
|
'--local-ip=192.168.24.1/24',
|
||||||
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
'--templates=/usr/share/openstack-tripleo-heat-templates/',
|
||||||
|
'--roles-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
|
'roles_data_undercloud.yaml',
|
||||||
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
'--networks-file=/usr/share/openstack-tripleo-heat-templates/'
|
||||||
'network_data_undercloud.yaml',
|
'network_data_undercloud.yaml',
|
||||||
'--upgrade', '-e',
|
'--upgrade', '-e',
|
||||||
|
@ -45,13 +45,11 @@ class GenerateAnsibleConfig(command.Command):
|
|||||||
help=_('User who executes the tripleo config generate command. '
|
help=_('User who executes the tripleo config generate command. '
|
||||||
'Defaults to stack.')
|
'Defaults to stack.')
|
||||||
)
|
)
|
||||||
# TODO(bogdando): find a better UNDERCLOUD_OUTPUT_DIR constant name
|
|
||||||
# Add more params as far as the imported ansible actions support it
|
|
||||||
parser.add_argument('--output-dir',
|
parser.add_argument('--output-dir',
|
||||||
dest='output_dir',
|
dest='output_dir',
|
||||||
help=_("Directory to output ansible.cfg and "
|
help=_("Directory to output ansible.cfg and "
|
||||||
"ansible.log files."),
|
"ansible.log files."),
|
||||||
default=constants.UNDERCLOUD_OUTPUT_DIR)
|
default=constants.CLOUD_HOME_DIR)
|
||||||
|
|
||||||
return parser
|
return parser
|
||||||
|
|
||||||
|
@ -113,8 +113,8 @@ class Deploy(command.Command):
|
|||||||
|
|
||||||
:param parsed_args: parsed arguments from the cli
|
:param parsed_args: parsed arguments from the cli
|
||||||
"""
|
"""
|
||||||
# we skip preflight checks for output only and undercloud
|
# we skip preflight checks for output only
|
||||||
if parsed_args.output_only or self._is_undercloud_deploy(parsed_args):
|
if parsed_args.output_only or not parsed_args.preflight:
|
||||||
return
|
return
|
||||||
|
|
||||||
# in standalone we don't want to fixup the /etc/hosts as we'll be
|
# in standalone we don't want to fixup the /etc/hosts as we'll be
|
||||||
@ -161,7 +161,7 @@ class Deploy(command.Command):
|
|||||||
"""Return roles_file for the deployment"""
|
"""Return roles_file for the deployment"""
|
||||||
if not parsed_args.roles_file:
|
if not parsed_args.roles_file:
|
||||||
roles_file = os.path.join(parsed_args.templates,
|
roles_file = os.path.join(parsed_args.templates,
|
||||||
constants.UNDERCLOUD_ROLES_FILE)
|
constants.STANDALONE_ROLES_FILE)
|
||||||
else:
|
else:
|
||||||
roles_file = parsed_args.roles_file
|
roles_file = parsed_args.roles_file
|
||||||
return roles_file
|
return roles_file
|
||||||
@ -178,7 +178,7 @@ class Deploy(command.Command):
|
|||||||
roles_data = utils.fetch_roles_file(
|
roles_data = utils.fetch_roles_file(
|
||||||
roles_file_path, templates)
|
roles_file_path, templates)
|
||||||
if not roles_data:
|
if not roles_data:
|
||||||
return 'Undercloud'
|
return 'Standalone'
|
||||||
|
|
||||||
for r in roles_data:
|
for r in roles_data:
|
||||||
if 'tags' in r and 'primary' in r['tags']:
|
if 'tags' in r and 'primary' in r['tags']:
|
||||||
@ -191,7 +191,7 @@ class Deploy(command.Command):
|
|||||||
"""Creates temporary working directories"""
|
"""Creates temporary working directories"""
|
||||||
utils.makedirs(constants.STANDALONE_EPHEMERAL_STACK_VSTATE)
|
utils.makedirs(constants.STANDALONE_EPHEMERAL_STACK_VSTATE)
|
||||||
|
|
||||||
def _create_working_dirs(self, stack_name='undercloud'):
|
def _create_working_dirs(self, stack_name='standalone'):
|
||||||
"""Creates temporary working directories"""
|
"""Creates temporary working directories"""
|
||||||
if self.output_dir:
|
if self.output_dir:
|
||||||
utils.makedirs(self.output_dir)
|
utils.makedirs(self.output_dir)
|
||||||
@ -208,7 +208,7 @@ class Deploy(command.Command):
|
|||||||
prefix=stack_name + '-ansible-', dir=self.output_dir)
|
prefix=stack_name + '-ansible-', dir=self.output_dir)
|
||||||
|
|
||||||
def _populate_templates_dir(self, source_templates_dir,
|
def _populate_templates_dir(self, source_templates_dir,
|
||||||
stack_name='undercloud'):
|
stack_name='standalone'):
|
||||||
"""Creates template dir with templates
|
"""Creates template dir with templates
|
||||||
|
|
||||||
* Copy --templates content into a working dir
|
* Copy --templates content into a working dir
|
||||||
@ -256,7 +256,7 @@ class Deploy(command.Command):
|
|||||||
constants.PUPPET_BASE)
|
constants.PUPPET_BASE)
|
||||||
|
|
||||||
def _update_passwords_env(self, output_dir, user, passwords=None,
|
def _update_passwords_env(self, output_dir, user, passwords=None,
|
||||||
stack_name='undercloud'):
|
stack_name='standalone'):
|
||||||
old_pw_file = os.path.join(constants.CLOUD_HOME_DIR,
|
old_pw_file = os.path.join(constants.CLOUD_HOME_DIR,
|
||||||
'tripleo-' + stack_name + '-passwords.yaml')
|
'tripleo-' + stack_name + '-passwords.yaml')
|
||||||
pw_file = os.path.join(output_dir,
|
pw_file = os.path.join(output_dir,
|
||||||
@ -317,8 +317,8 @@ class Deploy(command.Command):
|
|||||||
return data
|
return data
|
||||||
|
|
||||||
def _generate_portmap_parameters(self, ip_addr, ip_nw, ctlplane_vip_addr,
|
def _generate_portmap_parameters(self, ip_addr, ip_nw, ctlplane_vip_addr,
|
||||||
public_vip_addr, stack_name='Undercloud',
|
public_vip_addr, stack_name='standalone',
|
||||||
role_name='Undercloud'):
|
role_name='Standalone'):
|
||||||
hostname = utils.get_short_hostname()
|
hostname = utils.get_short_hostname()
|
||||||
|
|
||||||
# in order for deployed server network information to match correctly,
|
# in order for deployed server network information to match correctly,
|
||||||
@ -843,7 +843,7 @@ class Deploy(command.Command):
|
|||||||
'Roles file, overrides the default %s in the t-h-t templates '
|
'Roles file, overrides the default %s in the t-h-t templates '
|
||||||
'directory used for deployment. May be an '
|
'directory used for deployment. May be an '
|
||||||
'absolute path or the path relative to the templates dir.'
|
'absolute path or the path relative to the templates dir.'
|
||||||
) % constants.UNDERCLOUD_ROLES_FILE
|
) % constants.STANDALONE_ROLES_FILE
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--networks-file', '-n', dest='networks_file',
|
'--networks-file', '-n', dest='networks_file',
|
||||||
@ -909,18 +909,18 @@ class Deploy(command.Command):
|
|||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--local-ip', metavar='<LOCAL_IP>',
|
'--local-ip', metavar='<LOCAL_IP>',
|
||||||
dest='local_ip',
|
dest='local_ip',
|
||||||
help=_('Local IP/CIDR for undercloud traffic. Required.')
|
help=_('Local IP/CIDR for standalone traffic. Required.')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--control-virtual-ip', metavar='<CONTROL_VIRTUAL_IP>',
|
'--control-virtual-ip', metavar='<CONTROL_VIRTUAL_IP>',
|
||||||
dest='control_virtual_ip',
|
dest='control_virtual_ip',
|
||||||
help=_('Control plane VIP. This allows the undercloud installer '
|
help=_('Control plane VIP. This allows the standalone installer '
|
||||||
'to configure a custom VIP on the control plane.')
|
'to configure a custom VIP on the control plane.')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--public-virtual-ip', metavar='<PUBLIC_VIRTUAL_IP>',
|
'--public-virtual-ip', metavar='<PUBLIC_VIRTUAL_IP>',
|
||||||
dest='public_virtual_ip',
|
dest='public_virtual_ip',
|
||||||
help=_('Public nw VIP. This allows the undercloud installer '
|
help=_('Public nw VIP. This allows the standalone installer '
|
||||||
'to configure a custom VIP on the public (external) NW.')
|
'to configure a custom VIP on the public (external) NW.')
|
||||||
)
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
@ -960,6 +960,14 @@ class Deploy(command.Command):
|
|||||||
'openstack stack list\n'
|
'openstack stack list\n'
|
||||||
'where 8006 is the port specified by --heat-api-port.')
|
'where 8006 is the port specified by --heat-api-port.')
|
||||||
)
|
)
|
||||||
|
parser.add_argument(
|
||||||
|
'--preflight-validations',
|
||||||
|
action='store_true',
|
||||||
|
default=False,
|
||||||
|
dest='preflight',
|
||||||
|
help=_('Activate pre-flight validations before starting '
|
||||||
|
'the actual deployment process.')
|
||||||
|
)
|
||||||
parser.add_argument(
|
parser.add_argument(
|
||||||
'--inflight-validations',
|
'--inflight-validations',
|
||||||
action='store_true',
|
action='store_true',
|
||||||
@ -1032,7 +1040,7 @@ class Deploy(command.Command):
|
|||||||
|
|
||||||
def _process_hieradata_overrides(self, override_file=None,
|
def _process_hieradata_overrides(self, override_file=None,
|
||||||
tripleo_role_name='Standalone',
|
tripleo_role_name='Standalone',
|
||||||
stack_name='undercloud'):
|
stack_name='standalone'):
|
||||||
"""Count in hiera data overrides including legacy formats
|
"""Count in hiera data overrides including legacy formats
|
||||||
|
|
||||||
Return a file name that points to processed hiera data overrides file
|
Return a file name that points to processed hiera data overrides file
|
||||||
@ -1063,7 +1071,7 @@ class Deploy(command.Command):
|
|||||||
self._create_working_dirs(stack_name)
|
self._create_working_dirs(stack_name)
|
||||||
|
|
||||||
# NOTE(bogdando): In t-h-t, hiera data should come in wrapped as
|
# NOTE(bogdando): In t-h-t, hiera data should come in wrapped as
|
||||||
# {parameter_defaults: {UndercloudExtraConfig: ... }}
|
# {parameter_defaults: {StandaloneExtraConfig: ... }}
|
||||||
extra_config_var = '%sExtraConfig' % tripleo_role_name
|
extra_config_var = '%sExtraConfig' % tripleo_role_name
|
||||||
if (extra_config_var not in hiera_data.get('parameter_defaults', {})):
|
if (extra_config_var not in hiera_data.get('parameter_defaults', {})):
|
||||||
hiera_override_file = os.path.join(
|
hiera_override_file = os.path.join(
|
||||||
@ -1104,9 +1112,11 @@ class Deploy(command.Command):
|
|||||||
|
|
||||||
def _standalone_deploy(self, parsed_args):
|
def _standalone_deploy(self, parsed_args):
|
||||||
extra_env_var = dict()
|
extra_env_var = dict()
|
||||||
|
|
||||||
if self._is_undercloud_deploy(parsed_args):
|
if self._is_undercloud_deploy(parsed_args):
|
||||||
extra_env_var['ANSIBLE_LOG_PATH'] = os.path.join(
|
extra_env_var['ANSIBLE_LOG_PATH'] = os.path.join(
|
||||||
parsed_args.output_dir, constants.UNDERCLOUD_LOG_FILE)
|
parsed_args.output_dir, constants.UNDERCLOUD_LOG_FILE)
|
||||||
|
|
||||||
if not parsed_args.local_ip:
|
if not parsed_args.local_ip:
|
||||||
msg = _('Please set --local-ip to the correct '
|
msg = _('Please set --local-ip to the correct '
|
||||||
'ipaddress/cidr for this machine.')
|
'ipaddress/cidr for this machine.')
|
||||||
@ -1130,6 +1140,7 @@ class Deploy(command.Command):
|
|||||||
parsed_args.stack)
|
parsed_args.stack)
|
||||||
|
|
||||||
self.output_dir = os.path.abspath(output_dir)
|
self.output_dir = os.path.abspath(output_dir)
|
||||||
|
|
||||||
self._create_working_dirs(parsed_args.stack.lower())
|
self._create_working_dirs(parsed_args.stack.lower())
|
||||||
# The state that needs to be persisted between serial deployments
|
# The state that needs to be persisted between serial deployments
|
||||||
# and cannot be contained in ephemeral heat stacks or working dirs
|
# and cannot be contained in ephemeral heat stacks or working dirs
|
||||||
|
@ -540,6 +540,9 @@ def prepare_undercloud_deploy(upgrade=False, no_validations=True,
|
|||||||
|
|
||||||
if CONF.get('roles_file'):
|
if CONF.get('roles_file'):
|
||||||
deploy_args.append('--roles-file=%s' % CONF['roles_file'])
|
deploy_args.append('--roles-file=%s' % CONF['roles_file'])
|
||||||
|
else:
|
||||||
|
deploy_args.append('--roles-file=%s' % os.path.join(
|
||||||
|
tht_templates, constants.UNDERCLOUD_ROLES_FILE))
|
||||||
|
|
||||||
networks_file = (CONF.get('networks_file') or
|
networks_file = (CONF.get('networks_file') or
|
||||||
os.path.join(tht_templates,
|
os.path.join(tht_templates,
|
||||||
|
Loading…
Reference in New Issue
Block a user