UNPKG

token-injectable-docker-builder

Version:

The TokenInjectableDockerBuilder is a flexible AWS CDK construct that enables the usage of AWS CDK tokens in the building, pushing, and deployment of Docker images to Amazon Elastic Container Registry (ECR). It leverages AWS CodeBuild and Lambda custom re

30 lines 3.89 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.createBuilderEcrRepository = createBuilderEcrRepository; const aws_cdk_lib_1 = require("aws-cdk-lib"); const aws_ecr_1 = require("aws-cdk-lib/aws-ecr"); /** * Create an ECR repository for a builder. * * SAFETY: tagged images are never deleted. Lambda pins images by digest * internally, so deleting an in-use tagged image would make the next Lambda * config update fail with "Image ID cannot be found". Untagged images are * cleaned up after 30 days. */ function createBuilderEcrRepository(scope, id, options) { const { kmsEncryption, encryptionKey } = options; return new aws_ecr_1.Repository(scope, id, { lifecycleRules: [ { rulePriority: 1, description: 'Remove untagged images after 30 days', tagStatus: aws_ecr_1.TagStatus.UNTAGGED, maxImageAge: aws_cdk_lib_1.Duration.days(30), }, ], encryption: kmsEncryption ? aws_ecr_1.RepositoryEncryption.KMS : aws_ecr_1.RepositoryEncryption.AES_256, encryptionKey: kmsEncryption ? encryptionKey : undefined, imageScanOnPush: true, }); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWNyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Vjci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxnRUFvQkM7QUF0Q0QsNkNBQXVDO0FBQ3ZDLGlEQUFrRjtBQVNsRjs7Ozs7OztHQU9HO0FBQ0gsU0FBZ0IsMEJBQTBCLENBQ3hDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixPQUFvQztJQUVwQyxNQUFNLEVBQUUsYUFBYSxFQUFFLGFBQWEsRUFBRSxHQUFHLE9BQU8sQ0FBQztJQUVqRCxPQUFPLElBQUksb0JBQVUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1FBQy9CLGNBQWMsRUFBRTtZQUNkO2dCQUNFLFlBQVksRUFBRSxDQUFDO2dCQUNmLFdBQVcsRUFBRSxzQ0FBc0M7Z0JBQ25ELFNBQVMsRUFBRSxtQkFBUyxDQUFDLFFBQVE7Z0JBQzdCLFdBQVcsRUFBRSxzQkFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7YUFDL0I7U0FDRjtRQUNELFVBQVUsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLDhCQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsOEJBQW9CLENBQUMsT0FBTztRQUNuRixhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFNBQVM7UUFDeEQsZUFBZSxFQUFFLElBQUk7S0FDdEIsQ0FBQyxDQUFDO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgUmVwb3NpdG9yeSwgUmVwb3NpdG9yeUVuY3J5cHRpb24sIFRhZ1N0YXR1cyB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1lY3InO1xuaW1wb3J0IHsgS2V5IH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZGVyRWNyUmVwb3NpdG9yeU9wdGlvbnMge1xuICByZWFkb25seSBrbXNFbmNyeXB0aW9uOiBib29sZWFuO1xuICByZWFkb25seSBlbmNyeXB0aW9uS2V5PzogS2V5O1xufVxuXG4vKipcbiAqIENyZWF0ZSBhbiBFQ1IgcmVwb3NpdG9yeSBmb3IgYSBidWlsZGVyLlxuICpcbiAqIFNBRkVUWTogdGFnZ2VkIGltYWdlcyBhcmUgbmV2ZXIgZGVsZXRlZC4gTGFtYmRhIHBpbnMgaW1hZ2VzIGJ5IGRpZ2VzdFxuICogaW50ZXJuYWxseSwgc28gZGVsZXRpbmcgYW4gaW4tdXNlIHRhZ2dlZCBpbWFnZSB3b3VsZCBtYWtlIHRoZSBuZXh0IExhbWJkYVxuICogY29uZmlnIHVwZGF0ZSBmYWlsIHdpdGggXCJJbWFnZSBJRCBjYW5ub3QgYmUgZm91bmRcIi4gVW50YWdnZWQgaW1hZ2VzIGFyZVxuICogY2xlYW5lZCB1cCBhZnRlciAzMCBkYXlzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQnVpbGRlckVjclJlcG9zaXRvcnkoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIG9wdGlvbnM6IEJ1aWxkZXJFY3JSZXBvc2l0b3J5T3B0aW9ucyxcbik6IFJlcG9zaXRvcnkge1xuICBjb25zdCB7IGttc0VuY3J5cHRpb24sIGVuY3J5cHRpb25LZXkgfSA9IG9wdGlvbnM7XG5cbiAgcmV0dXJuIG5ldyBSZXBvc2l0b3J5KHNjb3BlLCBpZCwge1xuICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICB7XG4gICAgICAgIHJ1bGVQcmlvcml0eTogMSxcbiAgICAgICAgZGVzY3JpcHRpb246ICdSZW1vdmUgdW50YWdnZWQgaW1hZ2VzIGFmdGVyIDMwIGRheXMnLFxuICAgICAgICB0YWdTdGF0dXM6IFRhZ1N0YXR1cy5VTlRBR0dFRCxcbiAgICAgICAgbWF4SW1hZ2VBZ2U6IER1cmF0aW9uLmRheXMoMzApLFxuICAgICAgfSxcbiAgICBdLFxuICAgIGVuY3J5cHRpb246IGttc0VuY3J5cHRpb24gPyBSZXBvc2l0b3J5RW5jcnlwdGlvbi5LTVMgOiBSZXBvc2l0b3J5RW5jcnlwdGlvbi5BRVNfMjU2LFxuICAgIGVuY3J5cHRpb25LZXk6IGttc0VuY3J5cHRpb24gPyBlbmNyeXB0aW9uS2V5IDogdW5kZWZpbmVkLFxuICAgIGltYWdlU2Nhbk9uUHVzaDogdHJ1ZSxcbiAgfSk7XG59XG4iXX0=