Skip to content

Commit ebc7fe0

Browse files
committed
chore: Use built-in auto-versioning
EC2 Image Builder added support for (auto-versioning)[https://aws.amazon.com/about-aws/whats-new/2025/11/ec2-image-builder-auto-versioning-infrastructure/]. We can get rid of our own custom versioner. See also #804
1 parent 5142d2a commit ebc7fe0

17 files changed

Lines changed: 187 additions & 3026 deletions

.eslintrc.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.gitattributes

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.gitignore

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.projen/files.json

Lines changed: 0 additions & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.projen/tasks.json

Lines changed: 0 additions & 21 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 0 additions & 2 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/image-builders/aws-image-builder/ami.ts

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ import * as cdk from 'aws-cdk-lib';
22
import { aws_imagebuilder as imagebuilder } from 'aws-cdk-lib';
33
import { Construct } from 'constructs';
44
import { ImageBuilderComponent } from './builder';
5-
import { ImageBuilderObjectBase } from './common';
65
import { amiRootDevice, Architecture, Os } from '../../providers';
76
import { uniqueImageBuilderName } from '../common';
87

@@ -48,7 +47,7 @@ interface AmiRecipeProperties {
4847
*
4948
* @internal
5049
*/
51-
export class AmiRecipe extends ImageBuilderObjectBase {
50+
export class AmiRecipe extends cdk.Resource {
5251
public readonly arn: string;
5352
public readonly name: string;
5453
public readonly version: string;
@@ -73,13 +72,6 @@ export class AmiRecipe extends ImageBuilderObjectBase {
7372
] : undefined;
7473

7574
this.name = uniqueImageBuilderName(this);
76-
this.version = this.generateVersion('ImageRecipe', this.name, {
77-
platform: props.platform,
78-
components,
79-
parentAmi: props.baseAmi,
80-
tags: props.tags,
81-
blockDeviceMappings,
82-
});
8375

8476
let workingDirectory;
8577
if (props.platform == 'Linux') {
@@ -92,7 +84,7 @@ export class AmiRecipe extends ImageBuilderObjectBase {
9284

9385
const recipe = new imagebuilder.CfnImageRecipe(this, 'Recipe', {
9486
name: this.name,
95-
version: this.version,
87+
version: '1.0.x',
9688
parentImage: props.baseAmi,
9789
components,
9890
workingDirectory,
@@ -101,6 +93,7 @@ export class AmiRecipe extends ImageBuilderObjectBase {
10193
});
10294

10395
this.arn = recipe.attrArn;
96+
this.version = recipe.getAtt('Version', cdk.ResolutionTypeHint.STRING).toString();
10497
}
10598
}
10699

src/image-builders/aws-image-builder/builder.ts

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ import { TagMutability } from 'aws-cdk-lib/aws-ecr';
2020
import { RetentionDays } from 'aws-cdk-lib/aws-logs';
2121
import { Construct, IConstruct } from 'constructs';
2222
import { AmiRecipe, defaultBaseAmi } from './ami';
23-
import { ImageBuilderObjectBase } from './common';
2423
import { ContainerRecipe, defaultBaseDockerImage } from './container';
2524
import { DeleteResourcesFunction } from './delete-resources-function';
2625
import { DeleteResourcesProps } from './delete-resources.lambda';
@@ -164,7 +163,7 @@ export interface ImageBuilderComponentProperties {
164163
*
165164
* @deprecated Use `RunnerImageComponent` instead as this be internal soon.
166165
*/
167-
export class ImageBuilderComponent extends ImageBuilderObjectBase {
166+
export class ImageBuilderComponent extends cdk.Resource {
168167
/**
169168
* Component ARN.
170169
*/
@@ -263,11 +262,7 @@ export class ImageBuilderComponent extends ImageBuilderObjectBase {
263262
name: name,
264263
description: props.description,
265264
platform: props.platform,
266-
version: this.generateVersion('Component', name, {
267-
platform: props.platform,
268-
data,
269-
description: props.description,
270-
}),
265+
version: '1.0.0',
271266
data: JSON.stringify(data),
272267
});
273268

src/image-builders/aws-image-builder/common.ts

Lines changed: 0 additions & 48 deletions
This file was deleted.

src/image-builders/aws-image-builder/container.ts

Lines changed: 4 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1+
import * as cdk from 'aws-cdk-lib';
12
import { aws_ecr as ecr, aws_imagebuilder as imagebuilder } from 'aws-cdk-lib';
23
import { Construct } from 'constructs';
34
import { ImageBuilderComponent } from './builder';
4-
import { ImageBuilderObjectBase } from './common';
55
import { Os } from '../../providers';
66
import { uniqueImageBuilderName } from '../common';
77

@@ -55,7 +55,7 @@ export interface ContainerRecipeProperties {
5555
*
5656
* @internal
5757
*/
58-
export class ContainerRecipe extends ImageBuilderObjectBase {
58+
export class ContainerRecipe extends cdk.Resource {
5959
public readonly arn: string;
6060
public readonly name: string;
6161
public readonly version: string;
@@ -70,16 +70,10 @@ export class ContainerRecipe extends ImageBuilderObjectBase {
7070
});
7171

7272
this.name = uniqueImageBuilderName(this);
73-
this.version = this.generateVersion('ContainerRecipe', this.name, {
74-
platform: props.platform,
75-
components,
76-
dockerfileTemplate: props.dockerfileTemplate,
77-
tags: props.tags,
78-
});
7973

8074
const recipe = new imagebuilder.CfnContainerRecipe(this, 'Recipe', {
8175
name: this.name,
82-
version: this.version,
76+
version: '1.0.x',
8377
parentImage: props.parentImage,
8478
platformOverride: props.platform == 'Linux' ? 'Linux' : undefined,
8579
components,
@@ -93,6 +87,7 @@ export class ContainerRecipe extends ImageBuilderObjectBase {
9387
});
9488

9589
this.arn = recipe.attrArn;
90+
this.version = recipe.getAtt('Version', cdk.ResolutionTypeHint.STRING).toString();
9691
}
9792
}
9893

0 commit comments

Comments
 (0)