We are happy to announce the release of: tenks 1.0.0: Deployment of virtual bare metal clusters with Tenks This is the first release of tenks. The source is available from: https://opendev.org/openstack/tenks Download the package from: https://tarballs.openstack.org/tenks/ For more details, please see below. 1.0.0 ^^^^^ New Features ************ * Adds support for setting the libvirt connection uri via the "libvirt_local_uri" variable. See this story (https://storyboard.openstack.org/#!/story/2004344) for details. * Adds support for setting default properties on ironic nodes. This avoids an issue where nodes are registered with the standard scheduling properties all set to 1, causing ironic validation failures. See story 2004908 for details. * Adds support for setting node and volume name prefixes on a per- spec basis. This allows for different node specifications to use different names, e.g. "controller" vs "compute" * Adds support for standalone Ironic. This includes support for environments without keystone for authentication, and without a placement service. Upgrade Notes ************* * Tenks no longer installs Open vSwitch. Please use your preferred method to install Open vSwitch prior to running Tenks. Bug Fixes ********* * Fixes an issue where VMs, virtual ethernet pairs and virtual BMC state is not cleaned up on a reconfiguration. See story 2004907 for details. * Fixes an issue where deployed VMs can't be reached on a different MAC address than the one originally assigned. See story 2004906 for details. * Fixes an issue where multiple nodes could be given the same name in a multi-hypervisor scenario. Changes in tenks 80ff2d9c889b5e6de5ff7d5a3241429d2c2bcaac..1.0.0 ---------------------------------------------------------------- b783f1c Add missing ws between words c20606e Switch to Ussuri job 9c12633 Do not install Open vSwitch c7ec790 Add debugging statements to wait for resources loop f929683 Build pdf doc b27c6bc Update Python 3 test runtimes for Train 1bd25bd Fix ansible lint job 26fcfd5 Ignore traits with a COMPUTE_ prefix in wait for placement 871d3cf Use zuul checkout for stackhpc-libvirt roles d7142c0 Replace git.openstack.org URLs with opendev.org URLs aa0bda2 OpenDev Migration Patch bda7320 Ignore COMPUTE_NET_ATTACH_INTERFACE trait when waiting for placement 3e8fecd Fix Zuul galaxy install task 6e2bb04 Add playbook tags b4bddc2 Adding python 3.6 unit test 8e2f8a3 Fix ansible lint and ubuntu deployment a04f607 Support specifying deploy images via URL c58a22a Default Ironic node properties are bogus 7ad354c Use node state rather than 'cmd' dcc25d8 Configure VM interfaces in macvtap passthrough mode c5c18ce Allow setting node and volume name prefixes per-spec 9cef71f Change openstack-dev to openstack-discuss in setup.cfg 64eb9d0 Add os-client-config to requirements.txt ff3a73f Check for specific error messages in ironic version check d28635d Changes to support standalone ironic f3cc81f Support legacy drivers 1a0d953 Support ocata release of ironic 60ffdc1 Gate on kayobe overcloud deploy job a30ac7d Fix ansible-lint nits 49fb893 Changes following becoming an official project 8802ff3 Use only the first 6 characters of the node name in link names 347ee1c Fix skipping glance check if deploy images not defined 50cf161 Pass node and volume name prefixes to tenks_update_state 1e2bd2c Fail nicely if ironic port lookup fails 6a2fb44 Fix deploy and teardown without node enrolment ffcdee6 Add support for setting the libvirt connection uri d4e7e58 Wait for resources to become available 21afcc5 Add venv tox environment 4f20ed3 Add support for generating release notes b4bc89d Add a zuul job to deploy and teardown a tenks cluster 602fdfa Remove dependency on bridge-utils 154ec6c Open vSwitch service name is different between distros d697cb4 Use state: started instead of state:running 75a86cb Abstract over differerences in Open vSwitch package name 2715c36 Add an initial set of zuul jobs 71e510f Add an initial noop job to bootstrap zuul a5e1b65 Only set Ironic port attributes when changed f6bc698 Fix lint warning concerning task names 51d18cf Use extend-ignore in preference to ignore 302472a Add a .gitreview file 3437bec ip on RedHat based distros is at /usr/sbin/ip bc66151 Use /usr/bin/virsh instead of /bin/virsh 90b31af ovs-vsctl list-br requires root privileges 7ef64ff Support Debian based GNU/Linux distributions 41b6e07 Use package instead of yum 9ccf17a path of `ip` command is system dependent a23e2e2 Reorder installation steps f0adf96 Bring each end of veth pair up after creation e81eb6d Move deploy image ID finding to enrolment role de8e6bc Add boot mode configuration to to-do list 7c46f00 Add assumptions to install 9e7494a Add to-do list to development d1228ca Add more substance to README 3edc58f Add flavors and deploy images to example overrides 36c3756 Address doc review comments 5e21655 Allow deploy_kernel/ramdisk names to be specified 0bbca02 Migrate documentation to Sphinx 1f4127c Prefix volume names with node name 9619720 Add stestr config file 7c1f7aa Document console_log_enabled flag 1375df3 Add additional tox environments to Travis 61e884e Fix typo in README c0227d2 Move absent node pruning to cleanup section 56a469f Remove unnecessary test 7f2bfa8 Add additional _process_specs tests 1006415 Run coverage testing by default in tox 5e0702c Add _process_specs tests daccd02 Add coverage testing 08940e1 Save task arguments and vars in object 3fb33d8 Fix mock import for Python 2 794bffd Add basis for action plugin tests 78dfa05 Update documentation 99eaf48 Persist physnet indices in state file da15c6f Add inventory_hostname parameter to filter plugins caffd7b Add new tenks_state_update plugin a5b63d3 Add updated diagram b6b2497 Add names to set_fact tasks 8edb3ad Improve comments for override file variables 71aa379 Split deployment and teardown playbooks fd2f867 Disable automatic power-on of Libvirt nodes c14b62f Fix multiple 'when' clauses a925095 Allow teardown in Ironic enrolment ee0600f Allow teardown of Nova flavors fbd489d Rename virtualbmc-domain internal variable 9563516 Fix veth-pair role for teardown 67e8f74 Ensure physical_network.yml handles teardown 877e7eb Fix veth_pair_state typo 39bc329 Add 'teardown' action to virtualbmc-domain role 24f47ca Add 'teardown' action to veth-pair role 56b0019 Restructure playbooks for multiple commands 0b106a4 Fix Markdown title formatting 21f47fd Add documentation about override file 2789a56 Extract Ironic node extra specs dicts 94aee5d Set interfaces and properties on Ironic nodes 8d1fe82 Add defaults for all Ironic interfaces 0fdd4ec Remove 'bmc type' concept ae85a02 Add diagram update instructions 7f21b4c Copy requirements file to remote host 9b1ad58 Use become for all Open vSwitch tasks 3066438 Use full path for ip command 768af20 Move pip settings to group_vars/all af98a20 Fix upper constraints typo 8b44c71 Use round-robin scheduling instead of all-on-one 24900f4 Use basepython of 2.7 106832e Add Travis CI config file dde9b48 Add Ansible structure diagram to README 8d02c28 Add Nova flavor registration c8e4681 Use node ironic_config details during enrolment 2215cce Add bmc_type checking for virtualbmc 846baa8 Save ironic_config in node details 7421c49 Make specs, types and flavors more extensible c89a70b Remove properties from Ironic nodes cfb7c05 Move node enrolment up a level 84ef8cd Fix PEP8 and ansible-lint warnings e39d080 Split deployment into stages ed0f1be Split deploy.yml b888c3c Allow binary and decimal capacities in size string b7334f4 Use dict query instead of iteritems 0b340a1 Fix IPMI address typo 06bfdb0 Fix PEP8 issues 81f1696 Add Ironic enrolment Ansible role 8e9e91a Ensure nodes are always sorted alphabetically 7a78f86 Add additional network naming filter plugins c9ea94b Consolidate interface/link naming 32fcca4 Use loop rather than with_items e007012 Install package dependencies for virtualbmc daemon 8884d4e Use become=true for OVS bridge creation 64134ea Fix OVS detection e481b97 Fix path to playbook in README 2d214ad Extract IPMI configuration out of role 0d88c38 Move VBMCD service name into vars file 2cc0bb6 Set up VBMCD with Libvirt host setup e31a313 Check IPMI port count before creating VMs 855a2c2 Split Virtual BMC role into two 34ebd92 Refer to nodes, rather than VMs 7aeb2e9 Check existence of node types referenced in specs 7e0cc7e Fix typo in scheduling plugin b36f95a Extract Virtual BMC tasks into a role fb0a948 Move Python package vars together 1c2d1e5 Gather hypervisor facts in parallel pre-scheduling 3bd8e05 Fix veth-pair role README typos 66f5f8e Use a separate requirements file for venv packages f9638bc Use Ansible variables for relative paths e5fc211 Configure Virtual BMC c1cb7b9 Use Ansible variables for relative paths 41c3d16 Remove unused variable ef70415 Remove defaults for specs and vm_types c538a82 Remove unnecessary Pip dependency 87e4e5e Perform Libvirt host setup after Tenks host setup b2f0be9 fix Python doc typo 997f1f5 Fix Ansible lint errors a79a894 Fix PEP8 import errors 740432d Add basic package structure 9840887 Rename flavours to VM types a84e649 Add downloaded Galaxy roles to .gitignore a922430 Add header to Python files c7efb16 Use base log directory a4c21a2 Remove 'controllers' group in favour of localhost 5a04d38 Add dependency installation to README 6aa5a2f Add basis for README 56fb19d Formatting fixes 7e35255 Update Libvirt interfaces plugin for veth naming b2c348e Use more logical names for playbooks 291f800 Fix veth suffix naming scheme 30d1047 Use contextfilter decorator to simplify plugin 695d757 WIP: Libvirt VM creation 0087d22 Clean up scheduling code 4782720 Add libvirt_vm_config.py filter plugins 4c79cfa Add veth-pair role 9cbf9a5 WIP: Create Libvirt VMs 1346703 Add basis for VM scheduling to hypervisors 2a04903 Split out group_vars 72a17aa Add initial host setup Requirements updates -------------------- diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 0000000..c7393e4 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,8 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +pbr>=2.0 # Apache-2.0 +# NOTE(mgoddard): Ansible 2.8.0 breaks ansible-lint. +ansible>=2.6.0,<2.8.0 # GPLv3 +os-client-config # Apache-2.0 diff --git a/test-requirements.txt b/test-requirements.txt new file mode 100644 index 0000000..ab67516 --- /dev/null +++ b/test-requirements.txt @@ -0,0 +1,10 @@ +# The order of packages is significant, because pip processes them in the order +# of appearance. Changing the order has an impact on the overall integration +# process, which may cause wedges in the gate later. + +ansible-lint>=3.0.0 # MIT +coverage>=4.5.1 # Apache-2.0 +flake8>=3.5.0 # MIT +# Required for Python 2 +mock>=2.0.0 # BSD +stestr>=1.0.0 # Apache-2.0