Skip to content

Latest commit

 

History

History
395 lines (272 loc) · 14.7 KB

CHANGELOG.md

File metadata and controls

395 lines (272 loc) · 14.7 KB

Changelog

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.

API

The API consists of all public Kotlin types from com.atlassian.performance.tools.aws.api and its subpackages:

POM

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

Added

  • Stop depending on javax.activation:activation.

1.16.0 - 2024-06-10

Added

  • Add CanonicalAmiProvider.Builder.avoidUnattendedUpgrades for bumping imageName to Focal or higher.

Fixed

  • 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

Added

  • Add Aws.Builder.housekeeping

Fixed

  • Tag security groups atomically when created.
  • Respect AWS request size limits in TerminationBatchingEc2 and TerminationPollingEc2.
  • Extend ConcurrentHousekeeping instance timeout.

1.14.0 - 2024-01-04

Added

  • Add permissions for managing s3 bucket policies and lifecycle configurations.

Fixed

  • 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

Added

  • 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.

Fixed

  • Stop confusing Storages with common prefix. Fix JPERF-1272.

1.12.1 - 2023-07-24

Fixed

  • 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

Added

  • Add Aws.sts.
  • Add Aws.callerIdentity.
  • Document required IAM policy in resources/iam-policy.json.

Fixed

  • Make our implementations of AmiTiebreaker predictable even when AMI creation dates are equal. Fix JPERF-1153.

1.11.2 - 2023-03-07

Fixed

  • Fix apt lock failures caused by unattended upgrades on Ubuntu Focal. Fix JPERF-971.

1.11.1 - 2023-02-02

Fixed

  • Improve SshAmiMod logging for clarity when there are multiple AMIs created in the same run.

1.11.0 - 2023-02-01

Added

  • 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 from Aws.

1.10.2 - 2023-01-30

Fixed

1.10.1 - 2023-01-27 🐛🐛

Added

  • Inject AmiProvider into Aws to choose the default AMI.
  • Expose CanonicalAmiProvider to find Ubuntu AMIs by name.
  • Add SshAmiMod to modify existing AMIs.
  • Add AmiCache to SshAmiMod to reuse AMIs instead of recreating them every time.
  • Add Housekeeping interface, injectable via Aws.Builder.housekeeping.
  • Extract ConcurrentHousekeeping from Aws.cleanLeftovers.
  • Add housekeeping for AMIs.

Deprecated

  • Deprecate Aws.cleanLeftovers(Duration, Duration) in favor of ConcurrentHousekeeping.Builder.

INCOMPATIBILITY BUG

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.

1.10.0

This version was not published due to a bug. Use 1.10.1 instead.

1.9.1 - 2023-01-24

Fixed

  • Upgrade Ubuntu image to 20.04 LTS (Focal Fossa). Unblocks JPERF-917.

Added

  • Extend AWSCredentialsProviderChain with STSAssumeRoleWithWebIdentitySessionCredentialsProvider to enable using OIDC token. Resolves [JPERF-916].

1.9.0 - 2022-08-22

Added

  • Extract default AMI ID resolution logic from Aws to CanonicalImageIdByNameResolver, so that it's easy to select different AMI by lib consumers.

Security

  • 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.

Fixed

  • 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

Security

  • Fix a security issue of log4j. Resolves JPERF-771.

Fixed

  • Capture failure reason of stack creation as part of StackFormula. Resolves JPERF-494.

1.8.1 - 2022-02-16

Fixed

  • Changed resource_owner default label to point to current Atlassian JPT maintainer

1.8.0 - 2021-10-27

Added

  • SshInstance now contains AWS SDK Instance 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

Fixed

  • Changed resource_owner default label to point to current Atlassian JPT maintainer

1.7.0 - 2021-04-06

Added

  • Enable to choose specific AWS IAM permissionsBoundaryPolicy for storage access.

1.6.2 - 2021-03-26

Security

  • Apply good practices for S3 permissions. Fix JPERF-728.

Fixed

  • Pick a default instance type in AwaitingEc2.

1.6.1 - 2020-07-08

Fixed

  • Upgrade AWS SDK to 1.11.817.

1.6.0 - 2020-03-25

Added

  • 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

Added

  • Allow customisation of resources' release timeout. Resolves JPERF-419.

1.4.0 - 2019-03-22

Added

  • A Builder for Aws.
  • Allow avoiding problematic availability zones. Fix JPERF-427.

Deprecated

  • Deprecate last Aws constructor in favour of Aws.Builder.

1.3.4 - 2019-02-07

Fixed

1.3.3 - 2019-01-16

Fixed

  • Fix escape special characters when creating a URI for Storage. Resolve JPERF-358.

1.3.2 - 2019-01-10

Fixed

  • Stop detaching the policies from all stacks. Resolve JPERF-317.
  • Block until both User and Dependency are released when releasing DependentResources. Resolve JPERF-337.

1.3.1 - 2018-12-14

Fixed

  • Do not disable CloudFormation stack rollback. Resolve JPERF-294.

1.3.0 - 2018-11-21

Added

  • Support ssh:2

1.2.0 - 2018-10-26

Added

  • Fail or warn users if they didn't explicitly declare they took care of AWS housekeeping. Mitigate JPERF-235.

Deprecated

  • Deprecate the compatibility Aws constructor, which only warns users instead of failing fast.

1.1.1 - 2018-10-09

Fixed

  • Have more patience for stack cleanup. Fix JPERF-86.
  • Add InstanceType.C5d9xlarge. Unblock JPERF-186.

1.1.0 - 2018-09-18

Added

  • Add TextCapacityMediator(region: Regions).
  • Inject detectionTimeout and pollingTimeout into StackFormula.
  • Expose the behavior of StackFormula.

Fixed

  • Bump AMI image version and improve error message. Fix JPERF-103.

Deprecated

  • Deprecate TextCapacityMediator().
  • Deprecate BatchingCloudformation as public API.

Fixed

  • Time out when detecting existing stacks matching a StackFormula instead of hanging indefinitely. Fix JPERF-60.

1.0.0 - 2018-09-04

Changed

  • Define public API for the module.
  • Use stable APT APIs.
  • Opt in for the Nanny.

Fixed

  • Add this changelog.

0.0.3 - 2018-08-29

Fixed

  • Remove only stacks which "lifespan" tag.
  • Don't send requests to AWS while creating Aws object.

0.0.2 - 2018-08-29

Added

  • License.

0.0.1 - 2018-08-22

Added