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
participants (1)
-
no-reply@openstack.org