We jubilantly announce the release of: bifrost 8.2.0: Deployment of physical machines using OpenStack Ironic and Ansible This release is part of the victoria release series. The source is available from: https://opendev.org/openstack/bifrost Download the package from: https://tarballs.openstack.org/bifrost/ Please report issues through: https://storyboard.openstack.org/#!/project/openstack/bifrost For more details, please see below. 8.2.0 ^^^^^ New Features ************ * It is now possible to use the "bifrost" cloud with introspection commands even in no-auth mode. * Debian Buster is now supported as a base operating system. * Configures the default deploy and rescue kernel/ramdisk, setting them in "driver_info" is now optional. * Ubuntu Focal (20.04) is now supported as a base operating system. * The values of "enabled_bios_interfaces", "enabled_boot_interfaces", "enabled_management_interfaces" and "enabled_power_interfaces" are now derived from the "enabled_hardware_types" if left empty (the default). * Adds a new parameter "internal_ip" specifying which IP address to use for nodes to reach ironic and the HTTP server, and for cross- service interactions when keystone is disabled. By default the IPv4 address of the "network_interface" is used. * The "manual-management" hardware type is now enabled by default. It can be used with hardware that does not feature a supported BMC. * The "noop" management interface can now be used out-of-box with "ipmi" and "redfish" nodes to prevent ironic from changing the boot device and order. * MetalSmith (https://docs.openstack.org/metalsmith/) is now installed by default. * A normal ironic "nodes.json" (suitable for the "baremetal create" command) is now generated when creating testing VMs. The default location is "/tmp/nodes.json". * Sets the default resource class for newly enrolled nodes without an explicit resource class. Defaults to "baremetal", can be changed via the "default_resource_class" parameter. * Fedora 30 is now supported as a base operating system. * Adds two new parameters for controlling how existing git checkouts are handled: * "update_repos" can be set to "false" to prevent the repositories from being updated. * "force_update_repos" can be set to "false" to prevent Bifrost from overwriting local changes. * Changes the default version of Ansible to version 2.9. * The new variable "use_tinyipa" (defaulting to "true") defines whether to use the pre-built tinyIPA images or production-ready CentOS images built with DIB. Upgrade Notes ************* * Explicit support for Fedora versions precedent to 30 has been removed. * Explicit support for Debian Jessie has been removed. * OpenStackClient is no longer installed when keystone is not enabled. Use the ironic native "baremetal" command instead. For example, instead of openstack baremetal node list use just baremetal node list * The shade library is no longer used, nor installed by default. * The default version of Ansible used for this release of bifrost is version 2.9. Operators may wish to upgrade if they are directly invoking playbooks or roles. * All packages are now installed in a virtual environment in "/opt/stack/bifrost" by default instead of system-wide. Deprecation Notes ***************** * The "bifrost-inspector" cloud in "clouds.yaml" is now deprecated, use the main "bifrost" cloud for all commands. * The "os_ironic_facts" module is deprecated. Please use "os_ironic_node_info" that returns information in the "node" parameter. * Support for system-wide installation of packages is deprecated, untested and may be removed in a future release. Bug Fixes ********* * Fixes installing Keystone under CentOS 8. * Fixes failure to install on systems with a local resolved by setting "disable_dnsmasq_dns" to "True" by default. * Fixes fast-track deployment after inspection/discovery by providing the correct ironic API URL to the ramdisk. * Fixes deployment in a testing environment on CentOS 8 by using firewalld instead of iptables to enable access from nodes to ironic. * An ironic-python-agent image is now updated every time the installation playbooks are run. This is done to avoid discrepancy between ironic and the ramdisk on updates. Set "update_ipa" to "false" to prevent the ramdisk update (not recommended) or "update_repos" to "false" to disable any updates. Other Notes *********** * Support for Ubuntu Xenial and Debian Stretch has been officially removed (Bifrost has been broken on them since Ussuri because of the transition to Python 3.6). Changes in bifrost 8.0.0..8.2.0 ------------------------------- 0b58a05 Do not use 'sudo pip install' when venv is used 3d2ee60 Prepare release notes for release 8.2 00ac26e Fix bifrost_venv_dir default assignment deaa4d7 Use firewalld to open ports on CentOS and RHEL. 27d8752 install-deps: install setuptools early for Debian dbb3f24 Get rid of venv_python_path f5906a9 Derive enabled hardware interfaces from enabled_hardware_types c0499c4 Consolidate the default IP address handling fa1b8ea Add openstack collection 77a5ad3 CI: clean up non-votings jobs ec72e0c Make bifrost more metalsmith-friendly 835a487 Fix fast-track deployment after discovery/inspection 188e121 Update IPA if update_repos is true (the default) ed26a19 Only install proliantutils if ilo is enabled; support idrac 2c9ede3 Migrate pip_install.yml to a new role bifrost-pip-install 99b93f4 Remove the ansible_pkg_mgr hack a78e64b Allow changing 'update' and 'force' when cloning repos a071eb9 Update ansible versions in README of the roles 9f78723 Remove the workaround for PEP517 issues 7283e3d Convert with_items to loop 1ddaf56 reno: update release versions for Ussuri and Train 12c6f71 Quick start Bifrost CLI 3fe85c5 Add an option to use pre-built DIB images 59a0185 Install packages all at once instead of looping over them 81389bc drop mock from lower-constraints 3ffa9c7 Fix bifrost_inventory.py with no nodes enrolled d5a279a bifrost-create-vm-nodes: generate a normal nodes.json 0477e45 Set default deploy/rescue kernel/ramdisk in ironic.conf a077a50 Remove empty files from the roles 23f467b Restore installing DIB-specific dependencies 9c9c014 Moving to ansible 2.9 8aa8086 Switch to using virtual envs by default b86f478 Set disable_dnsmasq_dns to True 4b2913a Documentation: minor fixes in the user guide 1dfe31d Documentation: reorder the contributors guide 7e363d4 Drop hard requirement on debootstrap and EPEL c9866a0 Enable manual-management and the noop management interface 8593f23 Install uWSGI from PyPI to repair CentOS 8 support 6f44cd8 Stop supporting non-systemd systems 8b43bf0 Get rid of the shade dependency 95e78f1 Install metalsmith by default 85e1b82 CI: reduce memory and disk for testing nodes e35293b Support Ubuntu Focal (20.04) 979bcae Remove support for Ubuntu Xenial and Debian Stretch ccdfa1d Support Debian Buster and add CI jobs for it 7a7022b [Trivial] Correct a typo in the docs 3532919 Avoid running functional jobs for api-ref changes ccfe458 Follow up on add Fedora 30 support d8e8297 Add Fedora 30 based job d8ff9ff CI: move the libvirt storage pool to /opt 5182388 Fix pip3 path d75a07c Fix check packages command 2be8ee6 Fix detection of mkisofs bb807b2 Correct handling enable_venv in pip_install.yml d804de8 Remove explicit support for EOL Fedora versions and Debian Jessie a381b0f install-deps: use system pip and bindep for installing dependencies 08b5bd7 Deprecate a separate bifrost-inspector cloud 0b7fd20 Stop installing openstackclient if keystone is not enabled 8b7a41e Make the keystone job voting and re-enable commented out jobs 28eb779 Fix pygments style c1c360c Update docs references for CentOS 8 cc415e5 Install python3-pip system package 5d126e3 Switch to newer openstackdocstheme and reno versions 50132a8 Remove .testr.conf 327cc85 Remove the unused coding style modules 62ccb03 Remove translation sections from setup.cfg 999e1bb Update lower-constraints.txt ceb5a49 Add py38 package metadata 80022d9 No need to import print from future anymore f1cbedd Add Python3 victoria unit tests ad48cad Update master for stable/ussuri 556ce37 Upgrade flake8-import-order version to 0.17.1 Diffstat (except docs and test files) ------------------------------------- .gitignore | 4 + .testr.conf | 7 - ansible-collection-requirements.yml | 4 + babel.cfg | 2 - bifrost-cli | 13 ++ bifrost/__init__.py | 10 +- bifrost/cli.py | 240 +++++++++++++++++++++ bifrost/inventory.py | 56 ++--- bindep.txt | 4 + lower-constraints.txt | 30 +-- playbooks/ci/run.yaml | 4 +- playbooks/example-deploy-all-available-nodes.yaml | 8 +- playbooks/library/os_ironic_facts.py | 148 +------------ playbooks/library/os_ironic_node_info.py | 178 +++++++++++++++ playbooks/redeploy-dynamic.yaml | 15 +- .../bifrost-configdrives-dynamic/handlers/main.yml | 2 - .../bifrost-configdrives-dynamic/meta/main.yml | 6 +- .../bifrost-configdrives-dynamic/tasks/main.yml | 24 +-- .../tasks/update_facts_from_ironic.yaml | 3 +- .../roles/bifrost-create-bootable-image/README.md | 2 +- playbooks/roles/bifrost-create-dib-image/README.md | 4 +- .../bifrost-create-dib-image/defaults/main.yml | 4 +- .../roles/bifrost-create-dib-image/meta/main.yml | 6 +- .../roles/bifrost-create-dib-image/tasks/main.yml | 16 +- .../bifrost-create-vm-nodes/defaults/main.yml | 7 +- .../defaults/required_defaults_Debian.yml | 4 +- .../defaults/required_defaults_Debian_jessie.yml | 2 - .../defaults/required_defaults_Ubuntu_20.04.yml | 14 ++ .../bifrost-create-vm-nodes/handlers/main.yml | 2 - .../roles/bifrost-create-vm-nodes/meta/main.yml | 6 +- .../bifrost-create-vm-nodes/tasks/create_vm.yml | 15 ++ .../roles/bifrost-create-vm-nodes/tasks/main.yml | 46 ++-- .../tasks/prepare_libvirt.yml | 32 +-- .../roles/bifrost-create-vm-nodes/vars/main.yml | 2 - .../bifrost-deploy-nodes-dynamic/defaults/main.yml | 1 + .../bifrost-deploy-nodes-dynamic/handlers/main.yml | 2 - .../bifrost-deploy-nodes-dynamic/meta/main.yml | 6 +- .../bifrost-deploy-nodes-dynamic/tasks/main.yml | 6 +- .../bifrost-deploy-nodes-dynamic/vars/main.yml | 2 - playbooks/roles/bifrost-ironic-install/README.md | 21 +- .../roles/bifrost-ironic-install/defaults/main.yml | 51 +++-- .../defaults/required_defaults_Debian_family.yml | 5 +- .../defaults/required_defaults_Debian_jessie.yml | 37 ---- ..._Fedora_26.yml => required_defaults_Fedora.yml} | 41 ++-- .../defaults/required_defaults_Fedora_22.yml | 5 - .../defaults/required_defaults_Fedora_25.yml | 42 ---- .../defaults/required_defaults_Fedora_27.yml | 43 ---- .../defaults/required_defaults_RedHat_family.yml | 5 +- .../defaults/required_defaults_Suse_family.yml | 3 - ...untu_16.04.yml => required_defaults_Ubuntu.yml} | 5 +- .../defaults/required_defaults_Ubuntu_18.04.yml | 36 ---- .../bifrost-ironic-install/tasks/bootstrap.yml | 62 ++++-- .../tasks/create_tftpboot.yml | 2 +- .../tasks/download_ipa_image.yml | 27 +-- .../bifrost-ironic-install/tasks/get_ipxe.yml | 9 +- .../bifrost-ironic-install/tasks/hw_types.yml | 45 ++++ .../tasks/inspector_bootstrap.yml | 27 ++- .../tasks/inspector_install.yml | 30 +-- .../roles/bifrost-ironic-install/tasks/install.yml | 167 +++++++------- .../bifrost-ironic-install/tasks/ironic_config.yml | 6 +- .../tasks/keystone_setup.yml | 28 +-- .../tasks/keystone_setup_inspector.yml | 20 +- .../bifrost-ironic-install/tasks/pip_install.yml | 81 ------- .../tasks/staging_install.yml | 13 +- .../roles/bifrost-ironic-install/tasks/start.yml | 7 +- .../bifrost-ironic-install/tasks/vendor_deps.yml | 26 +++ .../templates/dnsmasq.conf.j2 | 4 +- .../templates/inspector-default-boot-ipxe.j2 | 2 +- .../templates/ironic.conf.j2 | 16 +- .../templates/systemd_template.j2 | 2 +- .../templates/clouds.yaml.j2 | 5 +- .../bifrost-keystone-install/defaults/main.yml | 8 +- .../defaults/required_defaults_Debian_family.yml | 8 +- .../defaults/required_defaults_Debian_jessie.yml | 19 -- .../defaults/required_defaults_Fedora_22.yml | 5 - .../defaults/required_defaults_RedHat_family.yml | 6 +- .../defaults/required_defaults_Suse_family.yml | 5 +- ...untu_18.04.yml => required_defaults_Ubuntu.yml} | 6 - .../defaults/required_defaults_Ubuntu_16.04.yml | 19 -- .../files/keystone_policy.te | 11 + .../roles/bifrost-keystone-install/meta/main.yml | 8 +- .../bifrost-keystone-install/tasks/bootstrap.yml | 36 +++- .../bifrost-keystone-install/tasks/install.yml | 105 +++------ .../bifrost-keystone-install/tasks/pip_install.yml | 78 ------- .../roles/bifrost-keystone-install/tasks/start.yml | 3 +- .../templates/systemd_template.j2 | 2 +- .../roles/bifrost-openstack-ci-prep/README.md | 5 +- .../roles/bifrost-openstack-ci-prep/vars/main.yml | 2 - playbooks/roles/bifrost-pip-install/README.md | 32 +++ .../roles/bifrost-pip-install/defaults/main.yml | 17 ++ playbooks/roles/bifrost-pip-install/tasks/main.yml | 78 +++++++ playbooks/roles/bifrost-prep-for-install/README.md | 10 +- .../bifrost-prep-for-install/defaults/main.yml | 11 +- .../roles/bifrost-prep-for-install/tasks/main.yml | 8 +- .../handlers/main.yml | 2 - .../tasks/main.yml | 2 +- .../bifrost-prepare-for-test-dynamic/vars/main.yml | 2 - playbooks/roles/bifrost-rabbitmq/tasks/main.yml | 4 +- .../roles/bifrost-test-dhcp/defaults/main.yml | 2 - .../roles/bifrost-test-dhcp/files/test-dhcp.py | 1 - .../roles/bifrost-test-dhcp/handlers/main.yml | 3 - playbooks/roles/bifrost-test-dhcp/vars/main.yml | 2 - .../bifrost-test-inspection/defaults/main.yml | 2 - .../bifrost-test-inspection/handlers/main.yml | 2 - .../roles/bifrost-test-inspection/tasks/main.yml | 4 +- .../roles/bifrost-test-inspection/vars/main.yml | 2 - playbooks/roles/bifrost-test-vm/defaults/main.yml | 2 - playbooks/roles/bifrost-test-vm/handlers/main.yml | 2 - playbooks/roles/bifrost-test-vm/vars/main.yml | 2 - .../handlers/main.yml | 2 - .../bifrost-unprovision-node-dynamic/vars/main.yml | 2 - .../roles/ironic-delete-dynamic/handlers/main.yml | 2 - .../roles/ironic-delete-dynamic/vars/main.yml | 2 - playbooks/roles/ironic-enroll-dynamic/README.md | 4 +- .../roles/ironic-enroll-dynamic/handlers/main.yml | 2 - .../roles/ironic-enroll-dynamic/tasks/main.yml | 5 +- .../roles/ironic-enroll-dynamic/vars/main.yml | 2 - playbooks/roles/ironic-inspect-node/README.md | 4 +- .../roles/ironic-inspect-node/handlers/main.yml | 2 - playbooks/roles/ironic-inspect-node/vars/main.yml | 2 - playbooks/roles/venv_python_path/tasks/main.yml | 33 --- playbooks/test-bifrost.yaml | 11 +- .../ancient-fedora-jessie-773ba251b28f4a94.yaml | 6 + .../notes/bifrost-inspector-a154561802d8d614.yaml | 9 + .../notes/centos-keystone-acad21e70153067d.yaml | 4 + .../notes/debian-buster-dd7cfde9908deb09.yaml | 4 + .../notes/default-ipa-fe012dfdba580bf4.yaml | 5 + .../disable_dnsmasq_dns-0d545cdaa81b92a2.yaml | 5 + .../fast-track-inspection-a28a062e86f06190.yaml | 5 + releasenotes/notes/firewalld-d53c6396828b91ee.yaml | 5 + releasenotes/notes/focal-36208207a571f354.yaml | 4 + releasenotes/notes/hw-types-17106c0397f34ef1.yaml | 6 + .../notes/internal-address-c1f9ffb731373ea3.yaml | 7 + .../notes/manual-management-c204a200b0f0e6e0.yaml | 9 + .../notes/metalsmith-7044429597a5f137.yaml | 5 + releasenotes/notes/no-osc-b39d14591103b2c3.yaml | 15 ++ releasenotes/notes/no-shade-b861f699b8a9919f.yaml | 8 + releasenotes/notes/no-xenial-1c27b7bb2cf165ed.yaml | 6 + .../notes/nodes.json-d47a30a22a04c7ed.yaml | 6 + .../notes/resource-class-243535c9049cbd73.yaml | 6 + .../notes/support-fedora-3b14bffb24097b28.yaml | 4 + .../notes/update-ipa-76691dbca92246b6.yaml | 8 + .../notes/update-repos-b60563ee51b574fc.yaml | 10 + ...pdate_default_ansible_2.9-e96335c0ef609642.yaml | 9 + .../notes/use-tinyipa-31f5343def1c0bf4.yaml | 6 + .../notes/venv-default-895f7b633803297f.yaml | 9 + releasenotes/source/conf.py | 12 +- releasenotes/source/index.rst | 1 + releasenotes/source/train.rst | 2 +- releasenotes/source/ussuri.rst | 6 + scripts/collect-test-info.sh | 4 +- scripts/env-setup.sh | 26 ++- scripts/install-deps.sh | 133 ++++-------- scripts/split_json.py | 2 - scripts/test-bifrost.sh | 113 ++++------ setup.cfg | 15 +- test-requirements.txt | 3 + tox.ini | 3 + zuul.d/bifrost-jobs.yaml | 46 ++-- zuul.d/project.yaml | 26 ++- 176 files changed, 1689 insertions(+), 1546 deletions(-) Requirements updates -------------------- diff --git a/test-requirements.txt b/test-requirements.txt index 64ddfa3..08571a1 100644 --- a/test-requirements.txt +++ b/test-requirements.txt @@ -15,0 +16,3 @@ Pygments>=2.2.0 # BSD license +flake8-import-order>=0.17.1 # LGPLv3 + +openstacksdk>=0.37.0 # Apache-2.0
participants (1)
-
no-reply@openstack.org