All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
The API consists of all public Kotlin types from com.atlassian.performance.tools.aws.api
and its subpackages:
- source compatibility
- binary compatibility
- behavioral compatibility with behavioral contracts expressed via Javadoc
Changing the license is breaking a contract. Adding a requirement of a major version of a dependency is breaking a contract. Dropping a requirement of a major version of a dependency is a new contract.
1.17.0 - 2024-06-14
- Stop depending on
javax.activation:activation
.
1.16.0 - 2024-06-10
- Add
CanonicalAmiProvider.Builder.avoidUnattendedUpgrades
for bumpingimageName
to Focal or higher.
- Bump Ubuntu Focal AMI to
ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20240531
. The previous one was 2 years old and disappeared:ubuntu-focal-20.04-amd64-server-20220610
.
1.15.0 - 2024-01-23
- Add
Aws.Builder.housekeeping
- Tag security groups atomically when created.
- Respect AWS request size limits in
TerminationBatchingEc2
andTerminationPollingEc2
. - Extend
ConcurrentHousekeeping
instance timeout.
1.14.0 - 2024-01-04
- Add permissions for managing s3 bucket policies and lifecycle configurations.
- Add missing
iam:GetRole
permission. You have to update the policy manually. Fix JPERF-1407. - Reduce pressure on CloudFormation when cleaning long lists of expired stacks. Help JPERF-1332.
- Clean up EC2 security groups before CloudFormation stacks. Fix JPERF-1208.
- Fix housekeeping fail logging.
1.13.0 - 2023-08-14
- Add
Storage.hasContent
.
1.12.2 - 2023-08-14
Accidentally released Storage.hasContent
without SemVer minor release.
Use 1.13.0 instead if you want to rely on the new API.
- Stop confusing
Storage
s with common prefix. Fix JPERF-1272.
1.12.1 - 2023-07-24
- Print EC2 instance ID in "failed to release itself" error message.
- Increase cleanup timeout for
Ec2Instance
. Fix JPERF-1216.
1.12.0 - 2023-06-06
- Add
Aws.sts
. - Add
Aws.callerIdentity
. - Document required IAM policy in
resources/iam-policy.json
.
- Make our implementations of
AmiTiebreaker
predictable even when AMI creation dates are equal. Fix JPERF-1153.
1.11.2 - 2023-03-07
- Fix apt lock failures caused by unattended upgrades on Ubuntu Focal. Fix JPERF-971.
1.11.1 - 2023-02-02
- Improve
SshAmiMod
logging for clarity when there are multiple AMIs created in the same run.
1.11.0 - 2023-02-01
- Add logging ssh access in
AwaitingEc2
. JPERF-954. - Grant default permissions to EC2 in
SshAmiMod
. Resolve JPERF-932. - Add ability to pass a list of managed policies arns to
Aws
. Progress on JPERF-932. - Add copying builder to
Aws
. - Expose
AWSCredentialsProvider
fromAws
.
1.10.2 - 2023-01-30
- Remove incompatible dependency from POM. Fix JPERF-944. Progress on JPERF-466.
- Restore Kotlin metadata compatibility. Fix JPERF-945.
1.10.1 - 2023-01-27 🐛🐛
- Inject
AmiProvider
intoAws
to choose the default AMI. - Expose
CanonicalAmiProvider
to find Ubuntu AMIs by name. - Add
SshAmiMod
to modify existing AMIs. - Add
AmiCache
toSshAmiMod
to reuse AMIs instead of recreating them every time. - Add
Housekeeping
interface, injectable viaAws.Builder.housekeeping
. - Extract
ConcurrentHousekeeping
fromAws.cleanLeftovers
. - Add housekeeping for AMIs.
- Deprecate
Aws.cleanLeftovers(Duration, Duration)
in favor ofConcurrentHousekeeping.Builder
.
This version introduced two incompatibilities:
- Accidentally declare an incompatible dependency on
kotlin-stdlib-jdk8
: JPERF-944. - Bump Kotlin language to an incompatible language version 1.4 (from 1.1): JPERF-945.
This version was not published due to a bug. Use 1.10.1 instead.
1.9.1 - 2023-01-24
- Upgrade Ubuntu image to 20.04 LTS (Focal Fossa). Unblocks JPERF-917.
- Extend
AWSCredentialsProviderChain
withSTSAssumeRoleWithWebIdentitySessionCredentialsProvider
to enable using OIDC token. Resolves [JPERF-916].
1.9.0 - 2022-08-22
- Extract default AMI ID resolution logic from
Aws
toCanonicalImageIdByNameResolver
, so that it's easy to select different AMI by lib consumers.
- Filter default AMI resolved by
Aws
(Ubuntu) by Canonical's owner ID. Resolves JPERF-822. - Fail if more than one default AMI is resolved by
Aws
.
- Update default AMI resolved by
Aws
to one that is still available in all supported AWS regions. Resolves JPERF-826.
1.8.2 - 2022-05-24
- Fix a security issue of log4j. Resolves JPERF-771.
- Capture failure reason of stack creation as part of
StackFormula
. Resolves JPERF-494.
1.8.1 - 2022-02-16
- Changed resource_owner default label to point to current Atlassian JPT maintainer
1.8.0 - 2021-10-27
SshInstance
now contains AWS SDKInstance
object, which includes i.a. information about private IP address. Unblocks JPERF-730.ProvisionedStack
now allows to find its security groups based on provided logical id. Unblocks JPERF-730.
1.7.1 - 2021-09-28
- Changed resource_owner default label to point to current Atlassian JPT maintainer
1.7.0 - 2021-04-06
- Enable to choose specific AWS IAM permissionsBoundaryPolicy for storage access.
1.6.2 - 2021-03-26
- Apply good practices for S3 permissions. Fix JPERF-728.
- Pick a default instance type in
AwaitingEc2
.
1.6.1 - 2020-07-08
- Upgrade AWS SDK to 1.11.817.
1.6.0 - 2020-03-25
- Instance initiated shutdown on instances started with AwaitingEc2 will now terminate the EC2 instance instead of stopping it. Unblocks JPERF-235.
1.5.0 - 2019-05-02
- Allow customisation of resources' release timeout. Resolves JPERF-419.
1.4.0 - 2019-03-22
- A Builder for
Aws
. - Allow avoiding problematic availability zones. Fix JPERF-427.
- Deprecate last
Aws
constructor in favour ofAws.Builder
.
1.3.4 - 2019-02-07
- Retry S3 object downloads. Fix JPERF-382.
1.3.3 - 2019-01-16
- Fix escape special characters when creating a URI for
Storage
. Resolve JPERF-358.
1.3.2 - 2019-01-10
- Stop detaching the policies from all stacks. Resolve JPERF-317.
- Block until both
User
andDependency
are released when releasingDependentResources
. Resolve JPERF-337.
1.3.1 - 2018-12-14
- Do not disable CloudFormation stack rollback. Resolve JPERF-294.
1.3.0 - 2018-11-21
- Support
ssh:2
1.2.0 - 2018-10-26
- Fail or warn users if they didn't explicitly declare they took care of AWS housekeeping. Mitigate JPERF-235.
- Deprecate the compatibility
Aws
constructor, which only warns users instead of failing fast.
1.1.1 - 2018-10-09
1.1.0 - 2018-09-18
- Add
TextCapacityMediator(region: Regions)
. - Inject
detectionTimeout
andpollingTimeout
intoStackFormula
. - Expose the behavior of
StackFormula
.
- Bump AMI image version and improve error message. Fix JPERF-103.
- Deprecate
TextCapacityMediator()
. - Deprecate
BatchingCloudformation
as public API.
- Time out when detecting existing stacks matching a
StackFormula
instead of hanging indefinitely. Fix JPERF-60.
1.0.0 - 2018-09-04
- Define public API for the module.
- Use stable APT APIs.
- Opt in for the Nanny.
- Add this changelog.
0.0.3 - 2018-08-29
- Remove only stacks which "lifespan" tag.
- Don't send requests to AWS while creating Aws object.
0.0.2 - 2018-08-29
- License.
0.0.1 - 2018-08-22
- Migrate aws-resources from JPT submodule.
- Add README.md.
- Configure Bitbucket Pipelines.