Releases: elastic/curator
8.0.2 (15 February 2023)
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 incurator.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 makecurator/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)
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
) andamd64
. - This required the addition of two new scripts at the root level of the project:
alpine4docker.sh
andpost4docker.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 undercurator.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 uselogformat: 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)
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 theelasticsearch8
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
viapip
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
andhatchling
for package building & publishing - Because of
hatch
andpyproject.toml
, the release version still only needs to be tracked
incurator/_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 bypyproject.toml
and doingpip install .
to grab dependencies and
install them. YAY! Only one place to track dependencies now!!! - Preliminarily updated the docs.
- Migrate towards
pytest
and away fromnose
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 provideREMOTE_ES_SERVER
environment variables for
testing thereindex
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, rundocker_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, likecloud_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)
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 theelasticsearch8
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
viapip
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
andhatchling
for package building & publishing - Because of
hatch
andpyproject.toml
, the release version still only needs to be tracked
incurator/_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 bypyproject.toml
and doingpip install .
to grab dependencies and
install them. YAY! Only one place to track dependencies now!!! - Preliminarily updated the docs.
- Migrate towards
pytest
and away fromnose
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 provideREMOTE_ES_SERVER
environment variables for
testing thereindex
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, rundocker_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, likecloud_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)
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
viapip
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
andhatchling
for package building & publishing - Because of
hatch
andpyproject.toml
, the release version still only needs to be tracked
incurator/_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 bypyproject.toml
and doingpip install .
to grab dependencies and
install them. YAY! Only one place to track dependencies now!!! - Preliminarily updated the docs.
- Migrate towards
pytest
and away fromnose
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 provideREMOTE_ES_SERVER
environment variables for
testing thereindex
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, rundocker_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 separateurllib3
import.
6.0.0 (31 January 2023)
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
viapip
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
andhatchling
for package building & publishing - Because of
hatch
andpyproject.toml
, the release version still only needs to be tracked
incurator/_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 bypyproject.toml
and doingpip install .
to grab dependencies and
install them. YAY! Only one place to track dependencies now!!! - Preliminarily updated the docs.
- Migrate towards
pytest
and away fromnose
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 provideREMOTE_ES_SERVER
environment variables for
testing thereindex
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, rundocker_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 separateurllib3
import.
5.8.4 (27 April 2021)
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. Withboto3
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)
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)
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 useusername
andpassword
. This should work incurator
,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 alogformat
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 thecluster.state
API call
regression at elastic/elasticsearch-py#1141 - Fix
client.tasks.get
API call to beclient.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
5.8.1 (25 September 2019)
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.