[openstack-announce] [new][openstackansible] openstack-ansible-os_swift 14.0.0 release (newton)

no-reply at openstack.org no-reply at openstack.org
Thu Oct 20 18:28:44 UTC 2016


We are satisfied to announce the release of:

openstack-ansible-os_swift 14.0.0: os_swift for OpenStack Ansible

This release is part of the newton release series.

Download the package from:

    https://tarballs.openstack.org/openstack-ansible-os_swift/

For more details, please see below.

14.0.0
^^^^^^


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

* The os_swift role now supports the ability to configure whether
  apt/yum tasks install the latest available package, or just ensure
  that the package is present. The default action is to ensure that
  the latest package is present. The action taken may be changed to
  only ensure that the package is present by setting
  "swift_package_state" to "present".

* The "fallocate_reserve` option can now be set (in bytes or as a
  percentage) for swift by using the ``swift_fallocate_reserve"
  variable in "/etc/openstack_deploy/user_variables.yml". This value
  is the amount of space to reserve on a disk to prevent a situation
  where swift is unable to remove objects due to a lack of available
  disk space to work with. The default value is 1% of the total disk
  size.

* The "openstack-ansible-os_swift" role will now prevent deployers
  from changing the "swift_hash_path_prefix" and
  "swift_hash_path_suffix" variables on clusters that already have a
  value set in "/etc/swift/swift.conf". You can set the new
  "swift_force_change_hashes" variable to "True" to force the
  "swift_hash_path_" variables to be changed. We recommend setting
  this by running the os-swift.yml playbook with "-e
  swift_force_change_hashes=True", to avoid changing the
  "swift_hash_path_" variables unintentionally. Use with caution,
  changing the "swift_hash_path_" values causes end-user impact.

* The "os_swift" role has 3 new variables that will allow a deployer
  to change the hard, soft and fs.file-max limits. the hard and soft
  limits are being added to the limits.conf file for the swift system
  user. The fs.file-max settings are added to storage hosts via kernel
  tuning. The new options are "swift_hard_open_file_limits" with a
  default of 10240 "swift_soft_open_file_limits" with a default of
  4096 "swift_max_file_limits" with a default of 24 times the value of
  "swift_hard_open_file_limits".

* The "pretend_min_part_hours_passed" option can now be passed to
  swift-ring-builder prior to performing a rebalance. This is set by
  the "swift_pretend_min_part_hours_passed" boolean variable. The
  default for this variable is False. We recommend setting this by
  running the os-swift.yml playbook with "-e
  swift_pretend_min_part_hours_passed=True", to avoid resetting
  "min_part_hours" unintentionally on every run. Setting
  "swift_pretend_min_part_hours_passed" to True will reset the clock
  on the last time a rebalance happened, thus circumventing the
  min_part_hours check. This should only be used with extreme caution.
  If you run this command and deploy rebalanced rings before a
  replication pass completes, you may introduce unavailability in your
  cluster. This has an end-user imapct.

* While default python interpreter for swift is cpython, pypy is now
  an option. This change adds the ability to greatly improve swift
  performance without the core code modifications. These changes have
  been implemented using the documentation provided by Intel and
  Swiftstack. Notes about the performance increase can be seen here
  (https://software.intel.com/en-us/blogs/2016/05/06/doubling-the-
  performance-of-openstack-swift-with-no-code-changes).

* Change the port for devices in the ring by adjusting the port
  value for services, hosts, or devices. This will not involve a
  rebalance of the ring.

* Changing the port for a device, or group of devices, carries a
  brief period of downtime to the swift storage services for those
  devices. The devices will be unavailable during period between when
  the storage service restarts after the port update, and the ring
  updates to match the new port.

* Enable rsync module per object server drive by setting the
  "swift_rsync_module_per_drive" setting to "True". Set this to
  configure rsync and swift to utilise individual configuration per
  drive. This is required when disabling rsyncs to individual disks.
  For example, in a disk full scenario.

* The "os_swift" role will now include the swift "staticweb"
  middleware by default.

* The os_swift role now allows the permissions for the log files
  created by the swift account, container and object servers to be
  set. The variable is "swift_syslog_log_perms" and is set to "0644"
  by default.


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

* Installation of swift and its dependent pip packages will now only
  occur within a Python virtual environment. The "swift_venv_enabled",
  "swift_venv_bin" variables have been removed.

* The variable "swift_apt_packages" has been renamed to
  "swift_distro_packages".

