Skip to content

Releases: elastic/curator

8.0.2 (15 February 2023)

16 Feb 03:24
Compare
Choose a tag to compare

Changes

  • Added the same CLI flags that the singletons offers. This gives much more flexibility with
    regards to passing configuration settings as command-line options, particularly for Docker.
  • Re-created the get_client function. It now resides in curator.helpers.getters and will
    eventually see use in the Reindex class for remote connections.
  • Created a new set of classes to import, validate the schema, and split individual actions into
    their own sub-object instances. This is primarily to make curator/cli.py read much more
    cleanly. No new functionality here, but fewer conditional branches, and hopefully more readable
    code.
  • Updated the documentation to show these changes, both the API and the Elastic.co usage docs.

8.0.1 (10 February 2023)

11 Feb 05:31
Compare
Choose a tag to compare

Announcements

The 8.0.0 release was about getting Curator out the door with all of the functionality users were
accustomed to in 5.8.4, but with the newer, updated args and methods in elasticsearch8. Very
little else was changed that didn't need to be. Now comes a few improvements, and more are coming,
which is why I didn't start with 8.6.0 as my release version.

  • Now offering multi-architecture Docker builds for arm64 (v8) and amd64.
  • This required the addition of two new scripts at the root level of the project:
    alpine4docker.sh and post4docker.py. These scripts are used only when building the
    Dockerfile. They were needed to make multi-architecture Docker images possible. I'm sure you'll
    be able to see how they work with a cursory glance.

Breaking Changes

  • I split curator.utils into several, separate modules under curator.helpers.

    I suppose, technically, that this qualifies as a breaking change from 8.0, but I sincerely
    doubt I have any users using Curator as an API yet, so I made the change. No functions were
    renamed, so this isn't as breaking so much as a slight shift in module naming. This gave me
    headaches, but it needed to be done a long time ago. It was always grating to see the Pylint
    warnings that the file is longer than 1000 lines, and searching for the module you wanted was
    way too much scrolling. This also gave me the chance to update the tests and the docstring's
    formatting for rST docs. Most of this release's changes came from this change.

Changes

  • Curator has supported ECS logging for a while, but now that there is an official Python module,
    Curator is going to use it. Welcome, ecs-logging! As before, just use logformat: ecs,
    but now it has all of the goodness right there!
  • rST docs are improved and updated. Check out https://curator.readthedocs.io to see.
  • Logging turned out to be too verbose due to a shift. Now the blacklist defaults to
    ['elastic_transport', 'urllib3']. Documentation updated accordingly.
  • Default behavior is now to not verify snapshot repository access for Snapshot and Restore
    actions. It was a hacky fix for older versions of Elasticsearch that just shouldn't be needed.

8.0.0 (31 January 2023)

01 Feb 00:37
Compare
Choose a tag to compare

Announcement

This release is a major refactoring of the Curator code to work with both Elasticsearch
8.x and the Elasticsearch-py Python module of the same major and minor versions.

I apologize for the crazy merge messes trying to get this all to work. In the end, I had to delete
my fork on github and start over clean.

Breaking Changes

  • Curator is now version locked. Curator v8.x will only work with Elasticsearch v8.x
  • Your old Curator config.yml file will no longer work as written. There have been more than
    a few changes necessitated by the updates in the elasticsearch8 Python client library.
    The client connection code has also been extracted to its own module, es_client. This is
    actually a good thing, however, as new options for configuring the client connection become
    possible.
  • Going forward, Curator will only be released as a tarball via GitHub, as an sdist or
    wheel via pip on PyPI, and to Docker Hub. There will no longer be RPM, DEB, or Windows
    ZIP releases. I am sorry if this is inconvenient, but one of the reasons the development and
    release cycle was delayed so long is because of how painfully difficult it was to do releases.
  • Curator will only work with Python 3.8+, and will more tightly follow the Python version releases.

