v4.9.0
Summary
This release focuses on reinforcing the underlying foundations of the project while enhancing both performance and security that improve alignment with AWS support while ensuring our software has the safety and reliability our users expect.
This release includes updates to several resources that underpin LocalStack for AWS services, including DynamoDB Local, Hadoop, Apache Spark, Glue, k3d, Postgres, Apache ActiveMQ, Python, and Debian Trixie. We’ve also added support for new versions of OpenSearch, new merge strategies for Cloud Pods, CRUD support for EKS access entries, and multi-protocol support for CloudWatch’s additional protocols.
AWS Features
- LocalStack for AWS 4.9 adds support for new versions of OpenSearch and updates the default version to align with AWS support. The new supported versions for OpenSearch are 2.15, 2.17, 2.19 and 3.1. The new default version for OpenSearch domains (if no version is set) is now 3.1.
- LocalStack for AWS 4.9 adds CRUD support of EKS access entries and access policies. The new supported APIs include:
AssociateAccessPolicyCreateAccessEntryDeleteAccessEntryDescribeAccessEntryDisassociateAccessPolicyListAccessEntriesListAccessPoliciesListAssociatedAccessPoliciesUpdateAccessEntry
- The emulator is ready with multi-protocol support for the CloudWatch service in order to align with these upcoming changes to the CloudWatch service.
Enhancements
- Implement
ListTags,TagResourceandUntagResourceAPI support for Backup Vaults and Backup Plans, which are the only resources we support that would support tagging. - Remove unused Terraform package installer at
localstack-core/localstack/packages/terraform.py. If you were using this package installer, please instead refer to ourterraform-initextension.
Deprecations
- PostgreSQL 11 Support Removed: LocalStack for AWS 4.9 drops support for installing PostgreSQL 11. All services that previously used PostgreSQL 11 — including RDS, Redshift, and Timestream — now default to PostgreSQL 12. If you rely on PostgreSQL 11 in previous versions, ensure compatibility before upgrading.
- Debian Trixie / Python 3.13 Upgrade: Starting with LocalStack for AWS 4.9, the base image has been upgraded from Debian Bookworm / Python 3.11 to Debian Trixie / Python 3.13. This may impact custom extensions, init scripts, or packages that rely on specific OS packages or Python 3.11.
- Reinitialization Required for Existing Extensions: Due to the base image and Python upgrade, older volumes with installed extensions (using
localstack extension init) may not be detected. Users will need to reinitialize and reinstall these extensions after upgrading.
What's Changed
Exciting New Features 🎉
Enhancements
- opensearch: add new versions by @alexrashed in https://github.com/localstack/localstack/pull/13134
- ASF: implement CBOR parser and serializer by @bentsku in https://github.com/localstack/localstack/pull/13103
- ASF: implement RPC V2 CBOR parser and serializer by @bentsku in https://github.com/localstack/localstack/pull/13125
- unpin moto-ext, upgrade to 5.1.12.post22 by @alexrashed in https://github.com/localstack/localstack/pull/13147
- upgrade to Python 3.13 and Debian Trixie by @dfangl in https://github.com/localstack/localstack/pull/13037
- remove terraform tests and package by @alexrashed in https://github.com/localstack/localstack/pull/13154
- ASF: implement multi-protocol support by @bentsku in https://github.com/localstack/localstack/pull/13151
- ASF/CloudWatch: add support for multi-protocols by @bentsku in https://github.com/localstack/localstack/pull/13161
- ASF: handle error serialization for Query-compatible services by @bentsku in https://github.com/localstack/localstack/pull/13172
- ASF: validate full CloudWatch suite with multi-protocol by @bentsku in https://github.com/localstack/localstack/pull/13173
- feat(kinesis): implement resource policies CRUD operations (#12488) by @dmacvicar in https://github.com/localstack/localstack/pull/12961
- add label to enforce running k8s test by @cloutierMat in https://github.com/localstack/localstack/pull/13168
- refactor sqs deveoper api into its own module by @thrau in https://github.com/localstack/localstack/pull/13202
Other Changes
- CFn: ecr repo uses request account and region by @simonrw in https://github.com/localstack/localstack/pull/13156
- IaC: Add AWS operations and CFN resources catalog by @k-a-il in https://github.com/localstack/localstack/pull/13027
- CFn: implement list change sets for new provider by @simonrw in https://github.com/localstack/localstack/pull/13149
- update old references to venv paths by @alexrashed in https://github.com/localstack/localstack/pull/13163
- CLA: Fix typo by @segogoreng in https://github.com/localstack/localstack/pull/13176
- Update CODEOWNERS by @localstack-bot in https://github.com/localstack/localstack/pull/13178
- ASF: fix exception serialization for
smithy-rpc-v2-cborandjsonprotocol by @bentsku in https://github.com/localstack/localstack/pull/13180 - Add hot reload regression test cases for implicit behavior by @joe4dev in https://github.com/localstack/localstack/pull/13183
- Generate a dictionary of all publicly available AWS owned Cfn resources by @silv-io in https://github.com/localstack/localstack/pull/13150
- S3: fix DeleteObjectTagging on current object by @bentsku in https://github.com/localstack/localstack/pull/13174
- ASF: fix empty exception member serialization when required by @bentsku in https://github.com/localstack/localstack/pull/13186
- Fix DNS not supporting wildcard matching by @skyrpex in https://github.com/localstack/localstack/pull/13158
- switch to new labels workflow, add notes labels sync by @alexrashed in https://github.com/localstack/localstack/pull/13189
- CloudWatch: fix MA/MR for new snapshot test
test_put_metric_alarm_escape_characterby @bentsku in https://github.com/localstack/localstack/pull/13190 - CFn: handle resolving parameter names constructed in intrinsics by @simonrw in https://github.com/localstack/localstack/pull/13192
- CFn: correct stack ids by @simonrw in https://github.com/localstack/localstack/pull/13187
- CFN: fix for dynamic ref when value is a number by @pinzon in https://github.com/localstack/localstack/pull/13194
- SES: add snapshot test for describe_configuration_set with SNS destinations by @dmacvicar in https://github.com/localstack/localstack/pull/12814
- add sqs tests for ApproximateNumberOfMessagesNotVisible queue attribute by @thrau in https://github.com/localstack/localstack/pull/13197
- fix sqs dev endpoint to show invisible fifo messages correctly by @thrau in https://github.com/localstack/localstack/pull/13196
- update elasticsearch default version to 7.10.2 by @alexrashed in https://github.com/localstack/localstack/pull/13199
- fix pr-enforce-pr-labels workflow reference by @alexrashed in https://github.com/localstack/localstack/pull/13200
- APIGW: fix TestInvokeMethod 500 failures by @bentsku in https://github.com/localstack/localstack/pull/13207
- Upgrade dynamodb local to version 3.1 by @dfangl in https://github.com/localstack/localstack/pull/13210
- fix(kinesis): Add account and region context when using connect_to by @gregfurman in https://github.com/localstack/localstack/pull/13211
- CFn: fix CDK redeploy by @simonrw in https://github.com/localstack/localstack/pull/13191
- Cfn: Fix backslash processing for dynamic replacement values by @dfangl in https://github.com/localstack/localstack/pull/13212
New Contributors
- @segogoreng made their first contribution in https://github.com/localstack/localstack/pull/13176
- @skyrpex made their first contribution in https://github.com/localstack/localstack/pull/13158
Full Changelog: https://github.com/localstack/localstack/compare/v4.8.1...v4.9.0