v4.10.0
Summary
LocalStack 4.10 introduces S3 Tables with Apache Iceberg support and major EKS enhancements, including IRSA, Pod Identity, and automatic endpoint injection. The release expands AWS parity across DynamoDB, EventBridge Pipes, ECS FireLens, SESv2, and IAM, while modernising the stack by dropping Python 3.9 and removing legacy providers.
AWS Features
- LocalStack now supports S3 Tables with full Apache Iceberg REST API support, enabling management of tabular data stored in S3. Refer to our documentation to learn more. (๐ ultimate)
Enhancements
- Added support for Python 3.14 in the LocalStack CLI.
- Added support for the
aws:RequestedRegionandaws:PrincipalArncondition variables in IAM. - Added support for inline templating in SESv2
SendEmailandSendBulkEmailoperations. (๐ base) - Implemented support for the
DescribeContributorInsightsAPI in DynamoDB, enabling retrieval of contributor insights details for tables. - Added support for wildcards in EventBridge Pipes input transformations, enabling patterns like
<$.body[*]>for improved template flexibility. (๐ ultimate) - Added validation for EventBridge Pipes input templates, ensuring malformed or empty templates are handled consistently with AWS behavior. (๐ ultimate)
- Enabled ECS FireLens support for custom configurations, allowing Fluent Bit config files to be loaded from S3 or bundled directly into container images. (๐ ultimate)
- Added support for the DynamoDB
WarmThroughputparameters, improving parity with AWS. - LocalStackโs EKS provider now includes the following enhancements: (๐ ultimate)
- Added support for IAM Roles for Service Accounts (IRSA), allowing EKS pods to automatically assume IAM roles and retrieve AWS credentials through the standard SDK credential chain.
- Added support for EKS Pod Identity, including the
CreatePodIdentityAssociationAPI and a mock implementation of the EKS Auth service, improving compatibility with the latest AWS authentication model. - Introduced automatic injection of endpoint URLs (
AWS_ENDPOINT_URLandAWS_ENDPOINT_URL_S3) into EKS pods via the existing credential webhook, ensuring SDKs connect directly to LocalStack without manual configuration. - Improved EKS cluster access management to fully respect the
bootstrapClusterCreatorAdminPermissionsflag and automatically create default access entries for the EKS service role.
Deprecations
- Dropped Python 3.9 support, raising the minimum supported version to 3.10.
- Removed the legacy Batch provider, following the newer provider, which is now the default. (๐ ultimate)
- Removed support for Kinesis Data Analytics for SQL Applications service, ahead of AWS's sunset date of 2026-01-27.
- Removed support for Managed Service for Apache Flink (MSF) 'legacy' provider. Users should migrate to the new emulated provider, which has been the default since v4.1.0. (๐ ultimate)
What's Changed
Exciting New Features ๐
- DynamoDB: Implement DescribeContributorInsights by @aleslash in https://github.com/localstack/localstack/pull/13220
- Sns/v2 topic migration by @baermat in https://github.com/localstack/localstack/pull/13205
- Correct casing for x-amzn-RequestId header by @dfangl in https://github.com/localstack/localstack/pull/13230
- drop python 3.9 and add tests for 3.14 in the cli by @alexrashed in https://github.com/localstack/localstack/pull/13247
- Sns/v2 apply subscribe changes by @baermat in https://github.com/localstack/localstack/pull/13226
- Sns/v2 sms attribute operations by @baermat in https://github.com/localstack/localstack/pull/13255
- SNS: V2 tagging by @baermat in https://github.com/localstack/localstack/pull/13254
- chore(lambda/rie): Update RIE to v1.36.0-pre by @gregfurman in https://github.com/localstack/localstack/pull/13298
- Add option to allow ':' in ARNs by @baermat in https://github.com/localstack/localstack/pull/13296
- feat(utils/sync): Add sync.Once utility functions by @gregfurman in https://github.com/localstack/localstack/pull/13284
- Sns:v2 platform application crud by @baermat in https://github.com/localstack/localstack/pull/13312
Other Changes
- dependabot: update labels and cleanup config by @alexrashed in https://github.com/localstack/localstack/pull/13225
- IaC: Update CatalogPlugin class and common catalog plugins logic by @k-a-il in https://github.com/localstack/localstack/pull/13184
- Skip test test_cfn_apigateway_swagger_import when running in K8s by @nik-localstack in https://github.com/localstack/localstack/pull/13229
- Opensearch: Ignore SSL validation for ES plugin test by @nik-localstack in https://github.com/localstack/localstack/pull/13234
- CFn: fix number parameter types by @simonrw in https://github.com/localstack/localstack/pull/13231
- CFn: correctly skip conditionally disabled resources by @simonrw in https://github.com/localstack/localstack/pull/13238
- [Testing] Update test durations by @localstack-bot in https://github.com/localstack/localstack/pull/13221
- SNS: Fix multi-region test by @baermat in https://github.com/localstack/localstack/pull/13240
- APIGW: fix Integration connectionId not being returned by @bentsku in https://github.com/localstack/localstack/pull/13233
- CFN: add support for passing objects in GetAtt by @pinzon in https://github.com/localstack/localstack/pull/13206
- CFn: handle get_template_summary of failed stack deploy by @simonrw in https://github.com/localstack/localstack/pull/13239
- CFn: handle invalid GetAtt validation by @simonrw in https://github.com/localstack/localstack/pull/13241
- Fix Event Bridge input transformation of booleans by @carole-lavillonniere in https://github.com/localstack/localstack/pull/13236
- Fix visibility check in _pre_delete_checks to use is_visible attribute by @xhoantran in https://github.com/localstack/localstack/pull/13223
- Updating the test duration workflow by @ArthurAkh in https://github.com/localstack/localstack/pull/13170
- Integrate Moto exception translation into handler chain by @viren-nadkarni in https://github.com/localstack/localstack/pull/13153
- CFN: add more validations to intrinsic FnEquals by @pinzon in https://github.com/localstack/localstack/pull/13217
- Allow storing test metrics in local filesystem of LocalStack container by @nik-localstack in https://github.com/localstack/localstack/pull/13188
- DynamoDB: Add support for WarmThroughput parameters by @viren-nadkarni in https://github.com/localstack/localstack/pull/13235
- CFN: add validation to FnSplit by @pinzon in https://github.com/localstack/localstack/pull/13244
- CFN: Fix duplicated stack issue by @pinzon in https://github.com/localstack/localstack/pull/13249
- DDB: regenerate snapshots for WarmThroughput by @bentsku in https://github.com/localstack/localstack/pull/13257
- fix ASF update linting removing unused import across the codebase by @bentsku in https://github.com/localstack/localstack/pull/13263
New Contributors
- @aleslash made their first contribution in https://github.com/localstack/localstack/pull/13220
- @xhoantran made their first contribution in https://github.com/localstack/localstack/pull/13223
Full Changelog: https://github.com/localstack/localstack/compare/v4.9.2...v4.10.0