Skip to content

Releases: elastic/curator

8.0.17 (25 October 2024)

26 Oct 00:40
Compare
Choose a tag to compare

Bugfix

  • Reported in #1727 (and I'm relieved that nobody got bit by this sooner), A
    serious bug was found where if using the age filter while deriving the
    age from the index name, it was erroneously ignoring any index that did not
    have a matching timestring pattern, which would leave a default epoch
    time of 0, 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,
    and data_warm for shrink action. This was first raised in #1621, but
    needed to go further than just adding data_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 and node.stats to use filter_path

8.0.16 (6 August 2024)

07 Aug 01:24
Compare
Choose a tag to compare

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
    by es_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 with voluptuous greater than 0.14.2.

8.0.15 (10 April 2024)

11 Apr 02:20
Compare
Choose a tag to compare

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 -- where X.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 in docker: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 via expand_wildcards=['open', 'closed'].
  • Address test warnings for an improperly escaped \d in a docstring in indexlist.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)

03 Apr 02:40
Compare
Choose a tag to compare

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 a search_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 using type and settings as it has been was insufficient for repository
      settings, so we go back to using a request body as in older times. This change affects
      esrepomgr in one place, and otherwise only in snapshot/restore testing.
  • 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)

26 Mar 20:07
Compare
Choose a tag to compare

Bugfix

  • An issue was discovered in es_client that caused default values from command-line options
    which should not have been set to override settings in configuration files.
    es_client==8.12.9 corrects this. Reported in #1708, hat tip to @rgaduput for reporting this
    bug.

8.0.12 (20 March 2024)

21 Mar 02:07
Compare
Choose a tag to compare

Bugfix

  • six dependency erroneously removed from es_client. It's back in es_client==8.12.8

8.0.11 (20 March 2024)

21 Mar 01:20
Compare
Choose a tag to compare

Announcement

  • With the advent of es_client==8.12.5, environment variables can now be used to automatically
    populate command-line options. The ESCLIENT_ 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 having ESCLIENT_HTTP_COMPRESS=1. Boolean values are 1, 0, True,
    or False (case-insensitive). Options like hosts 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 of Y (#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.
  • 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)

02 Feb 01:44
Compare
Choose a tag to compare

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)

01 Feb 07:08
Compare
Choose a tag to compare

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 is es_client==8.12.3

7.0.1 (16 August 2023)

16 Aug 22:31
c4fb553
Compare
Choose a tag to compare

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.