Releases: linux-system-roles/storage
Version 1.9.2
[1.9.2] - 2022-11-01
New Features
- none
Bug Fixes
- Master thin support size fix (#299)
Fixed calculation of relative thinp sizes
- percent specified 'size' of thin pool volume is now properly
calculated from size of parent thinpool
Fixed size and percentage handling for thin pools
- percentage size thin volume now correctly references its parent device
for size calculation - percentage values are now accepted size for thin pool size
Other Changes
- Add disks_needed for raid test cases (#300)
Creating raid will be failed if we don't have enough unused disks, set
disks_needed earlier.
Set disks_needed=2 for tests_swap.yml
- use block instead of end_play (#302)
Do not use end_play
with the conditional when
which uses variables
for the condition. The problem is that end_play
is executed in a
different scope where the variables are not defined, even when using
set_fact
. The fix is to instead use a block
and a when
.
- Modified lvmvdo check
VDO check was failing due to issue in 'vdostats'.
Modified vdo testing so 'lvs' is used to get data instead
Version 1.9.1
[1.9.1] - 2022-07-26
New Features
- none
Bug Fixes
- Update README.md with latest changes (#290)
- LVM thin provisioning support.
- Support for adding/removing disks to/from existing pools.
- Cache can now be attached to an pre-existing volume.
Fixes: #287
Fixes: #288
Fixes: #289
Other Changes
- changelog_to_tag action - Use GITHUB_REF_NAME for main branch name
Version 1.9.0
[1.9.0] - 2022-07-19
New Features
- Add support for attaching LVM cache to existing LVs (#273)
Fixes: #252
- Add support for managing pool members (#264)
For LVM pools this adds support for adding and removing members
(PVs) from the pool (VG).
- Do not allow removing members from existing pools in safe mode
Bug Fixes
- loop variables are scoped local - no need to reset them (#282)
If you use
loop_control:
loop_var: storage_test_pool
Then the variable storage_test_pool
is scoped local to the task
and is undefined after the task. In addition, referencing the
variable after the loop causes this warning:
[WARNING]: The loop variable 'storage_test_pool' is already in use. You should
set the `loop_var` value in the `loop_control` option for the task to something
else to avoid variable collisions and unexpected behavior.
- support ansible-core-2.13 (#278)
Looks like ansible-core-2.13 (or latest jinja3) does not support
constructs like this:
var: "{{ [some list] }} + {{ [other list] }}"
instead, the entire thing has to be evaluated in the same jinja
evaluation context:
var: "{{ [some list] + [other list] }}"
In addition - it is an Ansible antipattern to use
- set_fact:
var: "{{ var + item }}"
loop: "{{ some_list }}"
so that was rewritten to use filters instead
Other Changes
- ensure role works with gather_facts: false (#277)
Ensure tests work when using ANSIBLE_GATHERING=explicit
-
ensure cryptsetup is available for testing (#279)
-
make min_ansible_version a string in meta/main.yml (#281)
The Ansible developers say that min_ansible_version
in meta/main.yml
must be a string
value like "2.9"
, not a float
value like 2.9
.
- Skip the entire test_lvm_pool_members playbook with old blivet (#280)
Multiple bugs in blivet were fixed in order to make the feature
work and without the correct version even the most basic test to
remove a PV from a VG will fail so we should skip the entire test
with old versions of blivet.
Skip test on el7 if blivet version is too old
Add support for is_rhel7
Refactor EL platform and version checking code
Add a name for the end_play
task
- Add CHANGELOG.md (#283)
check for thinlv name before assigning to thinlv_params (#276)
check for thinlv name before assigning to thinlv_params (#276)
Only set the thinlv_param name if thinlv has 'name'
Thin pool support; deprecate support for "striped" RAID
Thin pool support (#269)
- Argument validator extension
Thin provisioning requires yaml input parameters to be checked for
various unsupported combinations.
This commit provides framework that allows searching and denying predefined
parameter combinations.
Checks are performed at the beginning of the role run before blivet
initialization.
- Thin pool support (WIP)
Storage role support for thin provisioning.
Volumes under LVM pool now can use three new options:
- 'thin' - type bool
- setting to True puts the volume into a thin pool
- 'thin_pool_name' - type str
- specifies the name of the thin pool for this volume
- selects thin pool with the same name if it exists
- tries to create new thin pool if it does not
- if omitted and no existing thin pool is present, the name is generated automatically
- if omitted and exactly one thin pool is present, the volume is put into existing thin pool
- if omitted and more than one thin pool is present, exception is raised
- 'thin_pool_size' - type Size
- specifies size of the thin pool
LVM RAID raid0 level support (#272)
- Add workaround for missing LVM raid0 support in blivet
Blivet supports creating LVs with segment type "raid0" but it is
not in the list of supported RAID levels. This will be fixed in
blivet, see storaged-project/blivet#1047
-
Add a test for LVM RAID raid0 level
-
README: Remove "striped" from the list of supported RAID for pools
We use MD RAID for RAIDs on the pool level which doesn't support
"striped" level.
- README: Clarify supported volume RAID levels
We support different levels for LVM RAID and MD RAID.
add back support for mount_options; support collection-requirements.yml
Use meta/collection-requirements.yml for collection dependencies (#267)
There is no way for a role to automatically require collections for
module/plugin dependencies. Use the non-standard file
meta/collection-requirements.yml for this. Note that
meta/requirements.yml is supposed to be a list of roles only, in
the format described at https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#installing-multiple-roles-from-multiple-files
add support for mount_options (#270)
- add support for mount_options
When support for argument validation was added, that support did not
include the mount_options
parameter. This fix adds back that
parameter. In addition, the volume module arguments are refactored
so that the common volume parameters such as mount_options
can be
specified in one place.
This adds a test for the mount_options
parameter, and adds
verification for that parameter.
- only checkout mount_options if requested
[citest skip] bump tox-lsr version to 2.11.0; remove py37; add py310 (#266)
Signed-off-by: Rich Megginson [email protected]
add xfsprogs to packages; support gather_facts: false; support setup-snapshot
add setup snapshot to install packages into snapshot (#260)
allow role to work with gather_facts: false (#262)
Allow the role to work if the playbook has set gather_facts: false
.
The gather_subset: min
includes all of the facts used by this
role. Other roles may need to gather more facts.
The role gathers the facts where they are needed. Other roles may
need to gather facts in a different place.
add xfsprogs for non-cloud-init systems (#263)
-
add xfsprogs for el8
-
add xfsprogs for non-cloud-init systems
There should be an explicit dependency on the xfsprogs
packages.
The role works in CI because the CI systems are using cloud-init
based VMs which pull in xfsprogs. On non-cloud-init systems the
package is missing and the role fails.
Less verbosity by default (#256)
support LVM RAID volumes - LVM cache support - remove recursive symlinks
Refactored pool create function
- refactored BlivetLVMVolume._create
Added support for LVM RAID volumes
- raid_level can be used on pool volume
- raid_disks can specify disks to be used
- test added
- some changes to README-devel (more to come)
remove extra blank lines
remove extra blank lines
Refined safe_mode condition in create_members
- safe_mode condition in Blivet.Pool._create_members should now catch
formatting reported by blkid but not being recognized/handled by blivet
Parameter checking (#223)
Older versions of ansible do not validate nested modules parameters for
types etc. Ansible 2.11 and newer implement this functionality. This
commit adds type definitions for nested variables.
- added custom parameter checking
- parameters (including nested) are now checked for type and value
- values of all parameters are now normalized when applicable
- specifying list values (e.g. disks) as non-list is now allowed
- non-list value is converted to list
- original failure-expecting test removed
- functionality tested by modification of an existing test
Add LVM RAID specific parameters to module_args (#246)
These were not added after the nested parameters checks were
implemented.
change recursive role symlink to individual role dir symlinks (#248)
Signed-off-by: Rich Megginson [email protected]
Add support for creating and managing LVM cache volumes (#235)
-
Add support for creating and managing LVM cache volumes
-
Allow specifying disks as cache_devices instead of PVs
It might be hard for users to know names of the partitions we'll
create as PVs so we should let them disk names and get the PVs on
them ourselves when creating the cache.
- Add LVM cache specific parameters to module_args
bump tox-lsr version to 2.8.3 (#249)
Signed-off-by: Rich Megginson [email protected]
workaround service_facts issues; workaround udev, lvm issues on el9
Add workaround for the service_facts module for Ansible < 2.12
add tags to allow skipping lvm tests (#242)
lvm is currently broken on el9. We need to skip these tests until
lvm is fixed. See https://bugzilla.redhat.com/show_bug.cgi?id=1967212
remove py27 from github CI testing (#244)
py27 is no longer supported
See linux-system-roles/linux-system-roles.github.io#70
for more details
add support for storage_udevadm_trigger (#243)
On some platforms, udev is not updated immediately after blivet
completes its disk operations. The user can set
storage_udevadm_trigger: true
in order to cause udev to ensure
those changes take effect immediately.
update tox-lsr version to 2.8.0 (#240)
New version adds check for proper commenting of the ansible_managed var
Signed-off-by: Sergei Petrosian [email protected]