[release-announce] python-tripleoclient 18.0.0

no-reply at openstack.org no-reply at openstack.org
Tue Apr 12 16:48:41 UTC 2022


We exuberantly announce the release of:

python-tripleoclient 18.0.0: TripleO client

The source is available from:

    https://opendev.org/openstack/python-tripleoclient

Download the package from:

    https://tarballs.openstack.org/python-tripleoclient/

For more details, please see below.

18.0.0
^^^^^^


New Features
************

* Expose the existing --reproduce-command from *openstack tripleo
  deploy* CLI in the Undercloud CLI commnads. A new CLI option
  --reproduce-command is available for the *openstack undercloud
  install* and *openstack undercloud upgrade* commands, which creates
  an script, named ansible-playbook-command.sh, in the Undercloud's
  deployment artifacts directory. This script allows running the
  Ansible playbooks for deployment or upgrade in the same way the CLI
  command does.

* The Admin Authorize command can now be targeted at specific nodes
  using '--limit'. It can also take a custom static-inventory using '
  --static-inventory'.

* A new option --daemons for the "openstack overcloud ceph deploy"
  command has been added. This option may be used to define additional
  Ceph daemons that should be deployed at this stage. For instance, a
  generic Ceph daemons definition can be something like the following:

     ---
     ceph_nfs:
       cephfs_data: 'manila_data'
       cephfs_metadata: 'manila_metadata'
     ceph_rgw: {}
     ceph_ingress:
       tripleo_cephadm_haproxy_container_image: undercloud.ctlplane.mydomain.tld:8787/ceph/haproxy:2.3
       tripleo_cephadm_keepalived_container_image: undercloud.ctlplane.mydomain.tld:8787/ceph/keepalived:2.5.1

  For each service added to the data structure above, additional
  options can be defined and passed as extra_vars to the tripleo-
  ansible flow. If no option is specified, the default values provided
  by the cephadm tripleo-ansible role will be used.

* Two new commands, "openstack overcloud ceph user enable" and
  "openstack overcloud ceph user disable" are added. The "enable"
  option will create the cephadm SSH user and distribute their SSH
  keys to Ceph nodes in the overcloud. The "disable" option may be run
  after "openstack overcloud ceph deploy" has been run to disable
  cephadm so that it may not be used to administer the Ceph cluster
  and no "ceph orch ..." CLI commands will function. This will also
  prevent Ceph node overcloud scale operations though the Ceph cluster
  will still be able to read/write data. The "ceph user disable"
  option will also remove the public and private SSH keys of the
  cephadm SSH user on overclouds which host Ceph. The "ceph user
  enable" option may also be used to re-distribute the public and
  private SSH keys of the cephadm SSH user and re-enable the cephadm
  mgr module.

* A new option --ceph-vip for the "openstack overcloud ceph deploy"
  command has been added. This option may be used to reserve VIP(s)
  for each Ceph service specified by the 'service/network' mapping
  defined as input. For instance, a generic ceph service mapping can
  be something like the following:

     ---
     ceph_services:
       - service: ceph_nfs
         network: storage_cloud_0
       - service: ceph_rgw
         network: storage_cloud_0

  For each service added to the list above, a virtual IP on the
  specified network is created to be used as frontend_vip of the
  ingress daemon. When no subnet is specified, a default
  *<network>_subnet* pattern is used. If the subnet does not follow
  the *<network>_subnet* pattern, a subnet for the VIP may be
  specified per service:

     ---
     ceph_services:
       - service: ceph_nfs
         network: storage_cloud_0
       - service: ceph_rgw
         network: storage_cloud_0
         subnet: storage_leafX

  When the *subnet* parameter is provided, it will be used by the
  ansible module, otherwise the default pattern is followed. This
  feature also supports the fixed_ips mode. When fixed_ip(s) are
  defined, the module is able to use that input to reserve the VIP on
  that network. A valid input can be something like the following:

     ---
     fixed: true
     ceph_services:
       - service: ceph_nfs
         network: storage_cloud_0
         ip_address: 172.16.11.159
       - service: ceph_rgw
         network: storage_cloud_0
         ip_address: 172.16.11.160

  When the boolean fixed is set to True, the subnet pattern is
  ignored, and a sanity check on the user input is performed, looking
  for the ip_address keys associated to the specified services. If the
  *fixed* keyword is missing, the subnet pattern is followed.