* The os_swift role always checks whether the latest package is
  installed when executed. If a deployer wishes to change the check to
  only validate the presence of the package, the option
  "swift_package_state" should be set to "present".

* The "swift_fallocate_reserve" default value has changed from
  10737418240 (10GB) to 1% in order to match the OpenStack swift
  default setting.

* A new option *swift_pypy_enabled* has been added to enable or
  disable the pypy interpreter for swift. The default is "false".

* A new option *swift_pypy_archive* has been added to allow a pre-
  built pypy archive to be downloaded and moved into place to support
  swift running under pypy. This option is a dictionary and contains
  the URL and SHA256 as keys.

* The "swift_max_rsync_connections" default value has changed from 2
  to 4 in order to match the OpenStack swift documented value.

* When upgrading a Swift deployment from Mitaka to Newton it should
  be noted that the enabled middleware list has changed. In Newton the
  "staticweb" middleware will be loaded by default. While the change
  adds a feature it is non-disruptive in upgrades.


Bug Fixes
*********

* Previously, the "ansible_managed" var was being used to insert a
  header into the "swift.conf" that contained date/time information.
  This meant that swift.conf across different nodes did not have the
  same MD5SUM, causing "swift-recon --md5" to break. We now insert a
  piece of static text instead to resolve this issue.

* The XFS filesystem is excluded from the daily mlocate crond job in
  order to conserve disk IO for large IOPS bursts due to
  updatedb/mlocate file indexing.

Changes in openstack-ansible-os_swift 13.0.0..14.0.0
----------------------------------------------------

0e7a7a3 Always setup ResellerAdmin role in keystone
9c7c821 Use dictionary for service mappings
0acc370 Update tox.ini tests target for stable/newton
c7c2b44 Update ansible-role-requirements to stable/newton
3893207 Update default git branch to stable/newton
27e8a5c Test address setting code paths
c3e89df Use centralised test scripts
097eefb Update UPPER_CONSTRAINTS_FILE for stable/newton
bc551d3 Update .gitreview for stable/newton
2a3b184 Fix bool evaluation for dedicated repl network
ba28ffd Fix variable for replicator config options
768b47a Force Ansible to use dynamic includes
a894972 Type min_part_hours,part_power,repl_number as int
9578aa5 Ensure storage/replication_ip are uniform
df4d7ec Simplify networking for MR swift
2257044 Use openstack-ansible-tests repository for Swift
98cb749 Store dedicated replication conditions in var
4ea2993 Fix typo in ceilometer ignore_projects filter
05d6c6f Lookup Gnocchi service before proxy is configured
620edb7 Require lookup of Gnocchi identity when needed
0737337 Add "ansible_host" to each host
10d3ee9 Add check for swift_hash_path_ variables
7adb8b2 Fix missing newline in ceilometermiddleware config
1690a5d Compress test execution logs
1d55c37 Filter Gnocchi traffic optionally
80d2d96 Add Multi Region Swift gate scenario
750ccaa Refactor and improve swift-rings.py
599232a Point auditor service at the replicator config
71122a3 Namespace the telemetry vars for swift
702026d remove the path from the auth_url
be77d23 Fix gate replication_network setting
e31bec0 Rename package lists (and related vars) appropriately
43a6244 Enable log collection after functional testing
aad88fd Make all linting tests use upper-constraints
a9d1b9e Remove apt update from Vagrantfile
b85cd52 Add SNI support via OS packages for os_swift
6fb5535 Updated from global requirements
49a472e Remove requirements.txt install for testing
388a831 Cleanup/standardize usage of tags
eca8876 Add python packages for SNI support in tests
d3305e4 Relocate Swift configuration docs to os_swift role
17da038 Move other-requirements.txt to bindep.txt
0b5919e Include ansible commands for ansible linting
c926f33 Add pypy test Scenario for Swift
10b0fc1 Disable stderr logging
dcb2a2a Properly default pretend_min_part_hours_passed
8256654 Allow swift log file permissions to be set
85a657d Add project group to role
ae8ca49 Add package requirements for encryption
9790f9e Add ability to change apt/yum package state
c9ea779 Ensure that mode is a string
99bfe27 Fixed simple performance issue and deprecations
cce137c Ensure that doc linting is included in the linters test
5afbf0c Define region name.
850b60a Remove openstack_hosts from test requirements
b51eb2a Optimise pip install tasks
582175d Support service-specific rabbitmq clusters
6753152 Use plugins repo version of the human_log callback plugin
a7fb587 Updated from global requirements
da2cd24 Remove duplicates from .gitignore
5e3a46a Implement doc8 checks for docs
cce0410 Add pretend_min_part_hours_passed to ring build
5f9c83a Update sphinx configuration
022b62f Add options for configuring file limits in swift
5140ede Address Ansible bare variable usage
efd2960 Update tox configuration
eb04bf1 Refactor Swift ring build & check tasks
9d30bb3 Only install to virtual environment
7657961 Fix ansible-lint complaint about directory permissions
2ba929f Fix swift ring distribute
203743e add bool to var: swift_ceilometer_enabled
d0c001c Implement Xenial Support
bb17313 Updated swift + pypy
288500c Skip unavailable hosts when distributing keys
5a39413 Clean up container cache prep in tasks
d142d36 Pin test-requirements to match OpenStack requirements
2dc3514 Make ansible managed line in swift.conf static
1dcc63d Adding missing / to swift rabbit connection string
6169255 Remove pip_lock_down dependency
9380862 Consistency for multi-os in the includes
38b510c Add staticweb to the default middleware list
69759b2 Updating os_swift to use the Multi-Distro framework
daeea3c Set functional-test directory based on var
97a5b6d Verbose option has been deprecated from oslo.log
60b7b83 Enable pypy to be used with swift
53027de Setup rsync module per object server drive
292c443 Set fallocate_reserve to match upstream default
be739c5 Refactor os_swift testing
03a5640 Add .swp files to .gitignore
cf882fe Change pip install task state to 'latest'
167bf69 Add dependencies for paramiko 2.0
db4ad90 Remove XFS filesystem from the daily mlocate cron job
2c9e0d2 Add fucntional tests for swift
c749241 Remove Liberty releasenote index
1a12be6 blacklist Ansible 1.9.6
81aecda Expose and set a default fallocate_reserve value
e53ac82 Resolve issues with swift tests
fd3aeae Add reno scaffolding for release notes management
0b43cdf Switch defaults/tests to use master branch
462d526 Add ceilometer middleware when ceilometer enabled
1e15882 Clean up deprecation warning in swift proxy
486adbe Include reseller admin role correctly
cc81926 Adding Vagrantfile for local developer testing


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

