overcloud deploy - net ports with baremetal deploy
--network-ports Deploy network ports during baremetal node provisioning. --network-config (implies --network-ports) Deploy network ports and apply the network configuration by applying the tripleo_network_config role on the nodes. Change-Id: Ib0c57e57fe5771d914ffd2a93c911cb325152f8b
This commit is contained in:
parent
c3a8abfdc1
commit
05b47bc07e
|
@ -1449,12 +1449,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
|
|||
verbosity=3, workdir=mock.ANY, forks=None)],
|
||||
utils_fixture2.mock_run_ansible_playbook.mock_calls)
|
||||
|
||||
@mock.patch('tripleoclient.utils.write_user_environment', autospec=True)
|
||||
def test_provision_baremetal(self, mock_write):
|
||||
mock_write.return_value = (
|
||||
'/tmp/tht/user-environments/baremetal-deployed.yaml',
|
||||
'overcloud/user-environments/baremetal-deployed.yaml'
|
||||
)
|
||||
def test_provision_baremetal(self):
|
||||
baremetal_deployed = {
|
||||
'parameter_defaults': {'foo': 'bar'}
|
||||
}
|
||||
|
@ -1492,6 +1487,7 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
|
|||
with open(env_path, 'w') as f:
|
||||
yaml.safe_dump(baremetal_deployed, f)
|
||||
|
||||
self.cmd.working_dir = self.tmp_dir.join('working_dir')
|
||||
result = self.cmd._provision_baremetal(parsed_args, tht_root)
|
||||
self.cmd._unprovision_baremetal(parsed_args)
|
||||
self.assertEqual([env_path], result)
|
||||
|
@ -1505,7 +1501,11 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
|
|||
],
|
||||
'baremetal_deployed_path': env_path,
|
||||
'ssh_public_keys': 'sekrit',
|
||||
'ssh_user_name': 'heat-admin'
|
||||
'ssh_user_name': 'heat-admin',
|
||||
'ssh_private_key_file': self.tmp_dir.join('id_rsa.pub'),
|
||||
'manage_network_ports': False,
|
||||
'configure_networking': False,
|
||||
'working_dir': self.tmp_dir.join('working_dir')
|
||||
},
|
||||
inventory='localhost,',
|
||||
playbook='cli-overcloud-node-provision.yaml',
|
||||
|
@ -1520,7 +1520,8 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
|
|||
{'count': 10, 'name': 'Compute'},
|
||||
{'count': 3, 'name': 'Controller'}
|
||||
],
|
||||
'prompt': False
|
||||
'prompt': False,
|
||||
'manage_network_ports': False,
|
||||
},
|
||||
inventory='localhost,',
|
||||
playbook='cli-overcloud-node-unprovision.yaml',
|
||||
|
@ -1529,12 +1530,6 @@ class TestDeployOvercloud(fakes.TestDeployOvercloud):
|
|||
workdir=mock.ANY
|
||||
)
|
||||
])
|
||||
mock_write.assert_called_once_with(
|
||||
{'parameter_defaults': {'foo': 'bar'}},
|
||||
'baremetal-deployed.yaml',
|
||||
tht_root,
|
||||
'overcloud'
|
||||
)
|
||||
|
||||
def test__provision_networks(self):
|
||||
networks_file_path = self.tmp_dir.join('networks.yaml')
|
||||
|
|
|
@ -84,6 +84,12 @@ def _validate_args(parsed_args):
|
|||
"Error: --config-download-only/--setup-only must not be used when "
|
||||
"using --baremetal-deployment")
|
||||
|
||||
if ((parsed_args.network_ports or parsed_args.network_config)
|
||||
and not parsed_args.baremetal_deployment):
|
||||
raise oscexc.CommandError(
|
||||
"Error: --baremetal-deployment must be used when using "
|
||||
"--network-ports or --network-config")
|
||||
|
||||
if parsed_args.environment_directories:
|
||||
_validate_args_environment_dir(parsed_args.environment_directories)
|
||||
|
||||
|
@ -422,9 +428,13 @@ class DeployOvercloud(command.Command):
|
|||
if not parsed_args.baremetal_deployment:
|
||||
return []
|
||||
|
||||
roles_file_path = os.path.abspath(parsed_args.baremetal_deployment)
|
||||
roles_file_dir = os.path.dirname(roles_file_path)
|
||||
with open(parsed_args.baremetal_deployment, 'r') as fp:
|
||||
roles = yaml.safe_load(fp)
|
||||
|
||||
utils.validate_roles_playbooks(roles_file_dir, roles)
|
||||
|
||||
key = self.get_key_pair(parsed_args)
|
||||
with open('{}.pub'.format(key), 'rt') as fp:
|
||||
ssh_key = fp.read()
|
||||
|
@ -437,8 +447,13 @@ class DeployOvercloud(command.Command):
|
|||
"stack_name": parsed_args.stack,
|
||||
"baremetal_deployment": roles,
|
||||
"baremetal_deployed_path": output_path,
|
||||
"ssh_private_key_file": key,
|
||||
"ssh_public_keys": ssh_key,
|
||||
"ssh_user_name": parsed_args.overcloud_ssh_user
|
||||
"ssh_user_name": parsed_args.overcloud_ssh_user,
|
||||
"manage_network_ports": (parsed_args.network_ports
|
||||
or parsed_args.network_config),
|
||||
"configure_networking": parsed_args.network_config,
|
||||
"working_dir": self.working_dir
|
||||
}
|
||||
|
||||
with utils.TempDirs() as tmp:
|
||||
|
@ -450,15 +465,9 @@ class DeployOvercloud(command.Command):
|
|||
verbosity=utils.playbook_verbosity(self=self),
|
||||
extra_vars=extra_vars,
|
||||
)
|
||||
|
||||
with open(output_path, 'r') as fp:
|
||||
parameter_defaults = yaml.safe_load(fp)
|
||||
|
||||
utils.write_user_environment(
|
||||
parameter_defaults,
|
||||
'baremetal-deployed.yaml',
|
||||
tht_root,
|
||||
parsed_args.stack)
|
||||
if parsed_args.network_config:
|
||||
utils.run_role_playbooks(self, self.working_dir, roles_file_dir,
|
||||
roles)
|
||||
|
||||
return [output_path]
|
||||
|
||||
|
@ -481,6 +490,8 @@ class DeployOvercloud(command.Command):
|
|||
"stack_name": parsed_args.stack,
|
||||
"baremetal_deployment": roles,
|
||||
"prompt": False,
|
||||
"manage_network_ports": (parsed_args.network_ports
|
||||
or parsed_args.network_config),
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -850,6 +861,15 @@ class DeployOvercloud(command.Command):
|
|||
metavar='<baremetal_deployment.yaml>',
|
||||
help=_('Configuration file describing the '
|
||||
'baremetal deployment'))
|
||||
parser.add_argument('--network-ports',
|
||||
help=_('Enable provisioning of network ports'),
|
||||
default=False,
|
||||
action="store_true")
|
||||
parser.add_argument('--network-config',
|
||||
help=_('Apply network config to provisioned '
|
||||
'nodes. (Implies "--network-ports")'),
|
||||
default=False,
|
||||
action="store_true")
|
||||
parser.add_argument(
|
||||
'--limit',
|
||||
action='store',
|
||||
|
|
Loading…
Reference in New Issue