* New command "openstack overcloud ceph spec" has been added. This
  command may be used to create a cephadm spec file as a function of
  the output of metalsmith and a TripleO roles file. For example, if
  metalsmith output a file with multiple hosts of differing roles and
  each role contained various Ceph services, then a cephadm spec file
  could parse these files and return input compatible with cephadm.
  The ceph spec file may be then be passed to "openstack overcloud
  ceph deploy" so that cephadm deploys only those Ceph services on
  those hosts. This feature should save users from the need to create
  two different files containing much of the same data and make it
  easier and less error prone to include Ceph in a deployment without
  the need to manually create the Ceph spec file.

* The cli arguments that control what parts of the deployment to
  execute have been refactored to better align with the user expected
  intention, --stack-only: create the stack, download the config. no
  overcloud node changes --setup-only: ssh admin authorization setup.
  --config-download-only: run config-download playbook(s) to configure
  the overcloud.


Upgrade Notes
*************

* Removed *overcloud container image upload*, *overcloud container
  image build*, *overcloud container image prepare* and *overcloud
  container image tag* commands as the *tripleo container* command
  replaced those in Train and they no longer work.


Deprecation Notes
*****************

* Ephemeral heat is now used as default for overcloud deployment and
  assumes the nodes are pre-provisioned using metalsmith. Deprecates
  existing "--deployed-server" option and adds an additional option "
  --provision-nodes" for using installed heat and provisioning nodes
  with heat.

* The commands "openstack overcloud profiles list" and "openstack
  overcloud profiles match" has been deprecated for removal. Since the
  Compute service is no longer used on the undercloud, the flavors
  based scheduling is not used.


Bug Fixes
*********

* Fixes Admin Authorize to work with Ephemeral Heat.

* Fixes incorrect handling of root device hints when Software RAID
  is in use with Ironic. Users may re-introspect and an automatic root
  device hint would be added, which is incorrect and can lead to a
  failed deployment due to Software RAID (MD) device names being
  inconsistent across reboot from being configured to utilized. Ironic
  ultimately understands these devices and should choose the correct
  device by default if present. We now log an Warning and do not
  insert a potentially incorrect root device hint. Operators using a
  complex set of disks may still need to explicitly set a root device
  hint should their operational state require it.


Other Notes
***********

* Stack outputs that are needed by other functionality of the
  overcloud deployment are now saved in the stack working directory in
  an outputs subdirectory (default ~/overcloud-
  deploy/<stack>/outputs).

Changes in python-tripleoclient 17.1.0..18.0.0
----------------------------------------------

