From e69afacacd948914fc4e4afc0d9dd2e2e9a5027c Mon Sep 17 00:00:00 2001 From: Maciej Kwidzinski Date: Mon, 10 Jun 2024 15:16:03 +0200 Subject: [PATCH] Unpin Ubuntu Focal version by default --- CHANGELOG.md | 4 ++-- .../tools/aws/api/CanonicalImageIdByNameResolver.kt | 10 +++------- .../tools/aws/api/ami/CanonicalAmiProvider.kt | 2 +- 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 4cef88b..77d75f2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,8 +27,8 @@ Dropping a requirement of a major version of a dependency is a new contract. - 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`. +- Unpin Ubuntu Focal version in `CanonicalAmiProvider.Builder` by default. + You can still pin a specific release date, e.g. `imageName("ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20240531")` ## [1.15.0] - 2024-01-23 [1.15.0]: https://github.com/atlassian-labs/aws-resources/compare/release-1.14.0...release-1.15.0 diff --git a/src/main/kotlin/com/atlassian/performance/tools/aws/api/CanonicalImageIdByNameResolver.kt b/src/main/kotlin/com/atlassian/performance/tools/aws/api/CanonicalImageIdByNameResolver.kt index 37d2792..4d30721 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/aws/api/CanonicalImageIdByNameResolver.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/aws/api/CanonicalImageIdByNameResolver.kt @@ -21,14 +21,10 @@ class CanonicalImageIdByNameResolver private constructor( ) ) .images + .sortedByDescending { it.creationDate } .map { it.imageId } - .let { - when { - it.isEmpty() -> throw Exception("Failed to find image $imageName in $region") - it.size > 1 -> throw Exception("More than one image found with name $imageName in declared region $region. Selecting any of them automatically could create a security risk, so we can't proceed") - else -> it.first() - } - } + .firstOrNull() + ?: throw Exception("Failed to find image containing $imageName in $region") class Builder( private val ec2: AmazonEC2 diff --git a/src/main/kotlin/com/atlassian/performance/tools/aws/api/ami/CanonicalAmiProvider.kt b/src/main/kotlin/com/atlassian/performance/tools/aws/api/ami/CanonicalAmiProvider.kt index fe37fc4..06ecfb4 100644 --- a/src/main/kotlin/com/atlassian/performance/tools/aws/api/ami/CanonicalAmiProvider.kt +++ b/src/main/kotlin/com/atlassian/performance/tools/aws/api/ami/CanonicalAmiProvider.kt @@ -32,7 +32,7 @@ class CanonicalAmiProvider private constructor( } class Builder { - private val focal = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server-20240531" + private val focal = "ubuntu/images/hvm-ssd/ubuntu-focal-20.04-amd64-server" private var imageName = focal /**