Changes

  • Last minute doc fixes. Mostly updated links to Elasticsearch documentation.
  • Python 3.11.1 is fully supported, and all versions of Python 3.8+ should be fully supported.
  • Use hatch and hatchling for package building & publishing
  • Because of hatch and pyproject.toml, the release version still only needs to be tracked
    in curator/_version.py.
  • Maintain the barest setup.py for building a binary version of Curator for Docker using
    cx_Freeze.
  • Remove setup.cfg, requirements.txt, MANIFEST.in, and other files as functionality
    is now handled by pyproject.toml and doing pip install . to grab dependencies and
    install them. YAY! Only one place to track dependencies now!!!
  • Preliminarily updated the docs.
  • Migrate towards pytest and away from nose tests.
  • Revamped almost every integration test
  • Scripts provided now that aid in producing and destroying Docker containers for testing. See
    docker_test/scripts/create.sh. To spin up a numbered version release of Elasticsearch, run
    docker_test/scripts/create.sh 8.6.1. It will download any necessary images, launch them,
    and tell you when it's ready, as well as provide REMOTE_ES_SERVER environment variables for
    testing the reindex action, e.g.
    REMOTE_ES_SERVER="http://172.16.0.1:9201" pytest --cov=curator. These tests are skipped
    if this value is not provided. To clean up afterwards, run docker_test/scripts/destroy.sh
  • The action classes were broken into their own path, curator/actions/filename.py.
  • curator_cli has been updated with more client connection settings, like cloud_id.
  • As Curator 8 is version locked and will not use AWS credentials to connect to any ES 8.x
    instance, all AWS ES connection settings and references have been removed.

8.0.0rc1 (30 January 2023)

31 Jan 04:27
d7fdde7
Compare
Choose a tag to compare
Pre-release

Announcement

This release-candidate is a major refactoring of the Curator code to work with both Elasticsearch
8.x and the Elasticsearch-py Python module of the same major and minor versions.

Breaking Changes

  • Curator is now version locked. Curator v8.x will only work with Elasticsearch v8.x
  • Your old Curator config.yml file will no longer work as written. There have been more than
    a few changes necessitated by the updates in the elasticsearch8 Python client library.
    The client connection code has also been extracted to its own module, es_client. This is
    actually a good thing, however, as new options for configuring the client connection become
    possible.
  • Going forward, Curator will only be released as a tarball via GitHub, as an sdist or
    wheel via pip on PyPI, and to Docker Hub. There will no longer be RPM, DEB, or Windows
    ZIP releases. I am sorry if this is inconvenient, but one of the reasons the development and
    release cycle was delayed so long is because of how painfully difficult it was to do releases.
  • Curator will only work with Python 3.8+, and will more tightly follow the Python version releases.

Changes

  • Python 3.11.1 is fully supported, and all versions of Python 3.8+ should be fully supported.
  • Use hatch and hatchling for package building & publishing
  • Because of hatch and pyproject.toml, the release version still only needs to be tracked
    in curator/_version.py.
  • Maintain the barest setup.py for building a binary version of Curator for Docker using
    cx_Freeze.
  • Remove setup.cfg, requirements.txt, MANIFEST.in, and other files as functionality
    is now handled by pyproject.toml and doing pip install . to grab dependencies and
    install them. YAY! Only one place to track dependencies now!!!
  • Preliminarily updated the docs.
  • Migrate towards pytest and away from nose tests.
  • Revamped almost every integration test
  • Scripts provided now that aid in producing and destroying Docker containers for testing. See
    docker_test/scripts/create.sh. To spin up a numbered version release of Elasticsearch, run
    docker_test/scripts/create.sh 8.6.1. It will download any necessary images, launch them,
    and tell you when it's ready, as well as provide REMOTE_ES_SERVER environment variables for
    testing the reindex action, e.g.
    REMOTE_ES_SERVER="http://172.16.0.1:9201" pytest --cov=curator. These tests are skipped
    if this value is not provided. To clean up afterwards, run docker_test/scripts/destroy.sh
  • The action classes were broken into their own path, curator/actions/filename.py.
  • curator_cli has been updated with more client connection settings, like cloud_id.
  • As Curator 8 is version locked and will not use AWS credentials to connect to any ES 8.x
    instance, all AWS ES connection settings and references have been removed.

7.0.0 (31 January 2023)

31 Jan 21:37
Compare
Choose a tag to compare

Announcement

At long last, the interminable wait is over. New Curator versions are being released. Yes, plural.
Curator versions 6, 7, and 8 are all coming out at once.

  • This release is a simplified release for only pip and Docker. It only works
    with Elasticsearch 7.x and is functionally identical to 5.8.4

Breaking Changes

  • Curator is now version locked. Curator v7.x will only work with Elasticsearch v7.x
  • Going forward, Curator will only be released as a tarball via GitHub, as an sdist or
    wheel via pip on PyPI, and to Docker Hub. There will no longer be RPM, DEB, or Windows
    ZIP releases. I am sorry if this is inconvenient, but one of the reasons the development and
    release cycle was delayed so long is because of how painfully difficult it was to do releases.
  • Curator will only work with Python 3.8+, and will more tightly follow the Python version releases.