6bdf6f3f Stop configuring install_command in tox.
c42ee300 Setting default inventory path for VF interface with ooo client.
299a40da Support passing arbitrary cephadm arguments at bootstrap
80c43280 Overcloud export with ephemeral Heat
719a26aa bnr - Set properly the default inventory file
4458dc93 Add missing hostname package to bindep
88864174 Make --osd-spec and --crush-hierarchy not mutually exclusive
66718d3a Fix positional timeout arg
ec411b93 Build standalone ceph_spec with Ansible
b682efb9 Move _configure_logging to base Command class
0c488165 Improve tripleo-validations hook in undercloud preflight
34b4d6bf Add --yes to overcloud node provision for output file overwrite
2bfb6f2b Add AuthCloudName to export data
0f787980 Add --daemons option to deployed ceph
5a3b62ce Handle port unprovision for pre-provisioned nodes
6698a170 Mark Python 3.9 as supported runtime
8b70b793 Replace reproducer argument for consistency.
53c47168 Add option to bootstrap cephadm without --image
7ede6055 Fix UX UserWarning notification
348437df Add --reproduce-command option into Undercloud commands.
28b4248d Add Python 3.8 to supported runtime
3aae1ea8 Support Deployed Ceph container push_destination
d48cb255 Move zuul jobs layout to centos9 only for master branch
74b15f79 Undercloud: Remove redundant environment file
196cba03 Add --single-host-defaults to 'openstack overcloud ceph deploy'
88ec87ca Add --standalone to overcloud ceph user and deploy
f911410b Introduce tripleo --ceph-vip to deployed Ceph
a3c8ecf3 Deprecate and unwire enable_nova UC option
1c3d2903 Log deprecation of enable_heat option.
482b0acd Deprecate 'overcloud profiles' commands
134270f2 Move baremetal configure commands from Ansible
4a6df279 Adding --repo-dir argument
295cffef Allow package install to be skipped for image build
1437fd07 Move baremetal clean commands from Ansible
3701f2ac Introduce "openstack overcloud ceph spec"
4ce46dca Exposes the community validation init command
51695e28 Guard against NoneType
bd9bf85c Fix ironic command references
f7888d00 Abort root device detection if an MD device is found
3ac32b59 Move baremetal provide commands from Ansible
79fa6fbe Handle missing ipv6 boolean in network_data.yaml for Ceph
84055814 Make deployed ceph baremetal file optional
6e0f514c Fix deploy templates arg validation
2ac39534 Add --mon-ip option to deployed ceph
b9b9dbd7 Don't run playbooks if role count == 0
f8ee2464 Don't assume json network config in validations
8ab4cc19 Add the ability to enable/disable cephadm SSH user
f41c3dbe Remove additional patching to use gitpython with eventlet
3e7f4845 Check old passwords file path during uc validation
59eae4b3 overcloud node extract provisioned - fixed_ips
c32a24db Use Python3 yoga unit tests
ddfd6d99 Don't set 'subnet' for ctlplane in node extract
02b67f8e Use netaddr when comparing local_ip for changes
538261ee Fix ports cleanup on node unprovision
723bf34c Write clouds.yaml/heatrc for tripleo launch heat
f1fd9d09 Use 127.0.0.1 for ephemeral Heat server instead of ctlplane ip
0b90f0dc Skip Heat pod container image pull for default ephemeral heat images
f4964907 Pass crush hierarchy data as extra_var
7d3c412e Set Ceph ms_bind options for IPv6
8552b8eb Test coverage for the overcloud_cell submodule
9ad9323b node extract provisioned - use network_config_update
149099c1 Support custom network names with deployed ceph
f321bb46 Removed overcloud container commands
6b289250 Make inventory file writable
fa0b7546 Replace deprecated assertEquals
43af68d4 bnr - overcloud restore - Handle correctly the ~ on the path
5e7ac07e Replace deprecated assertRaisesRegexp
9fd913f5 Ensure we're using the stackname for the inventory
f797e15d Make --deployed-server the default
61744a6c Replace deprecated params in prepare
b670a784 Integrating restoration process to client
8ff88f4d Add additional saved stack outputs
1cd6f282 Refactor --stack-only, --setup-only, --config-download-only
276a6def Save needed stack outputs in working_dir
cc10ee4d Inspection - console to tty0 and ttyS0
a2b6a9ad Fix overcloud admin authorize
437c064e Remove cyclic import
e05b6083 UC/Standalone - Set ip_version in DeployedServerPortMap
35e3278f Drop validate_playbook method from ProvisionNode
881321dd Fix usage of collections.abc
dc26adb0 bnr CLI enable the conf. of ReaR with ironic on nodes
7b290d41 Fix the validations_log_basedir overriding
62a0553e Remove no longer used scale lib
19672ed3 Remove update converge
5084da81 Use unittest.mock instead of third party mock
c3062ebe Remove --skip-nodes-and-networks
8c457093 Add swap files to .gitignore
87dbe9f6 Fix node scaling for Ephemeral Heat


Diffstat (except docs and test files)
-------------------------------------

