It's not valid input to exclude the ipv6 boolean when
using IPv6, but when this happens the client fails with
a type error. Handle this situation better and return
a better error message.
Closes-Bug: 1956517
Change-Id: Id99346ac0fc336b306550e71da0f9b746ff83ef1
If the --ceph-spec option is passed to 'openstack
overcloud ceph deploy', then it is not necessary
for the path to the environment file output from
'openstack overcloud node provision' to be passed.
Add conditional to ensure that either --ceph-spec
or <deployed_baremetal.yaml> are used and add two
unit tests to cover all three scenarios: a. metal
is passed, b. spec is passed and c. neither are
passed so a failure is asserted.
Depends-On: I9a6bd27f825d226b508053e4b7d2670a14f6f773
Change-Id: Ibd350956f401fa48aaeae89fdd5e0bd9c28d0685
With the addition of the vip file validation, we broke the check for
the templates arg resulting in a stack trace if templates is not
provided rather then a user friendly error message. This change moves
the vip file validation to it's own check later in the process once the
working directory has been created. The working directory is not created
until after the validation of params.
Change-Id: I67b7dc71542533607e3280b4fac3acfb95203b41
Closes-Bug: #1955573
Add --mon-ip option to 'openstack overcloud
ceph deploy', to easily override the variable
tripleo_cephadm_first_mon_ip from the CLI.
This option makes deployed ceph easier when
using standalone.
Change-Id: Id9a61356e8fd4618ce68faa2677f4ed30981b7d6
There is no reason to try to run playbooks limited
to a role name when the role count is zero. It
actually fails because no hosts match.
Add a check to skip roles with count == 0.
Closes-Bug: #1955432
Change-Id: I5312e5362bdeac8337d1d0991e5a94ded5e83f3f
Change I5f5cec5a1622be4983b4d0db392453d1c489fa40 allowed the
net_config_override file to be yaml as well as json, but if
enable_validations is true the _validate_no_ip_change assumes the
network config is json.
This change loads this file as yaml in _validate_no_ip_change.
Change-Id: Iaeadf412865c059d252ffc7087db3853569b74ee
Related-Bug: #1927090
Add `openstack overcloud ceph user enable | disable`
command line option. As requested by those who wish to
disable cephadm and the user which supports it after
deployment. The SSH user and cephadm may be re-enabled
when it is necessary to administer the Ceph cluster.
This also allows the cephadm SSH user to be created
in a separate step.
Add --skip-user-create to 'openstack overcloud ceph deploy'
in case 'openstack overcloud ceph user enable' was used to
handle that step earlier.
Depends-On: I648cdf8c8920c120049f05f13f8b7b73513899f1
Change-Id: Ibd4513183f59ebb94d841a847ecfab0425ba8f5a
The old passwords file path should also be checked during the
_validate_passwords_file undercloud preflight validation. Since the old
path will be migrated when tripleo deploy is run[1], it should be
considered as a valid path to allow the validation to pass.
[1] ddfd6d9940/tripleoclient/v1/tripleo_deploy.py (L290)
Change-Id: Id9da01bc870194273bb8cc5776699b30250ac4fd
Signed-off-by: James Slagle <jslagle@redhat.com>
In the overcloud node extract provisioned command, check
for predictable IPs usage. If used, add networks to the
instance section and set the fixed_ip value by using
RoleNetIpMap stack output as the source.
Closes-Bug: #1951410
Change-Id: I24d76d72aa291262a85a861a8109dde3d4d90e2e
Because the Xena release is not being created for TripleO repos, test
runtime is not updated by automation tools. This change updates
the job template to use the tested runtime for Yoga.
Change-Id: Idaac0bd54c8cc05ef3b1de4c268cdf440b82c8e5
Metalsmith does not support both network and subnet
key in a NIC definition. Since the ctlplane port has
vif: True, the subnet to use is automated via ironic
port physical_network and neutron physical_network
segment mapping. Setting the subnet is not neccecary
in this case.
Change-Id: I8ac9fee84d1c830c0df4f34088c12aec98323dbb
Closes-Bug: #1954341
In undercloud preflight validations the IP address in
config is compared to the IP address on the deployed
undercloud. For IPv6 the string discovered on the
system may be in a different format, representing the
same actual IP address and netmask but written using a
different valid syntax.
Load the existing IP and config IP as a netaddr.IPNetwork,
and compare both the networks and IPs to ensure we compare
the actuall address and network, not the strings.
Closes-Bug: #1953552
Change-Id: I42531b4e6f7b3b18ae085cc2eb36234cb306b375
When "openstack tripleo launch heat" is used to start an ephemeral Heat
process, a clouds.yaml and heatrc file are now written to the Heat
working dir that can be used to interact with the ephemeral Heat API.
Change-Id: I35ad22a77362e73695c16b1e5abf02e05f9fdada
Signed-off-by: James Slagle <jslagle@redhat.com>
127.0.0.1 should be used for the ephemeral Heat api endpoint IP instead
of the ctlplane IP. There is no need for the api to be listening
externally, and it's more secure if it isn't.
Change-Id: Id9992ee242d381c02cb530838fef21e60d10dfa6
Signed-off-by: James Slagle <jslagle@redhat.com>
In overcloud deploy, there was logic to skip the container image pull
when the default ephemeral Heat container images are being used. This is
because the images have already been prepared and tagged as coming from
the "localhost" repo.
This patch adds that same logic in heat_launcher.py directly so that it
can be used by both overcloud deploy and the launch heat command. The
unit test method for the _fetch_container_image method is updated to
test the additional logic.
Change-Id: Ibea0751de50eeba932012467a5857cc3c783b611
Signed-off-by: James Slagle <jslagle@redhat.com>
When the Ceph cluster is run, for each OSD the operator can define
an osd crush location (like it used to do with ceph-ansible [1]).
This patch adds to the overcloud ceph deploy command the ability to
accept an additional argument that represents the path where the
hierarchy map is defined.
[1] https://github.com/ceph/ceph-ansible/blob/master/tests/functional/all_daemons/container/hosts
Change-Id: Idd0296928246359e2dbb95f5163f32b653af55a3
If IPv6 is being used set ms_bind_ipv4 false
and ms_bind_ipv6 true in the Ceph configuration.
Without this change it is always necessary to use
the more complicated --config option to deploy IPv6
even if IPv4 is not being used. Instead the --config
option can be reserved for more complex scenarios like
experimental dual stack IPv4 and IPv6.
Follow up patch to If96e1d34d9a918d6e99366590b05c8219dc05e1c.
Related-Bug: #1950178
Change-Id: I86ad9631c62ae2abac7e01825ea2266a9def0b83
Basic test cases for the 'overcloud cell export' command,
covering execution with all default argument values,
alternate path of execution with operator provided values
and raising of the 'CellExportError' exception.
Signed-off-by: Jiri Podivin <jpodivin@redhat.com>
Change-Id: I02a89ce65d3ba1449360f2def96baedd64ac2653
In change If53577a26edcb2dc67458603286471dfb87f0bda
network_deployment_actions was replaced with
network_config_update in the baremetal YAML definition.
Update the overcloud node extract provisioned command
to set network_config_update instead of the removed
network_deployment_actions parameter.
Related-Bug: #1951458
Change-Id: I3d52e17400d4c7b7a7ac8878eb289e8a84df5459
The cli-deployed-ceph playbook has pre_tasks to define the Ceph
public_network, cluster_network and their names but those tasks
do not support custom network names as per the related bug.
Add a get_ceph_networks utility which extracts the public_network,
cluster_network and their names from the network_data file and
then pass those values directly to the cli-deployed-ceph playbook
via extra_vars.
Related-Bug: #1950178
Change-Id: If96e1d34d9a918d6e99366590b05c8219dc05e1c
The following commands have been removed:
overcloud container image upload
overcloud container image build
overcloud container image prepare
overcloud container image tag discover
They were replaced by the tripleo container based commands and no longer
function.
Change-Id: Ic1f4d76c9e7bf3579b7e47d87b0ee2c86251c0d6
Looks like ansible_runner.utils.dump_artifact() makes it
read-only and redeploy fails with permission error.
Closes-Bug: #1950767
Change-Id: I32acdb51ac12be08c94efa5c198ea83549a8f034
The assertEquals method has been deprecated since it was renamed
to assertEqual in Python 3.2.
https: //docs.python.org/3/library/unittest.html#deprecated-aliases
Change-Id: I5f9ae14fe91c3c3cdf5dd9884997ba6a51091570