.gitignore                                         |   7 +
.gitreview                                         |   1 +
CONTRIBUTING.rst                                   |  49 ++-
README.rst                                         |  25 +-
Vagrantfile                                        |   8 +
bindep.txt                                         |  41 +++
defaults/main.yml                                  | 233 +++++++++-----
examples/playbook.yml                              |   8 +
handlers/main.yml                                  |  55 +---
manual-test.rc                                     |  33 ++
meta/main.yml                                      |  11 +-
other-requirements.txt                             |  16 -
releasenotes/notes/.placeholder                    |   0
.../notes/add-xenial-support-e285a643a39f0438.yaml |   4 +
...s_swift-only-install-venv-fdd5d41759433cf8.yaml |   5 +
...package-list-name-changes-e6f88d12f3bd9fa0.yaml |   4 +
.../notes/package-state-f2309b07440d0ae8.yaml      |  13 +
.../notes/swift-conf-b8dd5e1199f8e4a8.yaml         |   9 +
.../swift-fallocate-reserve-ff513025da68bfed.yaml  |  11 +
.../swift-force-hash-change-45b09eeb8b0368a6.yaml  |  14 +
.../swift-fs-file-limits-a57ab8b4c3c944e4.yaml     |  11 +
.../swift-pretend-mph-passed-7e5c15eeb35861c3.yaml |  17 ++
.../notes/swift-pypy-support-9706519c4b88a571.yaml |  15 +
...onfigure-xfs-from-mlocate-e4844e6c0469afd6.yaml |   5 +
.../swift-rings-port-change-4a95bbd9b63fb201.yaml  |  11 +
...ft-rsync-module-per-drive-79b05af8276e7d6e.yaml |  12 +
.../swift-staticweb-support-b280fbebf271820b.yaml  |   9 +
.../swift-syslog-log-perms-5a116171a1adeae3.yaml   |   6 +
releasenotes/source/_static/.placeholder           |   0
releasenotes/source/_templates/.placeholder        |   0
releasenotes/source/conf.py                        | 281 +++++++++++++++++
releasenotes/source/index.rst                      |   9 +
releasenotes/source/mitaka.rst                     |   6 +
releasenotes/source/unreleased.rst                 |   5 +
setup.py                                           |  11 +-
tasks/install-apt.yml                              |  37 +++
tasks/main.yml                                     | 104 +++++--
tasks/swift_calculate_addresses.yml                | 131 ++++++++
tasks/swift_check_hashes.yml                       |  55 ++++
tasks/swift_command_check.yml                      |  30 --
tasks/swift_init_common.yml                        |  33 ++
tasks/swift_init_systemd.yml                       |  56 ++++
tasks/swift_init_upstart.yml                       |  26 ++
tasks/swift_install.yml                            | 162 ++--------
tasks/swift_key_distribute.yml                     |   9 +-
tasks/swift_key_populate.yml                       |   6 -
tasks/swift_key_setup.yml                          |   7 -
tasks/swift_post_install.yml                       |  39 +--
tasks/swift_pre_install.yml                        |  53 ++--
tasks/swift_proxy_hosts.yml                        |  38 ++-
tasks/swift_pypy_setup.yml                         |  74 +++++
tasks/swift_rings.yml                              |   9 +-
tasks/swift_rings_build.yml                        |  50 +--
tasks/swift_rings_check.yml                        |  16 +-
tasks/swift_rings_distribute.yml                   |  28 +-
tasks/swift_rings_md5sum.yml                       |   4 -
tasks/swift_rings_post_distribution_check.yml      |  50 +--
tasks/swift_service_setup.yml                      |  32 +-
tasks/swift_storage_hosts_account.yml              |  78 +----
tasks/swift_storage_hosts_container.yml            | 102 +------
tasks/swift_storage_hosts_object.yml               |  93 +-----
tasks/swift_storage_hosts_setup.yml                |  24 +-
tasks/swift_sync_post_install.yml                  |  21 +-
tasks/swift_upstart_common_init.yml                |  44 ---
templates/account-server-replicator.conf.j2        |   8 +-
templates/account-server.conf.j2                   |   9 +-
templates/container-reconciler.conf.j2             |   2 +
templates/container-server-replicator.conf.j2      |   8 +-
templates/container-server.conf.j2                 |  13 +-
templates/mlocate-crond-daily.sh.j2                |  21 ++
templates/object-expirer.conf.j2                   |   2 +
templates/object-server-replicator.conf.j2         |  11 +-
templates/object-server.conf.j2                    |  16 +-
templates/proxy-server.conf.j2                     |  26 +-
templates/ring.contents.j2                         |  39 +--
templates/rsyncd.conf.j2                           |  38 +++
templates/swift-dispersion.conf.j2                 |   1 +
templates/swift-rsyslog.conf.j2                    |   2 +
templates/swift-systemd-init.j2                    |  24 ++
templates/swift-systemd-tempfiles.j2               |   4 +
templates/swift-upstart-init.j2                    |  31 +-
templates/swift.conf.j2                            |   2 +-
templates/swift_rings.py.j2                        |  74 ++---
templates/swift_rings_check.py.j2                  |  25 +-
test-requirements.txt                              |  19 +-
tox.ini                                            | 236 ++++++++++-----
vars/debian.yml                                    |  28 ++
120 files changed, 3537 insertions(+), 1510 deletions(-)


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

diff --git a/test-requirements.txt b/test-requirements.txt
index 3422d65..8fdd8d8 100644
--- a/test-requirements.txt
+++ b/test-requirements.txt
@@ -1,4 +1,9 @@
-ansible-lint<=2.3.9
-ansible>=1.9.1,<2.0.0
-bashate
-flake8
+# 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.
+bashate>=0.2 # Apache-2.0
+flake8<2.6.0,>=2.5.4 # MIT
+pyasn1 # BSD
+pyOpenSSL>=0.14 # Apache-2.0
+requests>=2.10.0 # Apache-2.0
+ndg-httpsclient>=0.4.2;python_version<'3.0' # BSD
@@ -7,2 +12,4 @@ flake8
-sphinx!=1.2.0,!=1.3b1,<1.3,>=1.1.2
-oslosphinx>=2.5.0 # Apache-2.0
+sphinx!=1.3b1,<1.3,>=1.2.1 # BSD
+oslosphinx!=3.4.0,>=2.5.0 # Apache-2.0
+doc8 # Apache-2.0
+reno>=1.8.0 # Apache2





More information about the OpenStack-announce mailing list