.gitignore                                         |   5 +
bindep.txt                                         |   1 +
.../add-uc-reproduce-command-65daa4386142fcd1.yaml |  10 +
..._args_for_admin_authorize-2fe6945515dd34a7.yaml |   9 +
.../notes/ceph_daemon_option-47a75a2c8b5ce5bb.yaml |  22 +
...ser_disable_and_re_enable-18f3102031a802d0.yaml |  17 +
.../ceph_vip_provisioning-dcac72d62c70c57c.yaml    |  50 ++
.../deployed_server_default-0c2267c7588056fc.yaml  |   7 +
...recate-overcloud-profiles-0bc0a368775844ad.yaml |   8 +
.../overcloud_ceph_spec-e1cfd358c4db2b22.yaml      |  14 +
.../refactor-only-cli-args-cb70ed8ba8b166a9.yaml   |  10 +
...md-device-for-root-device-8ad0c1e85292ca0a.yaml |  13 +
...rcloud-container-commands-fe7185ee87aeda3a.yaml |   7 +
.../notes/save-stack-outputs-61c2ad9528ae2529.yaml |   5 +
requirements.txt                                   |   4 +-
setup.cfg                                          |  12 +-
test-requirements.txt                              |   3 +-
tox.ini                                            |   1 -
tripleoclient/command.py                           |  11 +
tripleoclient/config/standalone.py                 |   7 +
tripleoclient/constants.py                         |  14 +-
tripleoclient/exceptions.py                        |  11 +-
tripleoclient/export.py                            |  10 +
tripleoclient/heat_launcher.py                     |  17 +-
.../v1/overcloud_config/test_overcloud_config.py   |   2 +-
.../v1/overcloud_deploy/test_overcloud_deploy.py   |  51 +-
.../test_overcloud_external_update.py              |   2 +-
.../test_overcloud_external_upgrade.py             |   2 +-
.../v1/overcloud_image/test_overcloud_image.py     |   2 +-
.../test_overcloud_netenv_validate.py              |   2 +-
.../v1/overcloud_roles/test_overcloud_roles.py     |   2 +-
.../v1/overcloud_update/test_overcloud_update.py   |  59 +-
.../v1/overcloud_upgrade/test_overcloud_upgrade.py |   4 +-
.../test_tripleo_container_image.py                |  32 +-
.../v2/overcloud_delete/test_overcloud_delete.py   |   9 +-
.../v2/overcloud_network/test_overcloud_network.py |   2 +-
.../v2/overcloud_support/test_overcloud_support.py |   2 +-
tripleoclient/utils.py                             | 339 ++++++++-
tripleoclient/v1/container_image.py                | 501 -------------
tripleoclient/v1/overcloud_admin.py                |  67 +-
tripleoclient/v1/overcloud_backup.py               |  32 +-
tripleoclient/v1/overcloud_deploy.py               | 356 ++++-----
tripleoclient/v1/overcloud_export.py               |  30 +-
tripleoclient/v1/overcloud_external_update.py      |   5 +-
tripleoclient/v1/overcloud_external_upgrade.py     |   5 +-
tripleoclient/v1/overcloud_image.py                |  10 +-
tripleoclient/v1/overcloud_node.py                 | 143 ++--
tripleoclient/v1/overcloud_profiles.py             |  10 +
tripleoclient/v1/overcloud_restore.py              | 159 ++++
tripleoclient/v1/overcloud_update.py               |  54 +-
tripleoclient/v1/overcloud_upgrade.py              |   9 +-
tripleoclient/v1/tripleo_deploy.py                 |   9 +-
tripleoclient/v1/tripleo_launch_heat.py            |  16 +-
tripleoclient/v1/tripleo_validator.py              |  30 +-
tripleoclient/v1/undercloud.py                     |   9 +
tripleoclient/v1/undercloud_backup.py              |   6 +-
tripleoclient/v1/undercloud_config.py              |  25 +-
tripleoclient/v1/undercloud_preflight.py           |  44 +-
tripleoclient/v2/overcloud_ceph.py                 | 800 ++++++++++++++++++++-
tripleoclient/v2/overcloud_delete.py               |   2 +-
tripleoclient/v2/overcloud_node.py                 |  81 ++-
tripleoclient/v2/tripleo_container_image.py        |  17 +-
tripleoclient/workflows/baremetal.py               | 216 +-----
tripleoclient/workflows/deployment.py              |  77 +-
tripleoclient/workflows/roles.py                   |  12 +-
tripleoclient/workflows/scale.py                   | 231 ------
tripleoclient/workflows/tripleo_baremetal.py       | 526 ++++++++++++++
zuul.d/layout.yaml                                 |   8 +-
105 files changed, 4615 insertions(+), 2662 deletions(-)


Requirements updates
--------------------

diff --git a/requirements.txt b/requirements.txt
index 7299c5bd..8befe347 100644
--- a/requirements.txt
+++ b/requirements.txt
@@ -14 +14 @@ osc-lib>=2.3.0 # Apache-2.0
-tripleo-common>=16.0.0 # Apache-2.0
+tripleo-common>=16.3.0 # Apache-2.0
@@ -17 +17 @@ ansible-runner>=1.4.5 # Apache 2.0
-validations-libs>=1.2.0 # Apache-2.0
+validations-libs>=1.5.0 # Apache-2.0
diff --git a/test-requirements.txt b/test-requirements.txt
index ecce57ad..f33be701 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -7 +6,0 @@ fixtures>=3.0.0 # Apache-2.0/BSD
-mock>=3.0.0 # BSD
@@ -12 +11 @@ testscenarios>=0.4  # Apache-2.0/BSD
-validations-libs>=1.0.4 # Apache-2.0
\ No newline at end of file
+validations-libs>=1.5.0 # Apache-2.0






More information about the Release-announce mailing list