Releases: elastic/curator
8.0.17 (25 October 2024)
Bugfix
-
Reported in #1727 (and I'm relieved that nobody got bit by this sooner), A
serious bug was found where if using theage
filter while deriving the
age from the index name, it was erroneously ignoring any index that did not
have a matchingtimestring
pattern, which would leave a default epoch
time of0
, which would definitely be older than your cutoff date! As a
result, indices were matched and deleted that should not have been.The fix is to remove indices that do not match the pattern in the
_get_name_based_ages
method. The patch is in this release, as are updated
tests to replicate the failure scenario. Hat tip to @giom-l for reporting this.
Changes
- Update to use
es_client==8.15.2
. - Update data node detection to include
data
,data_content
,data_hot
,
anddata_warm
forshrink
action. This was first raised in #1621, but
needed to go further than just addingdata_hot
. Hat tip to @gnobironts for
the original pull request. - Add
docker_test/.env
to.gitignore
- More formatting changes as suggested by pylint
- Improve API calls to
node.info
andnode.stats
to usefilter_path
8.0.16 (6 August 2024)
Changes
- Update to use
es_client==8.14.2
- Formatting changes and improvements
- Update CLI to get client using
ctx.obj['configdict']
as it's already built
byes_client
.
Bugfixes
- Fix improper log levels erroneously left in from debugging. Thanks to
@boutetnico in #1714 es_client
version 8.14.2 addresses a problem where Python 3.8 is not officially supported
for use withvoluptuous
greater than0.14.2
.
8.0.15 (10 April 2024)
Announcement
- Python 3.12 support becomes official. A few changes were necessary to
datetime
calls
which were still using naive timestamps. Tests across all minor Python versions from 3.8 - 3.12
verify everything is working as expected with regards to those changes. Note that Docker builds
are still running Python 3.11 as cx_Freeze still does not officially support Python 3.12. - Added infrastructure to test multiple versions of Python against the code base. This requires
you to run:
*pip install -U hatch hatchling
-- Install prerequisites
*hatch run docker:create X.Y.Z
-- whereX.Y.Z
is an ES version on Docker Hub
*hatch run test:pytest
-- Run the test suite for each supported version of Python
*hatch run docker:destroy
-- Cleanup the Docker containers created indocker:create
Bugfix
- A bug reported in
es_client
with Python versions 3.8 and 3.9 has been addressed. Going
forward, testing protocol will be to ensure that Curator works with all supported versions of
Python, or support will be removed (when 3.8 is EOL, for example).
Changes
- Address deprecation warning in
get_alias()
call by limiting indices to only open and
closed indices viaexpand_wildcards=['open', 'closed']
. - Address test warnings for an improperly escaped
\d
in a docstring inindexlist.py
- Updated Python version in Docker build. See Dockerfile for more information.
- Docker test scripts updated to make Hatch matrix testing easier (.env file)
8.0.14 (2 April 2024)
Announcement
- A long awaited feature has been added, stealthily. It's fully in the documentation, but I do
not yet plan to make a big announcement about it. In actions that search through indices, you
can now specify asearch_pattern
to limit the number of indices that will be filtered. If
no search pattern is specified, the behavior will be the same as it ever was: it will search
through_all
indices. The actions that support this option are: allocation, close,
cold2frozen, delete_indices, forcemerge, index_settings, open, replicas, shrink, and snapshot.
Bugfix
- A mixup with naming conventions from the PII redacter tool got in the way of the cold2frozen
action completing properly.
Changes
- Version bump:
es_client==8.13.0
- With the version bump to
es_client
comes a necessary change to calls to create a
repository. In elastic/elasticsearch-specification#2255 it became
clear that usingtype
andsettings
as it has been was insufficient for repository
settings, so we go back to using a requestbody
as in older times. This change affects
esrepomgr
in one place, and otherwise only in snapshot/restore testing.
- With the version bump to
- Added the curator.helpers.getters.meta_getter to reduce near duplicate functions.
- Changed curator.helpers.getters.get_indices to use the _cat API to pull indices. The primary
driver for this is that it avoids pulling in the full mapping and index settings when all we
really need to return is a list of index names. This should help keep memory from ballooning
quite as much. The function also now allows for a search_pattern kwarg to search only for
indices matching a pattern. This will also potentially make the initial index return list much
smaller, and the list of indices needing to be filtered that much smaller. - Tests were added to ensure that the changes for
get_indices
work everywhere. - Tests were added to ensure that the new
search_pattern
did not break anything, and does
behave as expected.
8.0.13 (26 March 2024)
8.0.12 (20 March 2024)
Bugfix
six
dependency erroneously removed fromes_client
. It's back ines_client==8.12.8
8.0.11 (20 March 2024)
Announcement
- With the advent of
es_client==8.12.5
, environment variables can now be used to automatically
populate command-line options. TheESCLIENT_
prefix just needs to prepend the capitalized
option name, and any hyphens need to be replaced by underscores.--http-compress True
is
automatically settable by havingESCLIENT_HTTP_COMPRESS=1
. Boolean values are 1, 0, True,
or False (case-insensitive). Options likehosts
which can have multiple values just need to
have whitespace between the values, e.g.
ESCLIENT_HOSTS='http://127.0.0.1:9200 http://localhost:9200'
. It splits perfectly. This is
tremendous news for the containerization/k8s community. You won't have to have all of the
options spelled out any more. Just have the environment variables assigned. - Also, log blacklisting has made it to the command-line as well. It similarly can be set via
environment variable, e.g.ESCLIENT_BLACKLIST='elastic_transport urllib3'
, or by multiple
--blacklist
entries at the command line. es_client
has simplified things such that I can clean up arg sprawl in the command line
scripts.
Changes
Lots of pending pull requests have been merged. Thank you to the community
members who took the time to contribute to Curator's code.
- DOCFIX - Update date math section to use
y
instead ofY
(#1510) - DOCFIX - Update period filtertype description (#1550)
- add .dockerignore to increase build speed (#1604)
- DOCFIX - clarification on prefix and suffix kinds (#1558)
The provided documentation was adapted and edited. - Use builtin unittest.mock (#1695)
- Had to also update
helpers.testers.verify_client_object
.
- Had to also update
- Display proper error when mapping incorrect (#1526) - @namreg
Also assisting with this is @alexhornblake in #1537
Apologies for needing to adapt the code manually since it's been so long. - Version bumps:
es_client==8.12.6
8.0.10 (1 February 2024)
Changes
The upstream dependency, es_client
, needed to be patched to address a
Docker logging permission issue. This release only version bumps that
dependency:
es_client==8.12.4
8.0.9 (31 January 2024)
Announcements
Curator is improving command-line options using new defaults and helpers from
from the es_client
module. This will make things appear a bit cleaner at
the command-line as well as normalize command-line structure between projects
using es_client
. No more reimplementing the same code in 5 different
projects!
Changes
- Fix Docker logging per #1694. It should detect whether that path exists and
that the process has write permissions before blindly attempting to use it. - If
--config
is not specified Curator will now assume you either mean to
use CLI options exclusively or look for a config in the default location.
Curator will not halt on the absence of--config
any more, per #1698 - Increment Dockerfile settings to
python:3.11.7-alpine3.18
- Some command-line options are hidden by default now but remain usable. The
help output explains how to see the full list, if needed. - Dependency bumps
- As
es_client
covers all of the same upstream dependencies that were
necessary in previous releases, all local dependencies have been erased
in favor of that one. For this release, that ises_client==8.12.3
- As
7.0.1 (16 August 2023)
Changes
- This release brings some Python modules up to current releases, namely:
certifi>=2023.5.7
click==8.1.4
elasticsearch7==7.17.9
pyyaml==6.0.1
- The PyYAML change is notable as the Cython 3.0 upgrade caused it to no longer work.
Version 6.0.1 fixes that, enabling Curator to build again. cx_Freeze
changed some configurations to be more Pythonic. #1681 fixes that.