@liflig/cdk 2.21.2 → 2.21.4

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.
Files changed (46) hide show
  1. package/README.md +18 -2
  2. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.d.ts +1 -1
  3. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +46 -35
  4. package/lib/cdk-pipelines/liflig-cdk-pipeline.js +6 -6
  5. package/lib/index.d.ts +1 -4
  6. package/lib/index.js +2 -6
  7. package/lib/ses/configurationsetsnsdestination/handler.d.ts +1 -1
  8. package/lib/ses/configurationsetsnsdestination/handler.js +15 -25
  9. package/lib/ses/configurationsetsnsdestination/index.js +7 -7
  10. package/lib/ses/sesdomain/handler.d.ts +1 -1
  11. package/lib/ses/sesdomain/handler.js +31 -31
  12. package/lib/ses/sesdomain/index.js +6 -6
  13. package/lib/ses/sesverifyemail/handler.d.ts +1 -1
  14. package/lib/ses/sesverifyemail/handler.js +12 -10
  15. package/lib/ses/sesverifyemail/index.js +6 -6
  16. package/package.json +14 -3
  17. package/lib/cdk-deploy/cdk-deploy.d.ts +0 -63
  18. package/lib/cdk-deploy/cdk-deploy.js +0 -175
  19. package/lib/cdk-deploy/index.d.ts +0 -1
  20. package/lib/cdk-deploy/index.js +0 -6
  21. package/lib/cdk-deploy/start-deploy-handler.d.ts +0 -8
  22. package/lib/cdk-deploy/start-deploy-handler.js +0 -72
  23. package/lib/cdk-deploy/status-handler.d.ts +0 -6
  24. package/lib/cdk-deploy/status-handler.js +0 -83
  25. package/lib/ecs-update-image/artifact-status.d.ts +0 -39
  26. package/lib/ecs-update-image/artifact-status.js +0 -41
  27. package/lib/ecs-update-image/ecs-update-image.d.ts +0 -41
  28. package/lib/ecs-update-image/ecs-update-image.js +0 -98
  29. package/lib/ecs-update-image/index.d.ts +0 -3
  30. package/lib/ecs-update-image/index.js +0 -10
  31. package/lib/ecs-update-image/start-deploy-handler.d.ts +0 -6
  32. package/lib/ecs-update-image/start-deploy-handler.js +0 -104
  33. package/lib/ecs-update-image/status-handler.d.ts +0 -11
  34. package/lib/ecs-update-image/status-handler.js +0 -74
  35. package/lib/ecs-update-image/tag.d.ts +0 -47
  36. package/lib/ecs-update-image/tag.js +0 -67
  37. package/lib/pipelines/conventions.d.ts +0 -14
  38. package/lib/pipelines/conventions.js +0 -24
  39. package/lib/pipelines/deploy-env.d.ts +0 -18
  40. package/lib/pipelines/deploy-env.js +0 -96
  41. package/lib/pipelines/index.d.ts +0 -2
  42. package/lib/pipelines/index.js +0 -8
  43. package/lib/pipelines/liflig-cdk-deployer-deps.d.ts +0 -13
  44. package/lib/pipelines/liflig-cdk-deployer-deps.js +0 -35
  45. package/lib/pipelines/pipeline.d.ts +0 -78
  46. package/lib/pipelines/pipeline.js +0 -224