New

  • Python 3.11.1 is fully supported, and all versions of Python 3.8+ should be fully supported.
  • Use hatch and hatchling for package building & publishing
  • Because of hatch and pyproject.toml, the release version still only needs to be tracked
    in curator/_version.py.
  • Maintain the barest setup.py for building a binary version of Curator for Docker using
    cx_Freeze.
  • Remove setup.cfg, requirements.txt, MANIFEST.in, and other files as functionality
    is now handled by pyproject.toml and doing pip install . to grab dependencies and
    install them. YAY! Only one place to track dependencies now!!!
  • Preliminarily updated the docs.
  • Migrate towards pytest and away from nose tests.
  • Scripts provided now that aid in producing and destroying Docker containers for testing. See
    docker_test/scripts/create.sh. To spin up a numbered version release of Elasticsearch, run
    docker_test/scripts/create.sh 7.17.8. It will download any necessary images, launch them,
    and tell you when it's ready, as well as provide REMOTE_ES_SERVER environment variables for
    testing the reindex action, e.g.
    REMOTE_ES_SERVER="172.16.0.1:9201" pytest --cov=curator. These tests are skipped
    if this value is not provided. To clean up afterwards, run docker_test/scripts/destroy.sh
  • Add filter by size feature. #1612 (IndraGunawan)
  • Update Elasticsearch client to 7.17.8

Security Fixes

  • Use urllib3 1.26.5 or higher #1610 (tsaarni) — This dependency is now fully handled by the
    elasticsearch7 module and not a separate urllib3 import.

6.0.0 (31 January 2023)

31 Jan 21:35
Compare
Choose a tag to compare

Announcement

At long last, the interminable wait is over. New Curator versions are being released. Yes, plural.
Curator versions 6, 7, and 8 are all coming out at once.

  • This release is a simplified release for only pip and Docker. It only works
    with Elasticsearch 6.x and is functionally identical to 5.8.4

Breaking Changes

  • Curator is now version locked. Curator v6.x will only work with Elasticsearch v6.x
  • Going forward, Curator will only be released as a tarball via GitHub, as an sdist or
    wheel via pip on PyPI, and to Docker Hub. There will no longer be RPM, DEB, or Windows
    ZIP releases. I am sorry if this is inconvenient, but one of the reasons the development and
    release cycle was delayed so long is because of how painfully difficult it was to do releases.
  • Curator will only work with Python 3.8+, and will more tightly follow the Python version releases.

New

  • Python 3.11.1 is fully supported, and all versions of Python 3.8+ should be fully supported.
  • Use hatch and hatchling for package building & publishing
  • Because of hatch and pyproject.toml, the release version still only needs to be tracked
    in curator/_version.py.
  • Maintain the barest setup.py for building a binary version of Curator for Docker using
    cx_Freeze.
  • Remove setup.cfg, requirements.txt, MANIFEST.in, and other files as functionality
    is now handled by pyproject.toml and doing pip install . to grab dependencies and
    install them. YAY! Only one place to track dependencies now!!!
  • Preliminarily updated the docs.
  • Migrate towards pytest and away from nose tests.
  • Scripts provided now that aid in producing and destroying Docker containers for testing. See
    docker_test/scripts/create.sh. To spin up a numbered version release of Elasticsearch, run
    docker_test/scripts/create.sh 6.8.23. It will download any necessary images, launch them,
    and tell you when it's ready, as well as provide REMOTE_ES_SERVER environment variables for
    testing the reindex action, e.g.
    REMOTE_ES_SERVER="172.16.0.1:9201" pytest --cov=curator. These tests are skipped
    if this value is not provided. To clean up afterwards, run docker_test/scripts/destroy.sh
  • Add filter by size feature. #1612 (IndraGunawan)
  • Update Elasticsearch client to 6.8.2

Security Fixes

  • Use urllib3 1.26.5 or higher #1610 (tsaarni) — This dependency is now fully handled by the
    elasticsearch7 module and not a separate urllib3 import.

5.8.4 (27 April 2021)

27 Apr 17:26
Compare
Choose a tag to compare

Announcement

  • Because Python 2.7 has been EOL for over a year now, many projects are no
    longer supporting it. This will also be the case for Curator as its
    dependencies cease to support Python 2.7. With boto3 having announced it
    is ceasing support of Python 2.7, deprecated as of 15 Jan 2021, and fully
    unsupported on 15 Jul 2021, Curator will follow these same dates. This
    means that you will need to use an older version of Curator to continue
    using Python 2.7, or upgrade to Python 3.6 or greater.

