- '--init' flag was marked with WARNING indicating it will be
deprecated and replaced by '--setup-nfs' and '--setup-rear'.
Now it receives arguments: 'rear' and 'nfs'. Defaults to: rear,
so it doesn't break interface.
- '--setup-nfs' flag added which installs and configure NFS
on the 'BackupNode' host.
- '--setup-rear' flag added which installs and configure ReaR
on the 'Undercloud' or the 'Controller' nodes.
- '--extra-vars' was enabled to pass variables to the playbooks
by specifying JSON/YAML string or full path of the file.
- Now 'tags' parameter is used internally to specify which
tasks to run.
- '--storage-ip' flag on overcloud backup command was marked with
WARNING indicating it will be deprecated in favor of '--extra-vars'
which allows to pass this and more properties.
Thought, it has precedence over '--extra-vars'. If used it will replace
the '--extra-vars' property 'tripleo_backup_and_restore_nfs_server'.
Bugzilla: #1824806
Change-Id: I31f2a554b03677fe29bd1186dee5d278b6d0554b
In [1] we added protection for yum not being available.
We should just default to dnf for anything newer than
ussuri.
[1] 9c53cb3ef5
Change-Id: I5056579ae117c46944f20868c5cd1edfc1b86036
In https://review.opendev.org/753195 we set up ctlplane
network attributes and later use those in THT when setting
group_vars for os_net_config templates in ansible.
The change missed to add 'host_routes' for peer-subnets in
a spine-and-leaf set-up. This caused introspection and
provisioning to fail in spine-and-leaf set-ups because the
undercloud did'nt know how to reach the remote subnets.
This change updates the code to include calculated routes
to the remote subnets.
Change-Id: I265b2b586ceaeaa98bbf6073bb79cde6a91627da
Closes-Bug: #1899008
We are deprecating and removing novajoin in Victoria. Lets remove
the config option and add a service to clean it up on the undercloud
Depends-On: I7803cccc4b4bf8c7cc201372ec91f9254cef7eb3
Change-Id: I8d4af24337ff8123b3d9899982033df05470cc22
Set CtlplaneNetworkAttributes parameter in overcloud
environment. The parameter contains a map with network
and subnets data.
CtlplaneNetworkAttributes:
network:
dns_domain: ctlplane.localdomain.
mtu: 1442
name: ctlplane
tags: ['192.168.24.0/24', '192.168.25.0/24']
subnets:
ctlplane-leaf1:
cidr: 192.168.25.0/24
dns_nameservers: ['8.8.8.8', '8.8.4.4']
gateway_ip: 192.168.25.254
host_routes:
- {'destination': '192.168.24.0/24', 'nexthop': '192.168.25.254'}
ip_version: 4
name: ctlplane-leaf1
Also set the CtlplaneNetworkAttributes in the undercloud environment
from the data in undercloud.conf.
Also set the CtlplaneNetworkAttributes in the standalone environment.
Change-Id: I12f1ea965d489eb36353e988cc3ec947f72a35ad
Mistral isn't needed by default anymore, we replaced it by Ansible.
Therefore, we don't need Zaqar enabled by default as well.
Depends-On: https://review.opendev.org/746595
Depends-On: https://review.opendev.org/750795
Change-Id: I327d7f06fc6f49aae42d0a9d22c840f94bd84705
Change 2600260be5 introduced validation
to avoid duplicated usage of undercloud IPs, but in fact we don't need
to ensure complete unieqness of local_ip, undercloud_admin_host and
undercloud_public_host, but it should be enough if local_ip and
undercloud_admin_host are different, because public endpoints should
listen on different ports when ssl is enabled.
This patch eases the validation introduced by the previous patch, so
that we allow the deployment especially with the same ip used for
public_host and admin_host, which was allowed in old releases.
Depends-On: https://review.opendev.org/746671
Change-Id: I932482e097d62f46e02eb035435d2bc0d5548b2a
Related-Bug: #1832168
Related: RHBZ#1868910
As described in the related bug we need to use dnf instead of yum
for centos8 otherwise it fails in the undercloud packages update.
I am using the python version to determine - py3 is dnf. As part of
discussion here when dnf isn't available fall back to yum.
Found as part of the work in [1].
Related-Bug: 1886837
[1] https://tree.taiga.io/project/tripleo-ci-board/task/1817
Change-Id: Idac62d37a19ee49f30936e20021a9dab5af40eec
assertItemsEqual was removed from Python's unittest.TestCase in
Python 3.3 [1][2]. We have been able to use them since then, because
testtools required unittest2, which still included it. With testtools
removing Python 2.7 support [3][4], we will lose support for
assertItemsEqual, so we should switch to use assertCountEqual.
[1] - https://bugs.python.org/issue17866
[2] - https://hg.python.org/cpython/rev/d9921cb6e3cd
[3] - testing-cabal/testtools#286
[4] - testing-cabal/testtools#277
Change-Id: Id2be00858df975e3ee6f8e12f7650e936d99d46b
This will allow administrators to perform a backup of the undercloud or
overcloud from the existing backup and restore role which is included
in the tripleo-anisble project.
Depends-on: https://review.opendev.org/720087
Change-Id: If25b71ae4d12208875d0fbcd9e16188a6f018f99
We need to prompt the user if we should upgrade earlier in the code so
we can handle additional things like package upgrades in the undercloud
upgrade after the prompt. This change pulls the confirmation logic out
of tripleo_deploy and reuses the prompt_user_for_confirmation code in
the tripleo upgrade and undercloud upgrade actions.
Change-Id: I8dbcae39e6f6d966c1337bad5fb5ba673f7be874
Closes-Bug: #1877825
When deploying routed networks the physical_network
attribute of ironic ports must be set, this has been
a manual task.
With this change we add configuration for the
physnet_cidr_map processing hook in ironic inspector
so that the physical_network field of ironic ports
is set automatically when introspecting nodes.
Depends-On: https://review.opendev.org/722088
Closes-Bug: #1870529
Change-Id: I7f31b9f0143507ec3c9c26efd086f0bd95ef2ce7
Rather than require the end user to manually update packages prior to
kicking off the undercloud process we can do it ourselves by
implementing a flag to skip the update and invoking the upgrade after
the packages have been updated.
Change-Id: Idda6387922adeb182afd11cb0d692d1fcceff9a8
Related-Bug: #1869776
This used to be a manual step in the tripleo process. You still have
to update python-tripleoclient and tripleo-common manually. But:
- "openstack-tripleo-heat-templates"
- "openstack-tripleo-validations"
- "tripleo-ansible"
can all be installed from this process as we spawn another new process
"openstack tripleo upgrade". Thus all those packages will be
available for it.
Note that tripleo-common should still be installed before running that
command as some of its code is used by tripleoclient.
Eventually adding version dependencies from python-tripleoclient to those
other packages (or from tht which would stay a manual step) looks
challenging as it would be hard to track which version work with which
version.
Change-Id: Ic258f314074007e7e5fd16d87448ffb7a3447fc3
Closes-Bug: #1869776
When deploying on IPv6 stateful ironic must use the
neutron network interface driver. This because we need
to configure neutron service ports (provisioning, cleaning
etc.) with multiple ip addresses for certain UEFI firmware
and chainloading combinations (iPXE -> Ironic IPA) to work.
Closes-Bug: #1864491
Change-Id: I5a9890ccb95a21b95f488cd7a5b5fd1a6cdff38b
This playbook reflects the same behaviour as the mistral workbook
of the same name and adds functionality discussed on this external
bug: https://bugzilla.redhat.com/show_bug.cgi?id=1659888
This also adds a --save-swift parameter (default false)
that makes the backup be saved on swift otherwise it will
be saved on the filesystem.
Depends-On: I309d52eb424a73bd04af167a2a7411ba3bf35674
Change-Id: I054a805e820087a30bd8d27a0b460b6e519849ac
Signed-off-by: Kevin Carter <kecarter@redhat.com>
At present chronyd runs as client and can't be used as NTP server
by the overcloud nodes. It would be good to allow the ctlplane
subnets for it to be used by the overcloud.
Change-Id: If5911de750a284ae513b343daa4886bb2f547b29
Closes-Bug: #1858096
We should do a better job indicating that there is invalid data in the
extra subnets that can be defined. This change catches exceptions that
occur when generating the inspection subnet data.
Change-Id: I175ff32ba5e5a271741349794cf28f1e58c50d6a
Closes-Bug: #1857057
This change replaces all of the ansible shell commands with the
python library, ansible-runner. This library is supported by
upstream ansible, is approved by the openstack foundation, is
supported in global requirements, and provides a better, more
programatic interface into running ansible playbooks.
All tests that interacted with the old shell commands have been
updated to now test using the library.
Change-Id: I8db50da826e2fbc074f4e7986d6fd00f6d488648
Signed-off-by: Kevin Carter <kecarter@redhat.com>
The tripleo deploy command automatically loads passwords from
tripleo-<stackname>-passwords.yaml. We have a configuration items in the
minion configuration to point at the undercloud config. We need to copy
the configure file into the correct name to ensure it gets loaded
correctly.
Change-Id: I0bbda8857473566a9ad18f20af9da8a34dd6ed0f
Closes-Bug: #1855010
When using dhcpv6-stateless a range should not be
used. According to dnsmasq manual page:
A static-only subnet with address all zeros may be
used as a "catch-all" address to enable replies to
all Information-request packets on a subnet which
is provided with stateless DHCPv6, ie
--dhcp-range=::,static
Closes-Bug: #1853334
Change-Id: I6627da48bc170f7ecccaf84c0fccda9e2edd5af3
When including fake-hardware in the undercloud.conf
enabled_hardware_types, some of the fake-hardware default interfaces
are not enabled so it can't be used.
This change allows nodes to be created with driver fake-hardware. If
this proves useful for development or some scale testing then it might
be desirable to add fake-hardware by default to the
enabled_hardware_types list.
Change-Id: I1a6b4df073b39924e6855ea865cfc856a1bdfe6b
Add option ipv6_address_mode in undercloud.conf to control
the address mode, dhcpv6-steteful or dhcpv6-steteless, for
IPv6 provisioning network.
Related-Bug: #1847606
Change-Id: I7de5f5487065d20068229e0d34102be6119fbeef
Set the ironic pxe version according to the IP version
used on the provisionin network.
Change-Id: I32049dfa892d4f4cdc03dcab2ed31a11abe99770
Closes-Bug: #1845746
Depends-On: I6384e11dd68cdbf2179545caae2c818fd1a6b23e
Set the mtu for all subnets in inspector dnsmasq
config to value of 'local_mtu' in undercloud.conf.
Closes-Bug: #1845487
Depends-On: Ic95dbf1867fb5397f1b6d8f23466910a97051cb6
Change-Id: Iafe3156ca0678f3ab3c5e688e712a9fb6b408e7b
If duplicate IPs are used in undercloud.conf it will cause
issues with haproxy.
Closes-Bug: #1832168
Change-Id: I35547080aee943438d34b2d62632795af32f8462
The disable-telemetry.yaml environment is used to disable all the
telemetry services and to disable the notification drivers. Since we
didn't have this by default, notifications were still being sent to
the undercloud rabbitmq and never consumed.
Change-Id: I53eab2c41c80f5dafff9824bf3086e1d9a369e22
Closes-Bug: #1838828
Change I4c102d8f728a90cf9eb90f6129738377a8d2503c
replaced use of the global DNSServers param, it now
uses the per-subnet DnsNameServers instead.
This is a cleanup to remove the now unused parameter.
Closes-Bug: #1834306
Depends-On: I4c102d8f728a90cf9eb90f6129738377a8d2503c
Change-Id: I6e2e728d9e749867be0a90a4e54dce7b5318994c
We were missing a mock for the ansible symlink call so it was actually
executing on the host. This fails in our package building environments
because we do not have access to sudo.
Change-Id: I6f2082c6880f313b841fc420bc362a52708b3358
Closes-Bug: #1834347
Add a new option ``dns_nameservers`` in the subnet sections
for the undercloud ctlplane network. By default the option
is not set, and in that case the ``undercloud_nameservers``
are used, maintaining the current behaviour.
This decouples the nameservers used on the undercloud and
the ones used for the overcloud nodes. In a DCN setting
different DNS server may be preferred per-site.
Related-Bug: #1834306
Change-Id: I0dc03eddf9ea00ff33cd3ae0cdc8f42a4961e89c
This was a left over from the development of the containerized
undercloud and has been deprecated for some time. Additionally it just
redirected to the undercloud install logic anyway.
Change-Id: I96709e67064c8b3347c9dfcd511ba823eb9dc370