@cloudsnorkel/cdk-github-runners 0.9.4 → 0.9.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.gitattributes +5 -3
- package/.jsii +332 -284
- package/API.md +55 -19
- package/README.md +135 -65
- package/assets/{providers/image-builders → image-builders}/aws-image-builder/delete-ami.lambda/index.js +2 -2
- package/assets/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds.lambda/index.js +1 -1
- package/assets/image-builders/aws-image-builder/reaper.lambda/index.js +163 -0
- package/assets/{providers/image-builders → image-builders}/aws-image-builder/versioner.lambda/index.js +2 -2
- package/cdk.json +10 -0
- package/lib/access.js +1 -1
- package/lib/image-builders/api.js +47 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/ami.d.ts +2 -3
- package/lib/image-builders/aws-image-builder/ami.js +93 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/builder.d.ts +10 -3
- package/lib/image-builders/aws-image-builder/builder.js +568 -0
- package/lib/image-builders/aws-image-builder/common.js +46 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/container.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/container.js +63 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/delete-ami-function.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/delete-ami-function.js +23 -0
- package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +87 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/ami.d.ts +4 -4
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +240 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/common.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/common.js +144 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/container.d.ts +3 -3
- package/lib/image-builders/aws-image-builder/deprecated/container.js +222 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.js +1 -1
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/linux-components.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +172 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/windows-components.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +126 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds-function.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/filter-failed-builds-function.js +23 -0
- package/lib/image-builders/aws-image-builder/filter-failed-builds.lambda.js +18 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.js +1 -1
- package/lib/image-builders/aws-image-builder/reaper-function.d.ts +13 -0
- package/lib/image-builders/aws-image-builder/reaper-function.js +23 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.d.ts +1 -0
- package/lib/image-builders/aws-image-builder/reaper.lambda.js +149 -0
- package/lib/{providers/image-builders → image-builders}/aws-image-builder/versioner-function.d.ts +1 -1
- package/lib/image-builders/aws-image-builder/versioner-function.js +23 -0
- package/lib/image-builders/aws-image-builder/versioner.lambda.js +96 -0
- package/lib/{providers/image-builders → image-builders}/codebuild-deprecated.d.ts +5 -5
- package/lib/image-builders/codebuild-deprecated.js +373 -0
- package/lib/{providers/image-builders → image-builders}/codebuild.d.ts +2 -2
- package/lib/image-builders/codebuild.js +289 -0
- package/lib/{providers/image-builders → image-builders}/common.d.ts +6 -4
- package/lib/{providers/image-builders → image-builders}/common.js +1 -1
- package/lib/{providers/image-builders → image-builders}/components.d.ts +8 -2
- package/lib/image-builders/components.js +568 -0
- package/lib/{providers/image-builders → image-builders}/index.js +1 -1
- package/lib/{providers/image-builders → image-builders}/static.d.ts +1 -1
- package/lib/image-builders/static.js +58 -0
- package/lib/providers/codebuild.d.ts +1 -1
- package/lib/providers/codebuild.js +4 -4
- package/lib/providers/common.js +3 -3
- package/lib/providers/ec2.d.ts +2 -2
- package/lib/providers/ec2.js +4 -4
- package/lib/providers/ecs.d.ts +1 -1
- package/lib/providers/ecs.js +3 -3
- package/lib/providers/fargate.d.ts +1 -1
- package/lib/providers/fargate.js +4 -4
- package/lib/providers/index.d.ts +1 -1
- package/lib/providers/index.js +2 -2
- package/lib/providers/lambda.d.ts +1 -1
- package/lib/providers/lambda.js +4 -4
- package/lib/runner.d.ts +3 -3
- package/lib/runner.js +5 -5
- package/lib/secrets.js +1 -1
- package/package.json +12 -10
- package/lib/providers/image-builders/api.js +0 -47
- package/lib/providers/image-builders/aws-image-builder/ami.js +0 -81
- package/lib/providers/image-builders/aws-image-builder/builder.js +0 -520
- package/lib/providers/image-builders/aws-image-builder/common.js +0 -46
- package/lib/providers/image-builders/aws-image-builder/container.js +0 -63
- package/lib/providers/image-builders/aws-image-builder/delete-ami-function.js +0 -23
- package/lib/providers/image-builders/aws-image-builder/delete-ami.lambda.js +0 -87
- package/lib/providers/image-builders/aws-image-builder/deprecated/ami.js +0 -240
- package/lib/providers/image-builders/aws-image-builder/deprecated/common.js +0 -144
- package/lib/providers/image-builders/aws-image-builder/deprecated/container.js +0 -222
- package/lib/providers/image-builders/aws-image-builder/deprecated/linux-components.js +0 -172
- package/lib/providers/image-builders/aws-image-builder/deprecated/windows-components.js +0 -129
- package/lib/providers/image-builders/aws-image-builder/filter-failed-builds-function.js +0 -23
- package/lib/providers/image-builders/aws-image-builder/filter-failed-builds.lambda.js +0 -18
- package/lib/providers/image-builders/aws-image-builder/versioner-function.js +0 -23
- package/lib/providers/image-builders/aws-image-builder/versioner.lambda.js +0 -96
- package/lib/providers/image-builders/codebuild-deprecated.js +0 -373
- package/lib/providers/image-builders/codebuild.js +0 -287
- package/lib/providers/image-builders/components.js +0 -535
- package/lib/providers/image-builders/static.js +0 -58
- /package/lib/{providers/image-builders → image-builders}/api.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/common.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/delete-ami.lambda.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/filter-failed-builds.lambda.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/aws-image-builder/versioner.lambda.d.ts +0 -0
- /package/lib/{providers/image-builders → image-builders}/index.d.ts +0 -0
|
@@ -2432,7 +2432,7 @@ var require_semver2 = __commonJS({
|
|
|
2432
2432
|
}
|
|
2433
2433
|
});
|
|
2434
2434
|
|
|
2435
|
-
// src/
|
|
2435
|
+
// src/image-builders/aws-image-builder/versioner.lambda.ts
|
|
2436
2436
|
var versioner_lambda_exports = {};
|
|
2437
2437
|
__export(versioner_lambda_exports, {
|
|
2438
2438
|
handler: () => handler
|
|
@@ -2478,7 +2478,7 @@ async function customResourceRespond(event, responseStatus, reason, physicalReso
|
|
|
2478
2478
|
});
|
|
2479
2479
|
}
|
|
2480
2480
|
|
|
2481
|
-
// src/
|
|
2481
|
+
// src/image-builders/aws-image-builder/versioner.lambda.ts
|
|
2482
2482
|
var ib = new AWS2.Imagebuilder();
|
|
2483
2483
|
async function handler(event, context) {
|
|
2484
2484
|
console.log(JSON.stringify({ ...event, ResponseURL: "..." }));
|
package/cdk.json
ADDED
package/lib/access.js
CHANGED
|
@@ -56,7 +56,7 @@ class LambdaAccess {
|
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
_a = JSII_RTTI_SYMBOL_1;
|
|
59
|
-
LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.9.
|
|
59
|
+
LambdaAccess[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.LambdaAccess", version: "0.9.6" };
|
|
60
60
|
exports.LambdaAccess = LambdaAccess;
|
|
61
61
|
/**
|
|
62
62
|
* @internal
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var _a;
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
exports.RunnerImageBuilder = void 0;
|
|
5
|
+
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
|
|
6
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
7
|
+
const aws_image_builder_1 = require("./aws-image-builder");
|
|
8
|
+
const codebuild_1 = require("./codebuild");
|
|
9
|
+
const common_1 = require("./common");
|
|
10
|
+
const common_2 = require("../providers/common");
|
|
11
|
+
/**
|
|
12
|
+
* GitHub Runner image builder. Builds a Docker image or AMI with GitHub Runner and other requirements installed.
|
|
13
|
+
*
|
|
14
|
+
* Images can be customized before passed into the provider by adding or removing components to be installed.
|
|
15
|
+
*
|
|
16
|
+
* Images are rebuilt every week by default to ensure that the latest security patches are applied.
|
|
17
|
+
*/
|
|
18
|
+
class RunnerImageBuilder extends common_1.RunnerImageBuilderBase {
|
|
19
|
+
/**
|
|
20
|
+
* Create a new image builder based on the provided properties. The implementation will differ based on the OS, architecture, and requested builder type.
|
|
21
|
+
*/
|
|
22
|
+
static new(scope, id, props) {
|
|
23
|
+
if (props?.components && props.runnerVersion) {
|
|
24
|
+
aws_cdk_lib_1.Annotations.of(scope).addWarning('runnerVersion is ignored when components are specified. The runner version will be determined by the components.');
|
|
25
|
+
}
|
|
26
|
+
if (props?.builderType === common_1.RunnerImageBuilderType.CODE_BUILD) {
|
|
27
|
+
return new codebuild_1.CodeBuildRunnerImageBuilder(scope, id, props);
|
|
28
|
+
}
|
|
29
|
+
else if (props?.builderType === common_1.RunnerImageBuilderType.AWS_IMAGE_BUILDER) {
|
|
30
|
+
return new aws_image_builder_1.AwsImageBuilderRunnerImageBuilder(scope, id, props);
|
|
31
|
+
}
|
|
32
|
+
const os = props?.os ?? common_2.Os.LINUX_UBUNTU;
|
|
33
|
+
if (os.is(common_2.Os.LINUX_UBUNTU) || os.is(common_2.Os.LINUX_AMAZON_2)) {
|
|
34
|
+
return new codebuild_1.CodeBuildRunnerImageBuilder(scope, id, props);
|
|
35
|
+
}
|
|
36
|
+
else if (os.is(common_2.Os.WINDOWS)) {
|
|
37
|
+
return new aws_image_builder_1.AwsImageBuilderRunnerImageBuilder(scope, id, props);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
throw new Error(`Unable to find runner image builder implementation for ${os.name}`);
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
_a = JSII_RTTI_SYMBOL_1;
|
|
45
|
+
RunnerImageBuilder[_a] = { fqn: "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder", version: "0.9.6" };
|
|
46
|
+
exports.RunnerImageBuilder = RunnerImageBuilder;
|
|
47
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltYWdlLWJ1aWxkZXJzL2FwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDZDQUEwQztBQUUxQywyREFBd0U7QUFDeEUsMkNBQTBEO0FBQzFELHFDQUFtRztBQUNuRyxnREFBeUM7QUFFekM7Ozs7OztHQU1HO0FBQ0gsTUFBc0Isa0JBQW1CLFNBQVEsK0JBQXNCO0lBQ3JFOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUErQjtRQUN0RSxJQUFJLEtBQUssRUFBRSxVQUFVLElBQUksS0FBSyxDQUFDLGFBQWEsRUFBRTtZQUM1Qyx5QkFBVyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxVQUFVLENBQUMsa0hBQWtILENBQUMsQ0FBQztTQUN0SjtRQUVELElBQUksS0FBSyxFQUFFLFdBQVcsS0FBSywrQkFBc0IsQ0FBQyxVQUFVLEVBQUU7WUFDNUQsT0FBTyxJQUFJLHVDQUEyQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDMUQ7YUFBTSxJQUFJLEtBQUssRUFBRSxXQUFXLEtBQUssK0JBQXNCLENBQUMsaUJBQWlCLEVBQUU7WUFDMUUsT0FBTyxJQUFJLHFEQUFpQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEU7UUFFRCxNQUFNLEVBQUUsR0FBRyxLQUFLLEVBQUUsRUFBRSxJQUFJLFdBQUUsQ0FBQyxZQUFZLENBQUM7UUFDeEMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQUUsQ0FBQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQUUsQ0FBQyxjQUFjLENBQUMsRUFBRTtZQUN0RCxPQUFPLElBQUksdUNBQTJCLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztTQUMxRDthQUFNLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFFLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDNUIsT0FBTyxJQUFJLHFEQUFpQyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7U0FDaEU7YUFBTTtZQUNMLE1BQU0sSUFBSSxLQUFLLENBQUMsMERBQTBELEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1NBQ3RGO0lBQ0gsQ0FBQzs7OztBQXZCbUIsZ0RBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQW5ub3RhdGlvbnMgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcbmltcG9ydCB7IEF3c0ltYWdlQnVpbGRlclJ1bm5lckltYWdlQnVpbGRlciB9IGZyb20gJy4vYXdzLWltYWdlLWJ1aWxkZXInO1xuaW1wb3J0IHsgQ29kZUJ1aWxkUnVubmVySW1hZ2VCdWlsZGVyIH0gZnJvbSAnLi9jb2RlYnVpbGQnO1xuaW1wb3J0IHsgUnVubmVySW1hZ2VCdWlsZGVyQmFzZSwgUnVubmVySW1hZ2VCdWlsZGVyUHJvcHMsIFJ1bm5lckltYWdlQnVpbGRlclR5cGUgfSBmcm9tICcuL2NvbW1vbic7XG5pbXBvcnQgeyBPcyB9IGZyb20gJy4uL3Byb3ZpZGVycy9jb21tb24nO1xuXG4vKipcbiAqIEdpdEh1YiBSdW5uZXIgaW1hZ2UgYnVpbGRlci4gQnVpbGRzIGEgRG9ja2VyIGltYWdlIG9yIEFNSSB3aXRoIEdpdEh1YiBSdW5uZXIgYW5kIG90aGVyIHJlcXVpcmVtZW50cyBpbnN0YWxsZWQuXG4gKlxuICogSW1hZ2VzIGNhbiBiZSBjdXN0b21pemVkIGJlZm9yZSBwYXNzZWQgaW50byB0aGUgcHJvdmlkZXIgYnkgYWRkaW5nIG9yIHJlbW92aW5nIGNvbXBvbmVudHMgdG8gYmUgaW5zdGFsbGVkLlxuICpcbiAqIEltYWdlcyBhcmUgcmVidWlsdCBldmVyeSB3ZWVrIGJ5IGRlZmF1bHQgdG8gZW5zdXJlIHRoYXQgdGhlIGxhdGVzdCBzZWN1cml0eSBwYXRjaGVzIGFyZSBhcHBsaWVkLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgUnVubmVySW1hZ2VCdWlsZGVyIGV4dGVuZHMgUnVubmVySW1hZ2VCdWlsZGVyQmFzZSB7XG4gIC8qKlxuICAgKiBDcmVhdGUgYSBuZXcgaW1hZ2UgYnVpbGRlciBiYXNlZCBvbiB0aGUgcHJvdmlkZWQgcHJvcGVydGllcy4gVGhlIGltcGxlbWVudGF0aW9uIHdpbGwgZGlmZmVyIGJhc2VkIG9uIHRoZSBPUywgYXJjaGl0ZWN0dXJlLCBhbmQgcmVxdWVzdGVkIGJ1aWxkZXIgdHlwZS5cbiAgICovXG4gIHN0YXRpYyBuZXcoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSdW5uZXJJbWFnZUJ1aWxkZXJQcm9wcyk6IFJ1bm5lckltYWdlQnVpbGRlciB7XG4gICAgaWYgKHByb3BzPy5jb21wb25lbnRzICYmIHByb3BzLnJ1bm5lclZlcnNpb24pIHtcbiAgICAgIEFubm90YXRpb25zLm9mKHNjb3BlKS5hZGRXYXJuaW5nKCdydW5uZXJWZXJzaW9uIGlzIGlnbm9yZWQgd2hlbiBjb21wb25lbnRzIGFyZSBzcGVjaWZpZWQuIFRoZSBydW5uZXIgdmVyc2lvbiB3aWxsIGJlIGRldGVybWluZWQgYnkgdGhlIGNvbXBvbmVudHMuJyk7XG4gICAgfVxuXG4gICAgaWYgKHByb3BzPy5idWlsZGVyVHlwZSA9PT0gUnVubmVySW1hZ2VCdWlsZGVyVHlwZS5DT0RFX0JVSUxEKSB7XG4gICAgICByZXR1cm4gbmV3IENvZGVCdWlsZFJ1bm5lckltYWdlQnVpbGRlcihzY29wZSwgaWQsIHByb3BzKTtcbiAgICB9IGVsc2UgaWYgKHByb3BzPy5idWlsZGVyVHlwZSA9PT0gUnVubmVySW1hZ2VCdWlsZGVyVHlwZS5BV1NfSU1BR0VfQlVJTERFUikge1xuICAgICAgcmV0dXJuIG5ldyBBd3NJbWFnZUJ1aWxkZXJSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfVxuXG4gICAgY29uc3Qgb3MgPSBwcm9wcz8ub3MgPz8gT3MuTElOVVhfVUJVTlRVO1xuICAgIGlmIChvcy5pcyhPcy5MSU5VWF9VQlVOVFUpIHx8IG9zLmlzKE9zLkxJTlVYX0FNQVpPTl8yKSkge1xuICAgICAgcmV0dXJuIG5ldyBDb2RlQnVpbGRSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfSBlbHNlIGlmIChvcy5pcyhPcy5XSU5ET1dTKSkge1xuICAgICAgcmV0dXJuIG5ldyBBd3NJbWFnZUJ1aWxkZXJSdW5uZXJJbWFnZUJ1aWxkZXIoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgVW5hYmxlIHRvIGZpbmQgcnVubmVyIGltYWdlIGJ1aWxkZXIgaW1wbGVtZW50YXRpb24gZm9yICR7b3MubmFtZX1gKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,8 +1,7 @@
|
|
|
1
|
-
import { aws_ec2 as ec2 } from 'aws-cdk-lib';
|
|
2
1
|
import { Construct } from 'constructs';
|
|
3
2
|
import { ImageBuilderComponent } from './builder';
|
|
4
3
|
import { ImageBuilderObjectBase } from './common';
|
|
5
|
-
import { Architecture, Os } from '../../common';
|
|
4
|
+
import { Architecture, Os } from '../../providers/common';
|
|
6
5
|
/**
|
|
7
6
|
* Properties for AmiRecipe construct.
|
|
8
7
|
*/
|
|
@@ -39,5 +38,5 @@ export declare class AmiRecipe extends ImageBuilderObjectBase {
|
|
|
39
38
|
*
|
|
40
39
|
* @internal
|
|
41
40
|
*/
|
|
42
|
-
export declare function defaultBaseAmi(os: Os, architecture: Architecture):
|
|
41
|
+
export declare function defaultBaseAmi(scope: Construct, os: Os, architecture: Architecture): string;
|
|
43
42
|
export {};
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultBaseAmi = exports.AmiRecipe = void 0;
|
|
4
|
+
const cdk = require("aws-cdk-lib");
|
|
5
|
+
const aws_cdk_lib_1 = require("aws-cdk-lib");
|
|
6
|
+
const common_1 = require("./common");
|
|
7
|
+
const common_2 = require("../../providers/common");
|
|
8
|
+
const common_3 = require("../common");
|
|
9
|
+
/**
|
|
10
|
+
* Image builder recipe for Amazon Machine Image (AMI).
|
|
11
|
+
*
|
|
12
|
+
* @internal
|
|
13
|
+
*/
|
|
14
|
+
class AmiRecipe extends common_1.ImageBuilderObjectBase {
|
|
15
|
+
constructor(scope, id, props) {
|
|
16
|
+
super(scope, id);
|
|
17
|
+
const name = (0, common_3.uniqueImageBuilderName)(this);
|
|
18
|
+
let components = props.components.map(component => {
|
|
19
|
+
return {
|
|
20
|
+
componentArn: component.arn,
|
|
21
|
+
};
|
|
22
|
+
});
|
|
23
|
+
let workingDirectory;
|
|
24
|
+
if (props.platform == 'Linux') {
|
|
25
|
+
workingDirectory = '/home/runner';
|
|
26
|
+
}
|
|
27
|
+
else if (props.platform == 'Windows') {
|
|
28
|
+
workingDirectory = 'C:/'; // must exist or Image Builder fails and must not be empty or git will stall installing from the default windows\system32
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
throw new Error(`Unsupported AMI recipe platform: ${props.platform}`);
|
|
32
|
+
}
|
|
33
|
+
const recipe = new aws_cdk_lib_1.aws_imagebuilder.CfnImageRecipe(this, 'Recipe', {
|
|
34
|
+
name: name,
|
|
35
|
+
version: this.version('ImageRecipe', name, {
|
|
36
|
+
platform: props.platform,
|
|
37
|
+
components,
|
|
38
|
+
parentAmi: props.baseAmi,
|
|
39
|
+
}),
|
|
40
|
+
parentImage: props.baseAmi,
|
|
41
|
+
components,
|
|
42
|
+
workingDirectory,
|
|
43
|
+
});
|
|
44
|
+
this.arn = recipe.attrArn;
|
|
45
|
+
this.name = name;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
exports.AmiRecipe = AmiRecipe;
|
|
49
|
+
/**
|
|
50
|
+
* Default base AMI for given OS and architecture.
|
|
51
|
+
*
|
|
52
|
+
* @internal
|
|
53
|
+
*/
|
|
54
|
+
function defaultBaseAmi(scope, os, architecture) {
|
|
55
|
+
const stack = cdk.Stack.of(scope);
|
|
56
|
+
let arch;
|
|
57
|
+
if (architecture.is(common_2.Architecture.X86_64)) {
|
|
58
|
+
arch = 'x86';
|
|
59
|
+
}
|
|
60
|
+
else if (architecture.is(common_2.Architecture.ARM64)) {
|
|
61
|
+
arch = 'arm64';
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
throw new Error(`Unsupported architecture for base AMI: ${architecture.name}`);
|
|
65
|
+
}
|
|
66
|
+
if (os.is(common_2.Os.LINUX_UBUNTU) || os.is(common_2.Os.LINUX)) {
|
|
67
|
+
return stack.formatArn({
|
|
68
|
+
service: 'imagebuilder',
|
|
69
|
+
resource: 'image',
|
|
70
|
+
account: 'aws',
|
|
71
|
+
resourceName: `ubuntu-server-22-lts-${arch}/x.x.x`,
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
if (os.is(common_2.Os.LINUX_AMAZON_2)) {
|
|
75
|
+
return stack.formatArn({
|
|
76
|
+
service: 'imagebuilder',
|
|
77
|
+
resource: 'image',
|
|
78
|
+
account: 'aws',
|
|
79
|
+
resourceName: `amazon-linux-2-${arch}/x.x.x`,
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
if (os.is(common_2.Os.WINDOWS)) {
|
|
83
|
+
return stack.formatArn({
|
|
84
|
+
service: 'imagebuilder',
|
|
85
|
+
resource: 'image',
|
|
86
|
+
account: 'aws',
|
|
87
|
+
resourceName: `windows-server-2022-english-full-base-${arch}/x.x.x`,
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
throw new Error(`OS ${os.name} not supported for AMI runner image`);
|
|
91
|
+
}
|
|
92
|
+
exports.defaultBaseAmi = defaultBaseAmi;
|
|
93
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW1pLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2ltYWdlLWJ1aWxkZXJzL2F3cy1pbWFnZS1idWlsZGVyL2FtaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFDbkMsNkNBQStEO0FBRy9ELHFDQUFrRDtBQUNsRCxtREFBMEQ7QUFDMUQsc0NBQW1EO0FBMkJuRDs7OztHQUlHO0FBQ0gsTUFBYSxTQUFVLFNBQVEsK0JBQXNCO0lBSW5ELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixNQUFNLElBQUksR0FBRyxJQUFBLCtCQUFzQixFQUFDLElBQUksQ0FBQyxDQUFDO1FBRTFDLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFO1lBQ2hELE9BQU87Z0JBQ0wsWUFBWSxFQUFFLFNBQVMsQ0FBQyxHQUFHO2FBQzVCLENBQUM7UUFDSixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksZ0JBQWdCLENBQUM7UUFDckIsSUFBSSxLQUFLLENBQUMsUUFBUSxJQUFJLE9BQU8sRUFBRTtZQUM3QixnQkFBZ0IsR0FBRyxjQUFjLENBQUM7U0FDbkM7YUFBTSxJQUFJLEtBQUssQ0FBQyxRQUFRLElBQUksU0FBUyxFQUFFO1lBQ3RDLGdCQUFnQixHQUFHLEtBQUssQ0FBQyxDQUFDLHlIQUF5SDtTQUNwSjthQUFNO1lBQ0wsTUFBTSxJQUFJLEtBQUssQ0FBQyxvQ0FBb0MsS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7U0FDdkU7UUFFRCxNQUFNLE1BQU0sR0FBRyxJQUFJLDhCQUFZLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxRQUFRLEVBQUU7WUFDN0QsSUFBSSxFQUFFLElBQUk7WUFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsSUFBSSxFQUFFO2dCQUN6QyxRQUFRLEVBQUUsS0FBSyxDQUFDLFFBQVE7Z0JBQ3hCLFVBQVU7Z0JBQ1YsU0FBUyxFQUFFLEtBQUssQ0FBQyxPQUFPO2FBQ3pCLENBQUM7WUFDRixXQUFXLEVBQUUsS0FBSyxDQUFDLE9BQU87WUFDMUIsVUFBVTtZQUNWLGdCQUFnQjtTQUNqQixDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsR0FBRyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFDMUIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7SUFDbkIsQ0FBQztDQUNGO0FBdkNELDhCQXVDQztBQUVEOzs7O0dBSUc7QUFDSCxTQUFnQixjQUFjLENBQUMsS0FBZ0IsRUFBRSxFQUFNLEVBQUUsWUFBMEI7SUFDakYsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7SUFFbEMsSUFBSSxJQUFJLENBQUM7SUFDVCxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMscUJBQVksQ0FBQyxNQUFNLENBQUMsRUFBRTtRQUN4QyxJQUFJLEdBQUcsS0FBSyxDQUFDO0tBQ2Q7U0FBTSxJQUFJLFlBQVksQ0FBQyxFQUFFLENBQUMscUJBQVksQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM5QyxJQUFJLEdBQUcsT0FBTyxDQUFDO0tBQ2hCO1NBQU07UUFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDBDQUEwQyxZQUFZLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQztLQUNoRjtJQUVELElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFFLENBQUMsWUFBWSxDQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxXQUFFLENBQUMsS0FBSyxDQUFDLEVBQUU7UUFDN0MsT0FBTyxLQUFLLENBQUMsU0FBUyxDQUFDO1lBQ3JCLE9BQU8sRUFBRSxjQUFjO1lBQ3ZCLFFBQVEsRUFBRSxPQUFPO1lBQ2pCLE9BQU8sRUFBRSxLQUFLO1lBQ2QsWUFBWSxFQUFFLHdCQUF3QixJQUFJLFFBQVE7U0FDbkQsQ0FBQyxDQUFDO0tBQ0o7SUFFRCxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUMsV0FBRSxDQUFDLGNBQWMsQ0FBQyxFQUFFO1FBQzVCLE9BQU8sS0FBSyxDQUFDLFNBQVMsQ0FBQztZQUNyQixPQUFPLEVBQUUsY0FBYztZQUN2QixRQUFRLEVBQUUsT0FBTztZQUNqQixPQUFPLEVBQUUsS0FBSztZQUNkLFlBQVksRUFBRSxrQkFBa0IsSUFBSSxRQUFRO1NBQzdDLENBQUMsQ0FBQztLQUNKO0lBRUQsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDLFdBQUUsQ0FBQyxPQUFPLENBQUMsRUFBRTtRQUNyQixPQUFPLEtBQUssQ0FBQyxTQUFTLENBQUM7WUFDckIsT0FBTyxFQUFFLGNBQWM7WUFDdkIsUUFBUSxFQUFFLE9BQU87WUFDakIsT0FBTyxFQUFFLEtBQUs7WUFDZCxZQUFZLEVBQUUseUNBQXlDLElBQUksUUFBUTtTQUNwRSxDQUFDLENBQUM7S0FDSjtJQUVELE1BQU0sSUFBSSxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUMsSUFBSSxxQ0FBcUMsQ0FBQyxDQUFDO0FBQ3RFLENBQUM7QUF4Q0Qsd0NBd0NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IGF3c19pbWFnZWJ1aWxkZXIgYXMgaW1hZ2VidWlsZGVyIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBJbWFnZUJ1aWxkZXJDb21wb25lbnQgfSBmcm9tICcuL2J1aWxkZXInO1xuaW1wb3J0IHsgSW1hZ2VCdWlsZGVyT2JqZWN0QmFzZSB9IGZyb20gJy4vY29tbW9uJztcbmltcG9ydCB7IEFyY2hpdGVjdHVyZSwgT3MgfSBmcm9tICcuLi8uLi9wcm92aWRlcnMvY29tbW9uJztcbmltcG9ydCB7IHVuaXF1ZUltYWdlQnVpbGRlck5hbWUgfSBmcm9tICcuLi9jb21tb24nO1xuXG4vKipcbiAqIFByb3BlcnRpZXMgZm9yIEFtaVJlY2lwZSBjb25zdHJ1Y3QuXG4gKi9cbmludGVyZmFjZSBBbWlSZWNpcGVQcm9wZXJ0aWVzIHtcbiAgLyoqXG4gICAqIFRhcmdldCBwbGF0Zm9ybS4gTXVzdCBtYXRjaCBidWlsZGVyIHBsYXRmb3JtLlxuICAgKi9cbiAgcmVhZG9ubHkgcGxhdGZvcm06ICdMaW51eCcgfCAnV2luZG93cyc7XG5cbiAgLyoqXG4gICAqIFRhcmdldCBhcmNoaXRlY3R1cmUuIE11c3QgbWF0Y2ggYnVpbGRlciBwbGF0Zm9ybS5cbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZTogQXJjaGl0ZWN0dXJlO1xuXG4gIC8qKlxuICAgKiBCYXNlIEFNSSB0byB1c2UgZm9yIHRoZSBuZXcgcnVubmVyIEFNSS5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VBbWk6IHN0cmluZztcblxuICAvKipcbiAgICogQ29tcG9uZW50cyB0byBhZGQgdG8gdGFyZ2V0IGNvbnRhaW5lciBpbWFnZS5cbiAgICovXG4gIHJlYWRvbmx5IGNvbXBvbmVudHM6IEltYWdlQnVpbGRlckNvbXBvbmVudFtdO1xufVxuXG4vKipcbiAqIEltYWdlIGJ1aWxkZXIgcmVjaXBlIGZvciBBbWF6b24gTWFjaGluZSBJbWFnZSAoQU1JKS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGNsYXNzIEFtaVJlY2lwZSBleHRlbmRzIEltYWdlQnVpbGRlck9iamVjdEJhc2Uge1xuICBwdWJsaWMgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEFtaVJlY2lwZVByb3BlcnRpZXMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgY29uc3QgbmFtZSA9IHVuaXF1ZUltYWdlQnVpbGRlck5hbWUodGhpcyk7XG5cbiAgICBsZXQgY29tcG9uZW50cyA9IHByb3BzLmNvbXBvbmVudHMubWFwKGNvbXBvbmVudCA9PiB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBjb21wb25lbnRBcm46IGNvbXBvbmVudC5hcm4sXG4gICAgICB9O1xuICAgIH0pO1xuXG4gICAgbGV0IHdvcmtpbmdEaXJlY3Rvcnk7XG4gICAgaWYgKHByb3BzLnBsYXRmb3JtID09ICdMaW51eCcpIHtcbiAgICAgIHdvcmtpbmdEaXJlY3RvcnkgPSAnL2hvbWUvcnVubmVyJztcbiAgICB9IGVsc2UgaWYgKHByb3BzLnBsYXRmb3JtID09ICdXaW5kb3dzJykge1xuICAgICAgd29ya2luZ0RpcmVjdG9yeSA9ICdDOi8nOyAvLyBtdXN0IGV4aXN0IG9yIEltYWdlIEJ1aWxkZXIgZmFpbHMgYW5kIG11c3Qgbm90IGJlIGVtcHR5IG9yIGdpdCB3aWxsIHN0YWxsIGluc3RhbGxpbmcgZnJvbSB0aGUgZGVmYXVsdCB3aW5kb3dzXFxzeXN0ZW0zMlxuICAgIH0gZWxzZSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYFVuc3VwcG9ydGVkIEFNSSByZWNpcGUgcGxhdGZvcm06ICR7cHJvcHMucGxhdGZvcm19YCk7XG4gICAgfVxuXG4gICAgY29uc3QgcmVjaXBlID0gbmV3IGltYWdlYnVpbGRlci5DZm5JbWFnZVJlY2lwZSh0aGlzLCAnUmVjaXBlJywge1xuICAgICAgbmFtZTogbmFtZSxcbiAgICAgIHZlcnNpb246IHRoaXMudmVyc2lvbignSW1hZ2VSZWNpcGUnLCBuYW1lLCB7XG4gICAgICAgIHBsYXRmb3JtOiBwcm9wcy5wbGF0Zm9ybSxcbiAgICAgICAgY29tcG9uZW50cyxcbiAgICAgICAgcGFyZW50QW1pOiBwcm9wcy5iYXNlQW1pLFxuICAgICAgfSksXG4gICAgICBwYXJlbnRJbWFnZTogcHJvcHMuYmFzZUFtaSxcbiAgICAgIGNvbXBvbmVudHMsXG4gICAgICB3b3JraW5nRGlyZWN0b3J5LFxuICAgIH0pO1xuXG4gICAgdGhpcy5hcm4gPSByZWNpcGUuYXR0ckFybjtcbiAgICB0aGlzLm5hbWUgPSBuYW1lO1xuICB9XG59XG5cbi8qKlxuICogRGVmYXVsdCBiYXNlIEFNSSBmb3IgZ2l2ZW4gT1MgYW5kIGFyY2hpdGVjdHVyZS5cbiAqXG4gKiBAaW50ZXJuYWxcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRCYXNlQW1pKHNjb3BlOiBDb25zdHJ1Y3QsIG9zOiBPcywgYXJjaGl0ZWN0dXJlOiBBcmNoaXRlY3R1cmUpIHtcbiAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2Yoc2NvcGUpO1xuXG4gIGxldCBhcmNoO1xuICBpZiAoYXJjaGl0ZWN0dXJlLmlzKEFyY2hpdGVjdHVyZS5YODZfNjQpKSB7XG4gICAgYXJjaCA9ICd4ODYnO1xuICB9IGVsc2UgaWYgKGFyY2hpdGVjdHVyZS5pcyhBcmNoaXRlY3R1cmUuQVJNNjQpKSB7XG4gICAgYXJjaCA9ICdhcm02NCc7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBVbnN1cHBvcnRlZCBhcmNoaXRlY3R1cmUgZm9yIGJhc2UgQU1JOiAke2FyY2hpdGVjdHVyZS5uYW1lfWApO1xuICB9XG5cbiAgaWYgKG9zLmlzKE9zLkxJTlVYX1VCVU5UVSkgfHwgb3MuaXMoT3MuTElOVVgpKSB7XG4gICAgcmV0dXJuIHN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgIHJlc291cmNlOiAnaW1hZ2UnLFxuICAgICAgYWNjb3VudDogJ2F3cycsXG4gICAgICByZXNvdXJjZU5hbWU6IGB1YnVudHUtc2VydmVyLTIyLWx0cy0ke2FyY2h9L3gueC54YCxcbiAgICB9KTtcbiAgfVxuXG4gIGlmIChvcy5pcyhPcy5MSU5VWF9BTUFaT05fMikpIHtcbiAgICByZXR1cm4gc3RhY2suZm9ybWF0QXJuKHtcbiAgICAgIHNlcnZpY2U6ICdpbWFnZWJ1aWxkZXInLFxuICAgICAgcmVzb3VyY2U6ICdpbWFnZScsXG4gICAgICBhY2NvdW50OiAnYXdzJyxcbiAgICAgIHJlc291cmNlTmFtZTogYGFtYXpvbi1saW51eC0yLSR7YXJjaH0veC54LnhgLFxuICAgIH0pO1xuICB9XG5cbiAgaWYgKG9zLmlzKE9zLldJTkRPV1MpKSB7XG4gICAgcmV0dXJuIHN0YWNrLmZvcm1hdEFybih7XG4gICAgICBzZXJ2aWNlOiAnaW1hZ2VidWlsZGVyJyxcbiAgICAgIHJlc291cmNlOiAnaW1hZ2UnLFxuICAgICAgYWNjb3VudDogJ2F3cycsXG4gICAgICByZXNvdXJjZU5hbWU6IGB3aW5kb3dzLXNlcnZlci0yMDIyLWVuZ2xpc2gtZnVsbC1iYXNlLSR7YXJjaH0veC54LnhgLFxuICAgIH0pO1xuICB9XG5cbiAgdGhyb3cgbmV3IEVycm9yKGBPUyAke29zLm5hbWV9IG5vdCBzdXBwb3J0ZWQgZm9yIEFNSSBydW5uZXIgaW1hZ2VgKTtcbn1cblxuIl19
|
|
@@ -2,7 +2,7 @@ import * as cdk from 'aws-cdk-lib';
|
|
|
2
2
|
import { aws_ec2 as ec2, aws_iam as iam, aws_imagebuilder as imagebuilder, aws_logs as logs, aws_s3_assets as s3_assets, aws_sns as sns } from 'aws-cdk-lib';
|
|
3
3
|
import { Construct, IConstruct } from 'constructs';
|
|
4
4
|
import { ImageBuilderObjectBase } from './common';
|
|
5
|
-
import { RunnerAmi, RunnerImage } from '../../
|
|
5
|
+
import { RunnerAmi, RunnerImage } from '../../providers';
|
|
6
6
|
import { RunnerImageBuilderBase, RunnerImageBuilderProps } from '../common';
|
|
7
7
|
export interface AwsImageBuilderRunnerImageBuilderProps {
|
|
8
8
|
/**
|
|
@@ -51,6 +51,12 @@ export interface ImageBuilderComponentProperties {
|
|
|
51
51
|
* Optional assets to add to the built image.
|
|
52
52
|
*/
|
|
53
53
|
readonly assets?: ImageBuilderAsset[];
|
|
54
|
+
/**
|
|
55
|
+
* Require a reboot after installing this component.
|
|
56
|
+
*
|
|
57
|
+
* @default false
|
|
58
|
+
*/
|
|
59
|
+
readonly reboot?: boolean;
|
|
54
60
|
}
|
|
55
61
|
/**
|
|
56
62
|
* Components are a set of commands to run and optional files to add to an image. Components are the building blocks of images built by Image Builder.
|
|
@@ -63,7 +69,8 @@ export interface ImageBuilderComponentProperties {
|
|
|
63
69
|
* displayName: 'AWS CLI',
|
|
64
70
|
* description: 'Install latest version of AWS CLI',
|
|
65
71
|
* commands: [
|
|
66
|
-
* 'Start-Process msiexec.exe -Wait -ArgumentList \'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\'',
|
|
72
|
+
* '$p = Start-Process msiexec.exe -PassThru -Wait -ArgumentList \'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\'',
|
|
73
|
+
* 'if ($p.ExitCode -ne 0) { throw "Exit code is $p.ExitCode" }',
|
|
67
74
|
* ],
|
|
68
75
|
* }
|
|
69
76
|
* ```
|
|
@@ -103,7 +110,6 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
|
|
|
103
110
|
private readonly logRemovalPolicy;
|
|
104
111
|
private readonly vpc;
|
|
105
112
|
private readonly securityGroups;
|
|
106
|
-
private readonly repository;
|
|
107
113
|
private readonly subnetSelection;
|
|
108
114
|
private readonly rebuildInterval;
|
|
109
115
|
private readonly boundComponents;
|
|
@@ -130,6 +136,7 @@ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilde
|
|
|
130
136
|
bindAmi(): RunnerAmi;
|
|
131
137
|
private amiCleaner;
|
|
132
138
|
private bindComponents;
|
|
139
|
+
private reaper;
|
|
133
140
|
}
|
|
134
141
|
/**
|
|
135
142
|
* @internal
|