Breaking

  • Normally I would not include breaking changes, but users have asked for
    Click v7, which changes actions to require hyphens, and not underscores.
    Options can still have underscores, but actions can't--well, not strictly
    true. You can have underscores, but Click v7 will convert them to hyphens.
    This should only affect users of the Curator CLI, and not YAML file
    users, and only the actions: show-indices, show-snapshots,
    delete-indices, delete-snapshots. The actual actions are still named
    with underscores, and the code has been updated to work with the hyphenated
    action names.

New

  • Now using elasticsearch-py version 7.12.0
  • Adding testing for Python 3.9
  • Removing testing on Python 3.6
  • Tested Elasticsearch versions now include 7.12.0, 7.11.2, 7.10.2, 7.9.3,
    7.8.1, 6.8.15, 5.6.16
  • Changing requirements.txt as follows:
    • boto3-1.17.57
    • certifi-2020.12.5
    • click-7.1.2
    • elasticsearch-7.12.0
    • pyyaml-5.4.1
    • requests-2.25.1
    • requests-aws4auth-1.0.1
    • six-1.15.0
    • urllib3-1.26.4
    • voluptuous-0.12.1

Bug Fixes

  • Alias integration tests needed updating for newer versions of Elasticsearch
    that include ILM.
  • Click 7.0 now reports an exit code of 1 for schema mismatches where it
    yielded a -1 in the past. Tests needed updating to correct for this.

Security

  • Address multiple pyyaml vulnerabilities by bumping to version 5.4.1.
    Contributed in #1596 (tsaarni)

5.8.3 (25 November 2020)

25 Nov 23:14
Compare
Choose a tag to compare

New

  • Determined to test the last 2 major version's final patch releases, plus
    the last 5 minor releases in the current major version. Travis CI testing
    needs to go faster, and this should suffice. For now, this means versions
    5.6.16, 6.8.13, 7.6.2, 7.7.1, 7.8.1, 7.9.3, and 7.10.0

Bug Fixes

  • Caught a few stale merge failures, and asciidoc documentation problems
    which needed fixing in the 5.8 branch, which necessitate this tiny bump
    release. No code changes between 5.8.2 and 5.8.3.

5.8.2 (24 November 2020)

24 Nov 22:43
Compare
Choose a tag to compare

Announcement

  • No, Curator isn't going away. But as you can tell, it's not as actively
    developed as it once was. I am gratified to find there are still users who
    make it a part of their workflow. I intend to continue development in my
    spare time. Curator is now a labor of love, not an engineering project I
    do during work hours.

New

  • Testing changes. Only last ES version of 5.x and 6.x are tested, plus the
    releases of 7.x since 7.2.
  • http_auth is now deprecated. You can continue to use it, but it will go
    away in the next major release. Moving forward, you should use username
    and password. This should work in curator, curator_cli, and
    es_repo_mgr.
  • Removed tests for all 5.x branches of Elasticsearch but the final (5.6).
  • Added tests for missing 7.x branches of Elasticsearch
  • Remove tests for Python 3.5
  • Fix hang of Shrink action in ES 7.x in #1528 (jclegras)
  • Add ecs as a logformat option in #1529 (m1keil)

Bug Fixes

  • Lots of code cleanup, trying to go PEP-8. All tests are still passing, and
    the APIs are not changed (yet—-that comes in the next major release).
  • Dockerfile has been updated to produce a working version with Python 3.7
    and Curator 5.8.1
  • Pin (for now) Elasticsearch Python module to 7.1.0. This will be updated
    when an updated release of the module fixes the cluster.state API call
    regression at elastic/elasticsearch-py#1141
  • Fix client.tasks.get API call to be client.tasks.list when no index
    name is provided. See
    elastic/elasticsearch-py#1110
  • Pin some pip versions to allow urllib3 and boto to coexist. See #1562
    (sethmlarson).

Documentation

  • Add Freeze/Unfreeze documentation in #1497 (lucabelluccini)
  • Update compatibility matrix in #1522 (jibsonline)

5.8.1 (25 September 2019)

25 Sep 16:45
Compare
Choose a tag to compare

Bug Fixes

  • LD_LIBRARY_PATH will now be set in /usr/bin/curator and the
    associated scripts rather than set in /etc/ld.so.conf.d

Other

  • Unsaved logging change in utils.py that got missed is merged.