@@ -1,74 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.statusHandler = void 0;
4
- // This function is inline-compiled for the lambda.
5
- // It must be self-contained.
6
- const statusHandler = async () => {
7
- var _a;
8
- const AWS = require("aws-sdk");
9
- const ecs = new AWS.ECS();
10
- function requireEnv(name) {
11
- const value = process.env[name];
12
- if (value === undefined) {
13
- throw new Error(`Missing ${name}`);
14
- }
15
- return value;
16
- }
17
- async function getService(clusterName, serviceName) {
18
- var _a;
19
- const services = await ecs
20
- .describeServices({
21
- cluster: clusterName,
22
- services: [serviceName],
23
- })
24
- .promise();
25
- if (((_a = services.services) === null || _a === void 0 ? void 0 : _a.length) !== 1) {
26
- throw new Error(`Service not found: ${clusterName}/${serviceName}`);
27
- }
28
- return services.services[0];
29
- }
30
- async function getTaskDefinition(taskDefinition) {
31
- return (await ecs
32
- .describeTaskDefinition({
33
- taskDefinition: taskDefinition,
34
- })
35
- .promise()).taskDefinition;
36
- }
37
- /**
38
- * Check if the service is considered to be stabilized.
39
- *
40
- * Uses the logic described at
41
- * https://docs.aws.amazon.com/cli/latest/reference/ecs/wait/services-stable.html
42
- */
43
- function isStabilized(service) {
44
- var _a;
45
- return (((_a = service.deployments) === null || _a === void 0 ? void 0 : _a.length) == 1 &&
46
- service.runningCount == service.desiredCount);
47
- }
48
- function extractTag(image) {
49
- if (!image.includes(":")) {
50
- return null;
51
- }
52
- return image.replace(/.*:/, "");
53
- }
54
- const clusterName = requireEnv("CLUSTER_NAME");
55
- const serviceName = requireEnv("SERVICE_NAME");
56
- // The service name is unknown during initial deployment of the stack.
57
- // In this case we return stabilized status as true.
58
- if (serviceName === "") {
59
- return {
60
- currentTag: null,
61
- stabilized: true,
62
- };
63
- }
64
- const service = await getService(clusterName, serviceName);
65
- const mainDeployment = (_a = service.deployments) === null || _a === void 0 ? void 0 : _a.find((it) => it.status === "PRIMARY");
66
- const taskDefinition = await getTaskDefinition(mainDeployment.taskDefinition);
67
- // Only one container is supported for the task definition.
68
- return {
69
- currentTag: extractTag(taskDefinition.containerDefinitions[0].image),
70
- stabilized: isStabilized(service),
71
- };
72
- };
73
- exports.statusHandler = statusHandler;
74
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhdHVzLWhhbmRsZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvZWNzLXVwZGF0ZS1pbWFnZS9zdGF0dXMtaGFuZGxlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFnQkEsbURBQW1EO0FBQ25ELDZCQUE2QjtBQUN0QixNQUFNLGFBQWEsR0FBK0IsS0FBSyxJQUFJLEVBQUU7O0lBQ2xFLE1BQU0sR0FBRyxHQUFHLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQWMsQ0FBQTtJQUVyQyxTQUFTLFVBQVUsQ0FBQyxJQUFZO1FBQzlCLE1BQU0sS0FBSyxHQUFHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUE7UUFDL0IsSUFBSSxLQUFLLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksRUFBRSxDQUFDLENBQUE7UUFDcEMsQ0FBQztRQUNELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELEtBQUssVUFBVSxVQUFVLENBQ3ZCLFdBQW1CLEVBQ25CLFdBQW1COztRQUVuQixNQUFNLFFBQVEsR0FBRyxNQUFNLEdBQUc7YUFDdkIsZ0JBQWdCLENBQUM7WUFDaEIsT0FBTyxFQUFFLFdBQVc7WUFDcEIsUUFBUSxFQUFFLENBQUMsV0FBVyxDQUFDO1NBQ3hCLENBQUM7YUFDRCxPQUFPLEVBQUUsQ0FBQTtRQUVaLElBQUksQ0FBQSxNQUFBLFFBQVEsQ0FBQyxRQUFRLDBDQUFFLE1BQU0sTUFBSyxDQUFDLEVBQUUsQ0FBQztZQUNwQyxNQUFNLElBQUksS0FBSyxDQUFDLHNCQUFzQixXQUFXLElBQUksV0FBVyxFQUFFLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBRUQsT0FBTyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFBO0lBQzdCLENBQUM7SUFFRCxLQUFLLFVBQVUsaUJBQWlCLENBQzlCLGNBQXNCO1FBRXRCLE9BQU8sQ0FDTCxNQUFNLEdBQUc7YUFDTixzQkFBc0IsQ0FBQztZQUN0QixjQUFjLEVBQUUsY0FBYztTQUMvQixDQUFDO2FBQ0QsT0FBTyxFQUFFLENBQ2IsQ0FBQyxjQUFlLENBQUE7SUFDbkIsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0gsU0FBUyxZQUFZLENBQUMsT0FBd0I7O1FBQzVDLE9BQU8sQ0FDTCxDQUFBLE1BQUEsT0FBTyxDQUFDLFdBQVcsMENBQUUsTUFBTSxLQUFJLENBQUM7WUFDaEMsT0FBTyxDQUFDLFlBQVksSUFBSSxPQUFPLENBQUMsWUFBWSxDQUM3QyxDQUFBO0lBQ0gsQ0FBQztJQUVELFNBQVMsVUFBVSxDQUFDLEtBQWE7UUFDL0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN6QixPQUFPLElBQUksQ0FBQTtRQUNiLENBQUM7UUFDRCxPQUFPLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pDLENBQUM7SUFFRCxNQUFNLFdBQVcsR0FBRyxVQUFVLENBQUMsY0FBYyxDQUFDLENBQUE7SUFDOUMsTUFBTSxXQUFXLEdBQUcsVUFBVSxDQUFDLGNBQWMsQ0FBQyxDQUFBO0lBRTlDLHNFQUFzRTtJQUN0RSxvREFBb0Q7SUFDcEQsSUFBSSxXQUFXLEtBQUssRUFBRSxFQUFFLENBQUM7UUFDdkIsT0FBTztZQUNMLFVBQVUsRUFBRSxJQUFJO1lBQ2hCLFVBQVUsRUFBRSxJQUFJO1NBQ2pCLENBQUE7SUFDSCxDQUFDO0lBRUQsTUFBTSxPQUFPLEdBQUcsTUFBTSxVQUFVLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzFELE1BQU0sY0FBYyxHQUFHLE1BQUEsT0FBTyxDQUFDLFdBQVcsMENBQUUsSUFBSSxDQUM5QyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQ2hDLENBQUE7SUFFRCxNQUFNLGNBQWMsR0FBRyxNQUFNLGlCQUFpQixDQUM1QyxjQUFlLENBQUMsY0FBZSxDQUNoQyxDQUFBO0lBRUQsMkRBQTJEO0lBRTNELE9BQU87UUFDTCxVQUFVLEVBQUUsVUFBVSxDQUFDLGNBQWMsQ0FBQyxvQkFBcUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFNLENBQUM7UUFDdEUsVUFBVSxFQUFFLFlBQVksQ0FBQyxPQUFPLENBQUM7S0FDbEMsQ0FBQTtBQUNILENBQUMsQ0FBQTtBQXpGWSxRQUFBLGFBQWEsaUJBeUZ6QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtYXNzaWdubWVudCAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1jYWxsICovXG4vKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLW1lbWJlci1hY2Nlc3MgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby12YXItcmVxdWlyZXMgKi9cbmltcG9ydCB0eXBlIHsgSGFuZGxlciB9IGZyb20gXCJhd3MtbGFtYmRhXCJcbmltcG9ydCB0eXBlICogYXMgX0FXUyBmcm9tIFwiYXdzLXNka1wiXG5cbmludGVyZmFjZSBSZXNwb25zZSB7XG4gIC8qKlxuICAgKiBUaGUgdGFnIGlzIHVua25vd24gd2hlbiB0aGUgc3RhY2sgaXMgbm90IHlldCBmdWxseSBzZXQgdXBcbiAgICogZHVyaW5nIGluaXRpYWwgYWNjb3VudC9zZXJ2aWNlIGRlcGxveW1lbnQuXG4gICAqL1xuICBjdXJyZW50VGFnOiBzdHJpbmcgfCBudWxsXG4gIHN0YWJpbGl6ZWQ6IGJvb2xlYW5cbn1cblxuLy8gVGhpcyBmdW5jdGlvbiBpcyBpbmxpbmUtY29tcGlsZWQgZm9yIHRoZSBsYW1iZGEuXG4vLyBJdCBtdXN0IGJlIHNlbGYtY29udGFpbmVkLlxuZXhwb3J0IGNvbnN0IHN0YXR1c0hhbmRsZXI6IEhhbmRsZXI8dW5rbm93biwgUmVzcG9uc2U+ID0gYXN5bmMgKCkgPT4ge1xuICBjb25zdCBBV1MgPSByZXF1aXJlKFwiYXdzLXNka1wiKVxuICBjb25zdCBlY3MgPSBuZXcgQVdTLkVDUygpIGFzIF9BV1MuRUNTXG5cbiAgZnVuY3Rpb24gcmVxdWlyZUVudihuYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZhbHVlID0gcHJvY2Vzcy5lbnZbbmFtZV1cbiAgICBpZiAodmFsdWUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBNaXNzaW5nICR7bmFtZX1gKVxuICAgIH1cbiAgICByZXR1cm4gdmFsdWVcbiAgfVxuXG4gIGFzeW5jIGZ1bmN0aW9uIGdldFNlcnZpY2UoXG4gICAgY2x1c3Rlck5hbWU6IHN0cmluZyxcbiAgICBzZXJ2aWNlTmFtZTogc3RyaW5nLFxuICApOiBQcm9taXNlPEFXUy5FQ1MuU2VydmljZT4ge1xuICAgIGNvbnN0IHNlcnZpY2VzID0gYXdhaXQgZWNzXG4gICAgICAuZGVzY3JpYmVTZXJ2aWNlcyh7XG4gICAgICAgIGNsdXN0ZXI6IGNsdXN0ZXJOYW1lLFxuICAgICAgICBzZXJ2aWNlczogW3NlcnZpY2VOYW1lXSxcbiAgICAgIH0pXG4gICAgICAucHJvbWlzZSgpXG5cbiAgICBpZiAoc2VydmljZXMuc2VydmljZXM/Lmxlbmd0aCAhPT0gMSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBTZXJ2aWNlIG5vdCBmb3VuZDogJHtjbHVzdGVyTmFtZX0vJHtzZXJ2aWNlTmFtZX1gKVxuICAgIH1cblxuICAgIHJldHVybiBzZXJ2aWNlcy5zZXJ2aWNlc1swXVxuICB9XG5cbiAgYXN5bmMgZnVuY3Rpb24gZ2V0VGFza0RlZmluaXRpb24oXG4gICAgdGFza0RlZmluaXRpb246IHN0cmluZyxcbiAgKTogUHJvbWlzZTxBV1MuRUNTLlRhc2tEZWZpbml0aW9uPiB7XG4gICAgcmV0dXJuIChcbiAgICAgIGF3YWl0IGVjc1xuICAgICAgICAuZGVzY3JpYmVUYXNrRGVmaW5pdGlvbih7XG4gICAgICAgICAgdGFza0RlZmluaXRpb246IHRhc2tEZWZpbml0aW9uLFxuICAgICAgICB9KVxuICAgICAgICAucHJvbWlzZSgpXG4gICAgKS50YXNrRGVmaW5pdGlvbiFcbiAgfVxuXG4gIC8qKlxuICAgKiBDaGVjayBpZiB0aGUgc2VydmljZSBpcyBjb25zaWRlcmVkIHRvIGJlIHN0YWJpbGl6ZWQuXG4gICAqXG4gICAqIFVzZXMgdGhlIGxvZ2ljIGRlc2NyaWJlZCBhdFxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvZWNzL3dhaXQvc2VydmljZXMtc3RhYmxlLmh0bWxcbiAgICovXG4gIGZ1bmN0aW9uIGlzU3RhYmlsaXplZChzZXJ2aWNlOiBBV1MuRUNTLlNlcnZpY2UpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgc2VydmljZS5kZXBsb3ltZW50cz8ubGVuZ3RoID09IDEgJiZcbiAgICAgIHNlcnZpY2UucnVubmluZ0NvdW50ID09IHNlcnZpY2UuZGVzaXJlZENvdW50XG4gICAgKVxuICB9XG5cbiAgZnVuY3Rpb24gZXh0cmFjdFRhZyhpbWFnZTogc3RyaW5nKTogc3RyaW5nIHwgbnVsbCB7XG4gICAgaWYgKCFpbWFnZS5pbmNsdWRlcyhcIjpcIikpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiBpbWFnZS5yZXBsYWNlKC8uKjovLCBcIlwiKVxuICB9XG5cbiAgY29uc3QgY2x1c3Rlck5hbWUgPSByZXF1aXJlRW52KFwiQ0xVU1RFUl9OQU1FXCIpXG4gIGNvbnN0IHNlcnZpY2VOYW1lID0gcmVxdWlyZUVudihcIlNFUlZJQ0VfTkFNRVwiKVxuXG4gIC8vIFRoZSBzZXJ2aWNlIG5hbWUgaXMgdW5rbm93biBkdXJpbmcgaW5pdGlhbCBkZXBsb3ltZW50IG9mIHRoZSBzdGFjay5cbiAgLy8gSW4gdGhpcyBjYXNlIHdlIHJldHVybiBzdGFiaWxpemVkIHN0YXR1cyBhcyB0cnVlLlxuICBpZiAoc2VydmljZU5hbWUgPT09IFwiXCIpIHtcbiAgICByZXR1cm4ge1xuICAgICAgY3VycmVudFRhZzogbnVsbCxcbiAgICAgIHN0YWJpbGl6ZWQ6IHRydWUsXG4gICAgfVxuICB9XG5cbiAgY29uc3Qgc2VydmljZSA9IGF3YWl0IGdldFNlcnZpY2UoY2x1c3Rlck5hbWUsIHNlcnZpY2VOYW1lKVxuICBjb25zdCBtYWluRGVwbG95bWVudCA9IHNlcnZpY2UuZGVwbG95bWVudHM/LmZpbmQoXG4gICAgKGl0KSA9PiBpdC5zdGF0dXMgPT09IFwiUFJJTUFSWVwiLFxuICApXG5cbiAgY29uc3QgdGFza0RlZmluaXRpb24gPSBhd2FpdCBnZXRUYXNrRGVmaW5pdGlvbihcbiAgICBtYWluRGVwbG95bWVudCEudGFza0RlZmluaXRpb24hLFxuICApXG5cbiAgLy8gT25seSBvbmUgY29udGFpbmVyIGlzIHN1cHBvcnRlZCBmb3IgdGhlIHRhc2sgZGVmaW5pdGlvbi5cblxuICByZXR1cm4ge1xuICAgIGN1cnJlbnRUYWc6IGV4dHJhY3RUYWcodGFza0RlZmluaXRpb24uY29udGFpbmVyRGVmaW5pdGlvbnMhWzBdLmltYWdlISksXG4gICAgc3RhYmlsaXplZDogaXNTdGFiaWxpemVkKHNlcnZpY2UpLFxuICB9XG59XG4iXX0=
@@ -1,47 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as iam from "aws-cdk-lib/aws-iam";
3
- import { EcsUpdateImageArtifactStatus } from "./artifact-status";
4
- interface Props {
5
- artifactStatus: EcsUpdateImageArtifactStatus;
6
- secretName: string;
7
- }
8
- /**
9
- * Container used for holding the current ECR tag for a ECS service.
10
- *
11
- * Since we are deploying our ECS services from both CloudFormation
12
- * (by having the TaskDefinition defined), as well as directly from
13
- * our CD pipeline by UpdateService call to ECS, we need to ensure
14
- * the referenced ECR image is kept in sync.
15
- *
16
- * To do this we use a container to hold the current ECR tag. This
17
- * is then looked up during deployment from CloudFormation, and
18
- * when deploying from CD pipeline it is updated before UpdateService
19
- * call.
20
- *
21
- * A secret is used as it can be dynamically resolved as part of the
22
- * CloudFormation template.
23
- *
24
- * We do not keep any default value for the container, as that might
25
- * lead us to later deploy a very old version of the build. It is
26
- * better if the deployment fails in this scenario. If this happens
27
- * the stack update will fail with:
28
- *
29
- * Could not find a value associated with JSONKey in SecretString
30
- */
31
- export declare class EcsUpdateImageTag extends constructs.Construct {
32
- private readonly secret;
33
- private readonly artifactStatus;
34
- readonly secretArn: string;
35
- constructor(scope: constructs.Construct, id: string, props: Props);
36
- grantUpdate(grantee: iam.IGrantable): iam.Grant;
37
- /**
38
- * A CloudFormation dynamic reference that will be resolved
39
- * during deployment.
40
- *
41
- * If we have not yet flagged the artifact as deployed,
42
- * we do not allow resolving the value. See the documentation
43
- * of {@link EcsUpdateImageArtifactStatus}.
44
- */
45
- getEcrTag(): string | null;
46
- }
47
- export {};
@@ -1,67 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.EcsUpdateImageTag = void 0;
4
- const constructs = require("constructs");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
7
- /**
8
- * Container used for holding the current ECR tag for a ECS service.
9
- *
10
- * Since we are deploying our ECS services from both CloudFormation
11
- * (by having the TaskDefinition defined), as well as directly from
12
- * our CD pipeline by UpdateService call to ECS, we need to ensure
13
- * the referenced ECR image is kept in sync.
14
- *
15
- * To do this we use a container to hold the current ECR tag. This
16
- * is then looked up during deployment from CloudFormation, and
17
- * when deploying from CD pipeline it is updated before UpdateService
18
- * call.
19
- *
20
- * A secret is used as it can be dynamically resolved as part of the
21
- * CloudFormation template.
22
- *
23
- * We do not keep any default value for the container, as that might
24
- * lead us to later deploy a very old version of the build. It is
25
- * better if the deployment fails in this scenario. If this happens
26
- * the stack update will fail with:
27
- *
28
- * Could not find a value associated with JSONKey in SecretString
29
- */
30
- class EcsUpdateImageTag extends constructs.Construct {
31
- constructor(scope, id, props) {
32
- super(scope, id);
33
- this.artifactStatus = props.artifactStatus;
34
- this.secret = new secretsmanager.Secret(this, "Secret", {
35
- secretName: props.secretName,
36
- generateSecretString: {
37
- // Do not modify this, as it would cause the secret to regenerate.
38
- secretStringTemplate: "{}",
39
- generateStringKey: "unusedField",
40
- },
41
- });
42
- this.secretArn = this.secret.secretArn;
43
- }
44
- grantUpdate(grantee) {
45
- return iam.Grant.addToPrincipal({
46
- grantee,
47
- actions: ["secretsmanager:UpdateSecret"],
48
- resourceArns: [this.secretArn],
49
- });
50
- }
51
- /**
52
- * A CloudFormation dynamic reference that will be resolved
53
- * during deployment.
54
- *
55
- * If we have not yet flagged the artifact as deployed,
56
- * we do not allow resolving the value. See the documentation
57
- * of {@link EcsUpdateImageArtifactStatus}.
58
- */
59
- getEcrTag() {
60
- if (!this.artifactStatus.artifactPushedAndTagUpdated) {
61
- return null;
62
- }
63
- return this.secret.secretValueFromJson("tag").toString();
64
- }
65
- }
66
- exports.EcsUpdateImageTag = EcsUpdateImageTag;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Vjcy11cGRhdGUtaW1hZ2UvdGFnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUN4QywyQ0FBMEM7QUFDMUMsaUVBQWdFO0FBUWhFOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0JHO0FBQ0gsTUFBYSxpQkFBa0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQUt6RCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQVk7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUE7UUFFMUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRTtZQUN0RCxVQUFVLEVBQUUsS0FBSyxDQUFDLFVBQVU7WUFDNUIsb0JBQW9CLEVBQUU7Z0JBQ3BCLGtFQUFrRTtnQkFDbEUsb0JBQW9CLEVBQUUsSUFBSTtnQkFDMUIsaUJBQWlCLEVBQUUsYUFBYTthQUNqQztTQUNGLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUE7SUFDeEMsQ0FBQztJQUVNLFdBQVcsQ0FBQyxPQUF1QjtRQUN4QyxPQUFPLEdBQUcsQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDO1lBQzlCLE9BQU87WUFDUCxPQUFPLEVBQUUsQ0FBQyw2QkFBNkIsQ0FBQztZQUN4QyxZQUFZLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1NBQy9CLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksU0FBUztRQUNkLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLDJCQUEyQixFQUFFLENBQUM7WUFDckQsT0FBTyxJQUFJLENBQUE7UUFDYixDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDLFFBQVEsRUFBRSxDQUFBO0lBQzFELENBQUM7Q0FDRjtBQTVDRCw4Q0E0Q0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCJcbmltcG9ydCB7IEVjc1VwZGF0ZUltYWdlQXJ0aWZhY3RTdGF0dXMgfSBmcm9tIFwiLi9hcnRpZmFjdC1zdGF0dXNcIlxuXG5pbnRlcmZhY2UgUHJvcHMge1xuICBhcnRpZmFjdFN0YXR1czogRWNzVXBkYXRlSW1hZ2VBcnRpZmFjdFN0YXR1c1xuICBzZWNyZXROYW1lOiBzdHJpbmdcbn1cblxuLyoqXG4gKiBDb250YWluZXIgdXNlZCBmb3IgaG9sZGluZyB0aGUgY3VycmVudCBFQ1IgdGFnIGZvciBhIEVDUyBzZXJ2aWNlLlxuICpcbiAqIFNpbmNlIHdlIGFyZSBkZXBsb3lpbmcgb3VyIEVDUyBzZXJ2aWNlcyBmcm9tIGJvdGggQ2xvdWRGb3JtYXRpb25cbiAqIChieSBoYXZpbmcgdGhlIFRhc2tEZWZpbml0aW9uIGRlZmluZWQpLCBhcyB3ZWxsIGFzIGRpcmVjdGx5IGZyb21cbiAqIG91ciBDRCBwaXBlbGluZSBieSBVcGRhdGVTZXJ2aWNlIGNhbGwgdG8gRUNTLCB3ZSBuZWVkIHRvIGVuc3VyZVxuICogdGhlIHJlZmVyZW5jZWQgRUNSIGltYWdlIGlzIGtlcHQgaW4gc3luYy5cbiAqXG4gKiBUbyBkbyB0aGlzIHdlIHVzZSBhIGNvbnRhaW5lciB0byBob2xkIHRoZSBjdXJyZW50IEVDUiB0YWcuIFRoaXNcbiAqIGlzIHRoZW4gbG9va2VkIHVwIGR1cmluZyBkZXBsb3ltZW50IGZyb20gQ2xvdWRGb3JtYXRpb24sIGFuZFxuICogd2hlbiBkZXBsb3lpbmcgZnJvbSBDRCBwaXBlbGluZSBpdCBpcyB1cGRhdGVkIGJlZm9yZSBVcGRhdGVTZXJ2aWNlXG4gKiBjYWxsLlxuICpcbiAqIEEgc2VjcmV0IGlzIHVzZWQgYXMgaXQgY2FuIGJlIGR5bmFtaWNhbGx5IHJlc29sdmVkIGFzIHBhcnQgb2YgdGhlXG4gKiBDbG91ZEZvcm1hdGlvbiB0ZW1wbGF0ZS5cbiAqXG4gKiBXZSBkbyBub3Qga2VlcCBhbnkgZGVmYXVsdCB2YWx1ZSBmb3IgdGhlIGNvbnRhaW5lciwgYXMgdGhhdCBtaWdodFxuICogbGVhZCB1cyB0byBsYXRlciBkZXBsb3kgYSB2ZXJ5IG9sZCB2ZXJzaW9uIG9mIHRoZSBidWlsZC4gSXQgaXNcbiAqIGJldHRlciBpZiB0aGUgZGVwbG95bWVudCBmYWlscyBpbiB0aGlzIHNjZW5hcmlvLiBJZiB0aGlzIGhhcHBlbnNcbiAqIHRoZSBzdGFjayB1cGRhdGUgd2lsbCBmYWlsIHdpdGg6XG4gKlxuICogICBDb3VsZCBub3QgZmluZCBhIHZhbHVlIGFzc29jaWF0ZWQgd2l0aCBKU09OS2V5IGluIFNlY3JldFN0cmluZ1xuICovXG5leHBvcnQgY2xhc3MgRWNzVXBkYXRlSW1hZ2VUYWcgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2VjcmV0OiBzZWNyZXRzbWFuYWdlci5TZWNyZXRcbiAgcHJpdmF0ZSByZWFkb25seSBhcnRpZmFjdFN0YXR1czogRWNzVXBkYXRlSW1hZ2VBcnRpZmFjdFN0YXR1c1xuICByZWFkb25seSBzZWNyZXRBcm46IHN0cmluZ1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5hcnRpZmFjdFN0YXR1cyA9IHByb3BzLmFydGlmYWN0U3RhdHVzXG5cbiAgICB0aGlzLnNlY3JldCA9IG5ldyBzZWNyZXRzbWFuYWdlci5TZWNyZXQodGhpcywgXCJTZWNyZXRcIiwge1xuICAgICAgc2VjcmV0TmFtZTogcHJvcHMuc2VjcmV0TmFtZSxcbiAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgIC8vIERvIG5vdCBtb2RpZnkgdGhpcywgYXMgaXQgd291bGQgY2F1c2UgdGhlIHNlY3JldCB0byByZWdlbmVyYXRlLlxuICAgICAgICBzZWNyZXRTdHJpbmdUZW1wbGF0ZTogXCJ7fVwiLFxuICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogXCJ1bnVzZWRGaWVsZFwiLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgdGhpcy5zZWNyZXRBcm4gPSB0aGlzLnNlY3JldC5zZWNyZXRBcm5cbiAgfVxuXG4gIHB1YmxpYyBncmFudFVwZGF0ZShncmFudGVlOiBpYW0uSUdyYW50YWJsZSk6IGlhbS5HcmFudCB7XG4gICAgcmV0dXJuIGlhbS5HcmFudC5hZGRUb1ByaW5jaXBhbCh7XG4gICAgICBncmFudGVlLFxuICAgICAgYWN0aW9uczogW1wic2VjcmV0c21hbmFnZXI6VXBkYXRlU2VjcmV0XCJdLFxuICAgICAgcmVzb3VyY2VBcm5zOiBbdGhpcy5zZWNyZXRBcm5dLFxuICAgIH0pXG4gIH1cblxuICAvKipcbiAgICogQSBDbG91ZEZvcm1hdGlvbiBkeW5hbWljIHJlZmVyZW5jZSB0aGF0IHdpbGwgYmUgcmVzb2x2ZWRcbiAgICogZHVyaW5nIGRlcGxveW1lbnQuXG4gICAqXG4gICAqIElmIHdlIGhhdmUgbm90IHlldCBmbGFnZ2VkIHRoZSBhcnRpZmFjdCBhcyBkZXBsb3llZCxcbiAgICogd2UgZG8gbm90IGFsbG93IHJlc29sdmluZyB0aGUgdmFsdWUuIFNlZSB0aGUgZG9jdW1lbnRhdGlvblxuICAgKiBvZiB7QGxpbmsgRWNzVXBkYXRlSW1hZ2VBcnRpZmFjdFN0YXR1c30uXG4gICAqL1xuICBwdWJsaWMgZ2V0RWNyVGFnKCk6IHN0cmluZyB8IG51bGwge1xuICAgIGlmICghdGhpcy5hcnRpZmFjdFN0YXR1cy5hcnRpZmFjdFB1c2hlZEFuZFRhZ1VwZGF0ZWQpIHtcbiAgICAgIHJldHVybiBudWxsXG4gICAgfVxuICAgIHJldHVybiB0aGlzLnNlY3JldC5zZWNyZXRWYWx1ZUZyb21Kc29uKFwidGFnXCIpLnRvU3RyaW5nKClcbiAgfVxufVxuIl19
@@ -1,14 +0,0 @@
1
- /**
2
- * The role used when running "cdk deploy".
3
- */
4
- export declare const cdkDeployRoleName = "liflig-cdk-deployer-cdk";
5
- /**
6
- * Path on S3 for pipeline configuration.
7
- */
8
- export declare function pipelineS3Prefix(pipelineName: string): string;
9
- /**
10
- * Key in S3 bucket used to trigger pipeline.
11
- *
12
- * This is an empty file within the pipeline path.
13
- */
14
- export declare function pipelineS3TriggerKey(pipelineName: string): string;
@@ -1,24 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.pipelineS3TriggerKey = exports.pipelineS3Prefix = exports.cdkDeployRoleName = void 0;
4
- /**
5
- * The role used when running "cdk deploy".
6
- */
7
- exports.cdkDeployRoleName = "liflig-cdk-deployer-cdk";
8
- /**
9
- * Path on S3 for pipeline configuration.
10
- */
11
- function pipelineS3Prefix(pipelineName) {
12
- return `pipelines/${pipelineName}/`;
13
- }
14
- exports.pipelineS3Prefix = pipelineS3Prefix;
15
- /**
16
- * Key in S3 bucket used to trigger pipeline.
17
- *
18
- * This is an empty file within the pipeline path.
19
- */
20
- function pipelineS3TriggerKey(pipelineName) {
21
- return `pipelines/${pipelineName}/trigger`;
22
- }
23
- exports.pipelineS3TriggerKey = pipelineS3TriggerKey;
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udmVudGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmVzL2NvbnZlbnRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBOztHQUVHO0FBQ1UsUUFBQSxpQkFBaUIsR0FBRyx5QkFBeUIsQ0FBQTtBQUUxRDs7R0FFRztBQUNILFNBQWdCLGdCQUFnQixDQUFDLFlBQW9CO0lBQ25ELE9BQU8sYUFBYSxZQUFZLEdBQUcsQ0FBQTtBQUNyQyxDQUFDO0FBRkQsNENBRUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0Isb0JBQW9CLENBQUMsWUFBb0I7SUFDdkQsT0FBTyxhQUFhLFlBQVksVUFBVSxDQUFBO0FBQzVDLENBQUM7QUFGRCxvREFFQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIHJvbGUgdXNlZCB3aGVuIHJ1bm5pbmcgXCJjZGsgZGVwbG95XCIuXG4gKi9cbmV4cG9ydCBjb25zdCBjZGtEZXBsb3lSb2xlTmFtZSA9IFwibGlmbGlnLWNkay1kZXBsb3llci1jZGtcIlxuXG4vKipcbiAqIFBhdGggb24gUzMgZm9yIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24uXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBwaXBlbGluZVMzUHJlZml4KHBpcGVsaW5lTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgcmV0dXJuIGBwaXBlbGluZXMvJHtwaXBlbGluZU5hbWV9L2Bcbn1cblxuLyoqXG4gKiBLZXkgaW4gUzMgYnVja2V0IHVzZWQgdG8gdHJpZ2dlciBwaXBlbGluZS5cbiAqXG4gKiBUaGlzIGlzIGFuIGVtcHR5IGZpbGUgd2l0aGluIHRoZSBwaXBlbGluZSBwYXRoLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcGlwZWxpbmVTM1RyaWdnZXJLZXkocGlwZWxpbmVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vdHJpZ2dlcmBcbn1cbiJdfQ==
@@ -1,18 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as ec2 from "aws-cdk-lib/aws-ec2";
3
- import * as s3 from "aws-cdk-lib/aws-s3";
4
- import * as sfn from "aws-cdk-lib/aws-stepfunctions";
5
- interface DeployEnvProps {
6
- accountId: string;
7
- afterSuccessfulDeploy?: sfn.Chain;
8
- artefactBucket: s3.IBucket;
9
- envName: string;
10
- vpc: ec2.IVpc;
11
- }
12
- export declare class DeployEnv extends constructs.Construct {
13
- chain: sfn.Chain;
14
- constructor(scope: constructs.Construct, id: string, props: DeployEnvProps);
15
- private getOrCreateCluster;
16
- private getOrCreateTaskSecurityGroup;
17
- }
18
- export {};
@@ -1,96 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.DeployEnv = void 0;
4
- const constructs = require("constructs");
5
- const ec2 = require("aws-cdk-lib/aws-ec2");
6
- const ecr = require("aws-cdk-lib/aws-ecr");
7
- const ecs = require("aws-cdk-lib/aws-ecs");
8
- const iam = require("aws-cdk-lib/aws-iam");
9
- const logs = require("aws-cdk-lib/aws-logs");
10
- const sfn = require("aws-cdk-lib/aws-stepfunctions");
11
- const tasks = require("aws-cdk-lib/aws-stepfunctions-tasks");
12
- const cdk = require("aws-cdk-lib");
13
- const conventions_1 = require("./conventions");
14
- class DeployEnv extends constructs.Construct {
15
- constructor(scope, id, props) {
16
- super(scope, id);
17
- const cluster = this.getOrCreateCluster(props.vpc);
18
- // We don't reuse the task definition across multiple pipelines
19
- // so that we can easier find the correct logs for each pipeline.
20
- const taskDefinition = new ecs.TaskDefinition(this, "TaskDefinition", {
21
- memoryMiB: "1024",
22
- cpu: "256",
23
- compatibility: ecs.Compatibility.FARGATE,
24
- });
25
- const containerDefinition = taskDefinition.addContainer("app", {
26
- image: ecs.ContainerImage.fromEcrRepository(ecr.Repository.fromRepositoryArn(this, "Repository",
27
- // See https://github.com/capralifecycle/liflig-cdk-deployer
28
- "arn:aws:ecr:eu-west-1:001112238813:repository/incub-common-liflig-cdk-deployer"), "1-experimental.2"),
29
- logging: ecs.LogDriver.awsLogs({
30
- logGroup: new logs.LogGroup(this, "LogGroup", {
31
- removalPolicy: cdk.RemovalPolicy.DESTROY,
32
- retention: logs.RetentionDays.ONE_MONTH,
33
- }),
34
- streamPrefix: "app",
35
- }),
36
- });
37
- const cdkRole = iam.Role.fromRoleArn(this, `CdkRole-${props.envName}`, `arn:aws:iam::${props.accountId}:role/${conventions_1.cdkDeployRoleName}`);
38
- cdkRole.grant(taskDefinition.taskRole, "sts:AssumeRole");
39
- props.artefactBucket.grantRead(taskDefinition.taskRole);
40
- this.chain = sfn.Chain.start(new tasks.EcsRunTask(this, `Deploy ${props.envName}`, {
41
- resultPath: sfn.JsonPath.DISCARD,
42
- securityGroups: [this.getOrCreateTaskSecurityGroup(props.vpc)],
43
- integrationPattern: sfn.IntegrationPattern.RUN_JOB,
44
- cluster,
45
- assignPublicIp: true,
46
- launchTarget: new tasks.EcsFargateLaunchTarget(),
47
- taskDefinition,
48
- containerOverrides: [
49
- {
50
- containerDefinition,
51
- environment: [
52
- {
53
- name: "CDK_TARGET_ROLE_ARN",
54
- value: cdkRole.roleArn,
55
- },
56
- {
57
- name: "CDK_ENV_NAME",
58
- value: props.envName,
59
- },
60
- {
61
- name: "CDK_CLOUD_ASSEMBLY",
62
- value: sfn.JsonPath.stringAt("$.CloudAssembly"),
63
- },
64
- {
65
- name: "CDK_VARIABLES",
66
- value: sfn.JsonPath.stringAt("$.Variables"),
67
- },
68
- ],
69
- },
70
- ],
71
- }));
72
- if (props.afterSuccessfulDeploy != null) {
73
- this.chain = this.chain.next(props.afterSuccessfulDeploy);
74
- }
75
- }
76
- // Reuse ECS cluster for multiple pipelines in same stack.
77
- getOrCreateCluster(vpc) {
78
- var _a;
79
- const stack = cdk.Stack.of(this);
80
- const uniqueId = "pipeline.04ad36b1.cluster";
81
- return ((_a = stack.node.tryFindChild(uniqueId)) !== null && _a !== void 0 ? _a : new ecs.Cluster(stack, uniqueId, {
82
- vpc,
83
- }));
84
- }
85
- // Reuse security group for multiple pipelines in same stack.
86
- getOrCreateTaskSecurityGroup(vpc) {
87
- var _a;
88
- const stack = cdk.Stack.of(this);
89
- const uniqueId = "pipeline.04ad36b1.security-group";
90
- return ((_a = stack.node.tryFindChild(uniqueId)) !== null && _a !== void 0 ? _a : new ec2.SecurityGroup(stack, uniqueId, {
91
- vpc,
92
- }));
93
- }
94
- }
95
- exports.DeployEnv = DeployEnv;
96
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LWVudi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9waXBlbGluZXMvZGVwbG95LWVudi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5Q0FBd0M7QUFDeEMsMkNBQTBDO0FBQzFDLDJDQUEwQztBQUMxQywyQ0FBMEM7QUFDMUMsMkNBQTBDO0FBQzFDLDZDQUE0QztBQUU1QyxxREFBb0Q7QUFDcEQsNkRBQTREO0FBQzVELG1DQUFrQztBQUNsQywrQ0FBaUQ7QUFVakQsTUFBYSxTQUFVLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFHakQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFxQjtRQUN4RSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUE7UUFFbEQsK0RBQStEO1FBQy9ELGlFQUFpRTtRQUVqRSxNQUFNLGNBQWMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQ3BFLFNBQVMsRUFBRSxNQUFNO1lBQ2pCLEdBQUcsRUFBRSxLQUFLO1lBQ1YsYUFBYSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsT0FBTztTQUN6QyxDQUFDLENBQUE7UUFFRixNQUFNLG1CQUFtQixHQUFHLGNBQWMsQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFO1lBQzdELEtBQUssRUFBRSxHQUFHLENBQUMsY0FBYyxDQUFDLGlCQUFpQixDQUN6QyxHQUFHLENBQUMsVUFBVSxDQUFDLGlCQUFpQixDQUM5QixJQUFJLEVBQ0osWUFBWTtZQUNaLDREQUE0RDtZQUM1RCxnRkFBZ0YsQ0FDakYsRUFDRCxrQkFBa0IsQ0FDbkI7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUM7Z0JBQzdCLFFBQVEsRUFBRSxJQUFJLElBQUks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TyxDQUNMLE1BQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUF1QixtQ0FDeEQsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxRQUFRLEVBQUU7WUFDckMsR0FBRztTQUNKLENBQUMsQ0FDSCxDQUFBO0lBQ0gsQ0FBQztDQUNGO0FBN0dELDhCQTZHQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIGVjciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVjclwiXG5pbXBvcnQgKiBhcyBlY3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lY3NcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sb2dzXCJcbmltcG9ydCAqIGFzIHMzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIlxuaW1wb3J0ICogYXMgc2ZuIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9uc1wiXG5pbXBvcnQgKiBhcyB0YXNrcyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMtdGFza3NcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgeyBjZGtEZXBsb3lSb2xlTmFtZSB9IGZyb20gXCIuL2NvbnZlbnRpb25zXCJcblxuaW50ZXJmYWNlIERlcGxveUVudlByb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmdcbiAgYWZ0ZXJTdWNjZXNzZnVsRGVwbG95Pzogc2ZuLkNoYWluXG4gIGFydGVmYWN0QnVja2V0OiBzMy5JQnVja2V0XG4gIGVudk5hbWU6IHN0cmluZ1xuICB2cGM6IGVjMi5JVnBjXG59XG5cbmV4cG9ydCBjbGFzcyBEZXBsb3lFbnYgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyBjaGFpbjogc2ZuLkNoYWluXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRGVwbG95RW52UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBjbHVzdGVyID0gdGhpcy5nZXRPckNyZWF0ZUNsdXN0ZXIocHJvcHMudnBjKVxuXG4gICAgLy8gV2UgZG9uJ3QgcmV1c2UgdGhlIHRhc2sgZGVmaW5pdGlvbiBhY3Jvc3MgbXVsdGlwbGUgcGlwZWxpbmVzXG4gICAgLy8gc28gdGhhdCB3ZSBjYW4gZWFzaWVyIGZpbmQgdGhlIGNvcnJlY3QgbG9ncyBmb3IgZWFjaCBwaXBlbGluZS5cblxuICAgIGNvbnN0IHRhc2tEZWZpbml0aW9uID0gbmV3IGVjcy5UYXNrRGVmaW5pdGlvbih0aGlzLCBcIlRhc2tEZWZpbml0aW9uXCIsIHtcbiAgICAgIG1lbW9yeU1pQjogXCIxMDI0XCIsXG4gICAgICBjcHU6IFwiMjU2XCIsXG4gICAgICBjb21wYXRpYmlsaXR5OiBlY3MuQ29tcGF0aWJpbGl0eS5GQVJHQVRFLFxuICAgIH0pXG5cbiAgICBjb25zdCBjb250YWluZXJEZWZpbml0aW9uID0gdGFza0RlZmluaXRpb24uYWRkQ29udGFpbmVyKFwiYXBwXCIsIHtcbiAgICAgIGltYWdlOiBlY3MuQ29udGFpbmVySW1hZ2UuZnJvbUVjclJlcG9zaXRvcnkoXG4gICAgICAgIGVjci5SZXBvc2l0b3J5LmZyb21SZXBvc2l0b3J5QXJuKFxuICAgICAgICAgIHRoaXMsXG4gICAgICAgICAgXCJSZXBvc2l0b3J5XCIsXG4gICAgICAgICAgLy8gU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9jYXByYWxpZmVjeWNsZS9saWZsaWctY2RrLWRlcGxveWVyXG4gICAgICAgICAgXCJhcm46YXdzOmVjcjpldS13ZXN0LTE6MDAxMTEyMjM4ODEzOnJlcG9zaXRvcnkvaW5jdWItY29tbW9uLWxpZmxpZy1jZGstZGVwbG95ZXJcIixcbiAgICAgICAgKSxcbiAgICAgICAgXCIxLWV4cGVyaW1lbnRhbC4yXCIsXG4gICAgICApLFxuICAgICAgbG9nZ2luZzogZWNzLkxvZ0RyaXZlci5hd3NMb2dzKHtcbiAgICAgICAgbG9nR3JvdXA6IG5ldyBsb2dzLkxvZ0dyb3VwKHRoaXMsIFwiTG9nR3JvdXBcIiwge1xuICAgICAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICAgICAgcmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuT05FX01PTlRILFxuICAgICAgICB9KSxcbiAgICAgICAgc3RyZWFtUHJlZml4OiBcImFwcFwiLFxuICAgICAgfSksXG4gICAgfSlcblxuICAgIGNvbnN0IGNka1JvbGUgPSBpYW0uUm9sZS5mcm9tUm9sZUFybihcbiAgICAgIHRoaXMsXG4gICAgICBgQ2RrUm9sZS0ke3Byb3BzLmVudk5hbWV9YCxcbiAgICAgIGBhcm46YXdzOmlhbTo6JHtwcm9wcy5hY2NvdW50SWR9OnJvbGUvJHtjZGtEZXBsb3lSb2xlTmFtZX1gLFxuICAgIClcblxuICAgIGNka1JvbGUuZ3JhbnQodGFza0RlZmluaXRpb24udGFza1JvbGUsIFwic3RzOkFzc3VtZVJvbGVcIilcblxuICAgIHByb3BzLmFydGVmYWN0QnVja2V0LmdyYW50UmVhZCh0YXNrRGVmaW5pdGlvbi50YXNrUm9sZSlcblxuICAgIHRoaXMuY2hhaW4gPSBzZm4uQ2hhaW4uc3RhcnQoXG4gICAgICBuZXcgdGFza3MuRWNzUnVuVGFzayh0aGlzLCBgRGVwbG95ICR7cHJvcHMuZW52TmFtZX1gLCB7XG4gICAgICAgIHJlc3VsdFBhdGg6IHNmbi5Kc29uUGF0aC5ESVNDQVJELFxuICAgICAgICBzZWN1cml0eUdyb3VwczogW3RoaXMuZ2V0T3JDcmVhdGVUYXNrU2VjdXJpdHlHcm91cChwcm9wcy52cGMpXSxcbiAgICAgICAgaW50ZWdyYXRpb25QYXR0ZXJuOiBzZm4uSW50ZWdyYXRpb25QYXR0ZXJuLlJVTl9KT0IsXG4gICAgICAgIGNsdXN0ZXIsXG4gICAgICAgIGFzc2lnblB1YmxpY0lwOiB0cnVlLFxuICAgICAgICBsYXVuY2hUYXJnZXQ6IG5ldyB0YXNrcy5FY3NGYXJnYXRlTGF1bmNoVGFyZ2V0KCksXG4gICAgICAgIHRhc2tEZWZpbml0aW9uLFxuICAgICAgICBjb250YWluZXJPdmVycmlkZXM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBjb250YWluZXJEZWZpbml0aW9uLFxuICAgICAgICAgICAgZW52aXJvbm1lbnQ6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6IFwiQ0RLX1RBUkdFVF9ST0xFX0FSTlwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBjZGtSb2xlLnJvbGVBcm4sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiBcIkNES19FTlZfTkFNRVwiLFxuICAgICAgICAgICAgICAgIHZhbHVlOiBwcm9wcy5lbnZOYW1lLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJDREtfQ0xPVURfQVNTRU1CTFlcIixcbiAgICAgICAgICAgICAgICB2YWx1ZTogc2ZuLkpzb25QYXRoLnN0cmluZ0F0KFwiJC5DbG91ZEFzc2VtYmx5XCIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogXCJDREtfVkFSSUFCTEVTXCIsXG4gICAgICAgICAgICAgICAgdmFsdWU6IHNmbi5Kc29uUGF0aC5zdHJpbmdBdChcIiQuVmFyaWFibGVzXCIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgaWYgKHByb3BzLmFmdGVyU3VjY2Vzc2Z1bERlcGxveSAhPSBudWxsKSB7XG4gICAgICB0aGlzLmNoYWluID0gdGhpcy5jaGFpbi5uZXh0KHByb3BzLmFmdGVyU3VjY2Vzc2Z1bERlcGxveSlcbiAgICB9XG4gIH1cblxuICAvLyBSZXVzZSBFQ1MgY2x1c3RlciBmb3IgbXVsdGlwbGUgcGlwZWxpbmVzIGluIHNhbWUgc3RhY2suXG4gIHByaXZhdGUgZ2V0T3JDcmVhdGVDbHVzdGVyKHZwYzogZWMyLklWcGMpOiBlY3MuQ2x1c3RlciB7XG4gICAgY29uc3Qgc3RhY2sgPSBjZGsuU3RhY2sub2YodGhpcylcbiAgICBjb25zdCB1bmlxdWVJZCA9IFwicGlwZWxpbmUuMDRhZDM2YjEuY2x1c3RlclwiXG4gICAgcmV0dXJuIChcbiAgICAgIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZCh1bmlxdWVJZCkgYXMgZWNzLkNsdXN0ZXIpID8/XG4gICAgICBuZXcgZWNzLkNsdXN0ZXIoc3RhY2ssIHVuaXF1ZUlkLCB7XG4gICAgICAgIHZwYyxcbiAgICAgIH0pXG4gICAgKVxuICB9XG5cbiAgLy8gUmV1c2Ugc2VjdXJpdHkgZ3JvdXAgZm9yIG11bHRpcGxlIHBpcGVsaW5lcyBpbiBzYW1lIHN0YWNrLlxuICBwcml2YXRlIGdldE9yQ3JlYXRlVGFza1NlY3VyaXR5R3JvdXAodnBjOiBlYzIuSVZwYyk6IGVjMi5TZWN1cml0eUdyb3VwIHtcbiAgICBjb25zdCBzdGFjayA9IGNkay5TdGFjay5vZih0aGlzKVxuICAgIGNvbnN0IHVuaXF1ZUlkID0gXCJwaXBlbGluZS4wNGFkMzZiMS5zZWN1cml0eS1ncm91cFwiXG4gICAgcmV0dXJuIChcbiAgICAgIChzdGFjay5ub2RlLnRyeUZpbmRDaGlsZCh1bmlxdWVJZCkgYXMgZWMyLlNlY3VyaXR5R3JvdXApID8/XG4gICAgICBuZXcgZWMyLlNlY3VyaXR5R3JvdXAoc3RhY2ssIHVuaXF1ZUlkLCB7XG4gICAgICAgIHZwYyxcbiAgICAgIH0pXG4gICAgKVxuICB9XG59XG4iXX0=
@@ -1,2 +0,0 @@
1
- export { LifligCdkDeployerDeps, LifligCdkDeployerDepsProps, } from "./liflig-cdk-deployer-deps";
2
- export { Pipeline, PipelineEnvironment, PipelineProps } from "./pipeline";
@@ -1,8 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.Pipeline = exports.LifligCdkDeployerDeps = void 0;
4
- var liflig_cdk_deployer_deps_1 = require("./liflig-cdk-deployer-deps");
5
- Object.defineProperty(exports, "LifligCdkDeployerDeps", { enumerable: true, get: function () { return liflig_cdk_deployer_deps_1.LifligCdkDeployerDeps; } });
6
- var pipeline_1 = require("./pipeline");
7
- Object.defineProperty(exports, "Pipeline", { enumerable: true, get: function () { return pipeline_1.Pipeline; } });
8
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvcGlwZWxpbmVzL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHVFQUdtQztBQUZqQyxpSUFBQSxxQkFBcUIsT0FBQTtBQUd2Qix1Q0FBeUU7QUFBaEUsb0dBQUEsUUFBUSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHtcbiAgTGlmbGlnQ2RrRGVwbG95ZXJEZXBzLFxuICBMaWZsaWdDZGtEZXBsb3llckRlcHNQcm9wcyxcbn0gZnJvbSBcIi4vbGlmbGlnLWNkay1kZXBsb3llci1kZXBzXCJcbmV4cG9ydCB7IFBpcGVsaW5lLCBQaXBlbGluZUVudmlyb25tZW50LCBQaXBlbGluZVByb3BzIH0gZnJvbSBcIi4vcGlwZWxpbmVcIlxuIl19
@@ -1,13 +0,0 @@
1
- import * as constructs from "constructs";
2
- export interface LifligCdkDeployerDepsProps {
3
- trustedAccountIds: string[];
4
- }
5
- /**
6
- * Resources needed so liflig-cdk-deployer can deploy to the account.
7
- *
8
- * This must exist in each target account that the pipeline should
9
- * be able to deploy into.
10
- */
11
- export declare class LifligCdkDeployerDeps extends constructs.Construct {
12
- constructor(scope: constructs.Construct, id: string, props: LifligCdkDeployerDepsProps);
13
- }
@@ -1,35 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.LifligCdkDeployerDeps = void 0;
4
- const constructs = require("constructs");
5
- const iam = require("aws-cdk-lib/aws-iam");
6
- const cdk = require("aws-cdk-lib");
7
- const conventions_1 = require("./conventions");
8
- /**
9
- * Resources needed so liflig-cdk-deployer can deploy to the account.
10
- *
11
- * This must exist in each target account that the pipeline should
12
- * be able to deploy into.
13
- */
14
- class LifligCdkDeployerDeps extends constructs.Construct {
15
- constructor(scope, id, props) {
16
- super(scope, id);
17
- const account = cdk.Stack.of(this).account;
18
- // The role used when running "cdk deploy".
19
- const cdkRole = new iam.Role(this, "CdkRole", {
20
- roleName: conventions_1.cdkDeployRoleName,
21
- assumedBy: new iam.CompositePrincipal(...props.trustedAccountIds.map((it) => new iam.AccountPrincipal(it))),
22
- });
23
- // Roles used by CDK CLI for the actual deployment.
24
- // (For use under new-style synthesize.)
25
- cdkRole.addToPolicy(new iam.PolicyStatement({
26
- actions: ["sts:AssumeRole"],
27
- resources: [
28
- `arn:aws:iam::${account}:role/*-deploy-role-*`,
29
- `arn:aws:iam::${account}:role/*-publishing-role-*`,
30
- ],
31
- }));
32
- }
33
- }
34
- exports.LifligCdkDeployerDeps = LifligCdkDeployerDeps;
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmbGlnLWNkay1kZXBsb3llci1kZXBzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL3BpcGVsaW5lcy9saWZsaWctY2RrLWRlcGxveWVyLWRlcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLDJDQUEwQztBQUMxQyxtQ0FBa0M7QUFDbEMsK0NBQWlEO0FBTWpEOzs7OztHQUtHO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM3RCxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUFpQztRQUVqQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUUxQywyQ0FBMkM7UUFDM0MsTUFBTSxPQUFPLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDNUMsUUFBUSxFQUFFLCtCQUFpQjtZQUMzQixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsa0JBQWtCLENBQ25DLEdBQUcsS0FBSyxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FDckU7U0FDRixDQUFDLENBQUE7UUFFRixtREFBbUQ7UUFDbkQsd0NBQXdDO1FBQ3hDLE9BQU8sQ0FBQyxXQUFXLENBQ2pCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztZQUMzQixTQUFTLEVBQUU7Z0JBQ1QsZ0JBQWdCLE9BQU8sdUJBQXVCO2dCQUM5QyxnQkFBZ0IsT0FBTywyQkFBMkI7YUFDbkQ7U0FDRixDQUFDLENBQ0gsQ0FBQTtJQUNILENBQUM7Q0FDRjtBQTlCRCxzREE4QkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCB7IGNka0RlcGxveVJvbGVOYW1lIH0gZnJvbSBcIi4vY29udmVudGlvbnNcIlxuXG5leHBvcnQgaW50ZXJmYWNlIExpZmxpZ0Nka0RlcGxveWVyRGVwc1Byb3BzIHtcbiAgdHJ1c3RlZEFjY291bnRJZHM6IHN0cmluZ1tdXG59XG5cbi8qKlxuICogUmVzb3VyY2VzIG5lZWRlZCBzbyBsaWZsaWctY2RrLWRlcGxveWVyIGNhbiBkZXBsb3kgdG8gdGhlIGFjY291bnQuXG4gKlxuICogVGhpcyBtdXN0IGV4aXN0IGluIGVhY2ggdGFyZ2V0IGFjY291bnQgdGhhdCB0aGUgcGlwZWxpbmUgc2hvdWxkXG4gKiBiZSBhYmxlIHRvIGRlcGxveSBpbnRvLlxuICovXG5leHBvcnQgY2xhc3MgTGlmbGlnQ2RrRGVwbG95ZXJEZXBzIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTGlmbGlnQ2RrRGVwbG95ZXJEZXBzUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IGFjY291bnQgPSBjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudFxuXG4gICAgLy8gVGhlIHJvbGUgdXNlZCB3aGVuIHJ1bm5pbmcgXCJjZGsgZGVwbG95XCIuXG4gICAgY29uc3QgY2RrUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIkNka1JvbGVcIiwge1xuICAgICAgcm9sZU5hbWU6IGNka0RlcGxveVJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkNvbXBvc2l0ZVByaW5jaXBhbChcbiAgICAgICAgLi4ucHJvcHMudHJ1c3RlZEFjY291bnRJZHMubWFwKChpdCkgPT4gbmV3IGlhbS5BY2NvdW50UHJpbmNpcGFsKGl0KSksXG4gICAgICApLFxuICAgIH0pXG5cbiAgICAvLyBSb2xlcyB1c2VkIGJ5IENESyBDTEkgZm9yIHRoZSBhY3R1YWwgZGVwbG95bWVudC5cbiAgICAvLyAoRm9yIHVzZSB1bmRlciBuZXctc3R5bGUgc3ludGhlc2l6ZS4pXG4gICAgY2RrUm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wic3RzOkFzc3VtZVJvbGVcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGBhcm46YXdzOmlhbTo6JHthY2NvdW50fTpyb2xlLyotZGVwbG95LXJvbGUtKmAsXG4gICAgICAgICAgYGFybjphd3M6aWFtOjoke2FjY291bnR9OnJvbGUvKi1wdWJsaXNoaW5nLXJvbGUtKmAsXG4gICAgICAgIF0sXG4gICAgICB9KSxcbiAgICApXG4gIH1cbn1cbiJdfQ==
@@ -1,78 +0,0 @@
1
- import * as constructs from "constructs";
2
- import * as ec2 from "aws-cdk-lib/aws-ec2";
3
- import * as s3 from "aws-cdk-lib/aws-s3";
4
- import * as sfn from "aws-cdk-lib/aws-stepfunctions";
5
- export interface PipelineProps {
6
- /**
7
- * Bucket holding pipeline configuration and trigger file.
8
- *
9
- * @default - use existing bucket based on Griid conventions
10
- */
11
- artifactsBucket?: s3.IBucket;
12
- /**
13
- * Environments for this pipeline. Each environment is deployed sequentially
14
- * in the order given.
15
- */
16
- environments: PipelineEnvironment[];
17
- /**
18
- * Name of pipeline. This is used for the path where configuration
19
- * is stored in S3.
20
- */
21
- pipelineName: string;
22
- /**
23
- * Trigger the pipeline when the trigger file is written.
24
- *
25
- * @default - true
26
- */
27
- triggerEnabled?: boolean;
28
- /**
29
- * VPC used for Fargate resources.
30
- */
31
- vpc: ec2.IVpc;
32
- }
33
- export interface PipelineEnvironment {
34
- /**
35
- * Account number hosting the environment.
36
- */
37
- accountId: string;
38
- /**
39
- * Additional tasks to run after the environment has been deployed.
40
- */
41
- afterSuccessfulDeploy?: sfn.Chain;
42
- /**
43
- * Name of environment.
44
- */
45
- name: string;
46
- }
47
- /**
48
- * Pipeline for doing a multi-account CDK deployment based
49
- * on a built CDK Cloud Assembly and parameters stored in S3.
50
- *
51
- * The accounts being deployed to must be provisioned with
52
- * the LifligCdkDeployerDeps construct so expected IAM
53
- * roles is present.
54
- *
55
- * The pipeline starts by writing an empty file to
56
- * s3://<artifacts-bucket>/pipelines/<pipeline-name>/trigger
57
- *
58
- * The CDK deploy process is handled by liflig-cdk-deployer.
59
- * See https://github.com/capralifecycle/liflig-cdk-deployer
60
- *
61
- * Configuration files are read from S3 at the path
62
- * s3://<artifacts-bucket>/pipelines/<pipeline-name>/
63
- *
64
- * - cloud-assembly.json which has the format described as
65
- * CDK_CLOUD_ASSEMBLY in liflig-cdk-deployer
66
- *
67
- * - variables*.json which can be zero or more files
68
- * with string-string map that will be concatenated to
69
- * form the format described as CDK_VARIABLES in
70
- * liflig-cdk-deployer
71
- *
72
- * The separation of Cloud Assembly details and variables enables
73
- * separation of IaC code and application code if they are not
74
- * colocated in the same repository.
75
- */
76
- export declare class Pipeline extends constructs.Construct {
77
- constructor(scope: constructs.Construct, id: string, props: PipelineProps);
78
- }