@liflig/cdk 2.17.0 → 2.18.0
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/package.json +12 -12
- package/assets/cloudtrail-slack-integration-lambda/main.py +0 -267
- package/assets/pipeline-slack-notification-lambda/index.py +0 -300
- package/assets/prepare-cdk-source-lambda/index.py +0 -159
- package/assets/slack-alarm-lambda/index.py +0 -103
- package/lib/alarms/database-alarms.d.ts +0 -125
- package/lib/alarms/database-alarms.js +0 -171
- package/lib/alarms/index.d.ts +0 -3
- package/lib/alarms/index.js +0 -10
- package/lib/alarms/service-alarms.d.ts +0 -145
- package/lib/alarms/service-alarms.js +0 -148
- package/lib/alarms/ses-alarms.d.ts +0 -67
- package/lib/alarms/ses-alarms.js +0 -49
- package/lib/alarms/slack-alarm.d.ts +0 -25
- package/lib/alarms/slack-alarm.js +0 -47
- package/lib/bastion-host.d.ts +0 -41
- package/lib/bastion-host.js +0 -86
- package/lib/bin/cdk-create-snapshots.d.ts +0 -2
- package/lib/bin/fetch-pipeline-variables.d.ts +0 -2
- package/lib/build-artifacts/index.d.ts +0 -68
- package/lib/build-artifacts/index.js +0 -118
- package/lib/cdk-deploy/cdk-deploy.d.ts +0 -63
- package/lib/cdk-deploy/cdk-deploy.js +0 -175
- package/lib/cdk-deploy/index.d.ts +0 -1
- package/lib/cdk-deploy/index.js +0 -6
- package/lib/cdk-deploy/start-deploy-handler.d.ts +0 -8
- package/lib/cdk-deploy/start-deploy-handler.js +0 -72
- package/lib/cdk-deploy/status-handler.d.ts +0 -6
- package/lib/cdk-deploy/status-handler.js +0 -83
- package/lib/cdk-pipelines/cloud-assembly-lookup-handler.d.ts +0 -6
- package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +0 -63
- package/lib/cdk-pipelines/index.d.ts +0 -3
- package/lib/cdk-pipelines/index.js +0 -10
- package/lib/cdk-pipelines/liflig-cdk-pipeline.d.ts +0 -110
- package/lib/cdk-pipelines/liflig-cdk-pipeline.js +0 -232
- package/lib/cdk-pipelines/slack-notification.d.ts +0 -51
- package/lib/cdk-pipelines/slack-notification.js +0 -54
- package/lib/cdk-pipelines/variables.d.ts +0 -15
- package/lib/cdk-pipelines/variables.js +0 -80
- package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.d.ts +0 -47
- package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +0 -211
- package/lib/cloudtrail-slack-integration/index.d.ts +0 -1
- package/lib/cloudtrail-slack-integration/index.js +0 -6
- package/lib/configure-parameters/configure-parameters.d.ts +0 -61
- package/lib/configure-parameters/configure-parameters.js +0 -94
- package/lib/configure-parameters/index.d.ts +0 -1
- package/lib/configure-parameters/index.js +0 -6
- package/lib/cross-region-ssm-parameter.d.ts +0 -13
- package/lib/cross-region-ssm-parameter.js +0 -46
- package/lib/ecs/cluster.d.ts +0 -25
- package/lib/ecs/cluster.js +0 -70
- package/lib/ecs/fargate-service.d.ts +0 -62
- package/lib/ecs/fargate-service.js +0 -99
- package/lib/ecs/index.d.ts +0 -3
- package/lib/ecs/index.js +0 -10
- package/lib/ecs/listener-rule.d.ts +0 -25
- package/lib/ecs/listener-rule.js +0 -27
- package/lib/ecs-update-image/artifact-status.d.ts +0 -39
- package/lib/ecs-update-image/artifact-status.js +0 -41
- package/lib/ecs-update-image/ecs-update-image.d.ts +0 -41
- package/lib/ecs-update-image/ecs-update-image.js +0 -98
- package/lib/ecs-update-image/index.d.ts +0 -3
- package/lib/ecs-update-image/index.js +0 -10
- package/lib/ecs-update-image/start-deploy-handler.d.ts +0 -6
- package/lib/ecs-update-image/start-deploy-handler.js +0 -104
- package/lib/ecs-update-image/status-handler.d.ts +0 -11
- package/lib/ecs-update-image/status-handler.js +0 -74
- package/lib/ecs-update-image/tag.d.ts +0 -47
- package/lib/ecs-update-image/tag.js +0 -67
- package/lib/feature-flags.d.ts +0 -18
- package/lib/feature-flags.js +0 -48
- package/lib/griid/artefact-bucket.d.ts +0 -7
- package/lib/griid/artefact-bucket.js +0 -30
- package/lib/griid/index.d.ts +0 -4
- package/lib/griid/index.js +0 -18
- package/lib/hosted-zone-with-param.d.ts +0 -29
- package/lib/hosted-zone-with-param.js +0 -65
- package/lib/index.d.ts +0 -32
- package/lib/kinesis/index.d.ts +0 -1
- package/lib/kinesis/index.js +0 -6
- package/lib/kinesis/kinesis-to-datadog-stream.d.ts +0 -28
- package/lib/kinesis/kinesis-to-datadog-stream.js +0 -126
- package/lib/load-balancer/index.d.ts +0 -1
- package/lib/load-balancer/index.js +0 -6
- package/lib/load-balancer/load-balancer.d.ts +0 -16
- package/lib/load-balancer/load-balancer.js +0 -60
- package/lib/pipelines/conventions.d.ts +0 -14
- package/lib/pipelines/conventions.js +0 -24
- package/lib/pipelines/deploy-env.d.ts +0 -18
- package/lib/pipelines/deploy-env.js +0 -96
- package/lib/pipelines/index.d.ts +0 -2
- package/lib/pipelines/index.js +0 -8
- package/lib/pipelines/liflig-cdk-deployer-deps.d.ts +0 -13
- package/lib/pipelines/liflig-cdk-deployer-deps.js +0 -35
- package/lib/pipelines/pipeline.d.ts +0 -78
- package/lib/pipelines/pipeline.js +0 -224
- package/lib/platform/index.d.ts +0 -1
- package/lib/platform/index.js +0 -7
- package/lib/platform/platform.d.ts +0 -37
- package/lib/platform/platform.js +0 -57
- package/lib/rds/database.d.ts +0 -49
- package/lib/rds/database.js +0 -60
- package/lib/rds/index.d.ts +0 -1
- package/lib/rds/index.js +0 -6
- package/lib/ses/configurationsetdeliveryoptions/index.d.ts +0 -26
- package/lib/ses/configurationsetdeliveryoptions/index.js +0 -48
- package/lib/ses/configurationsetsnsdestination/handler.d.ts +0 -17
- package/lib/ses/configurationsetsnsdestination/handler.js +0 -75
- package/lib/ses/configurationsetsnsdestination/index.d.ts +0 -29
- package/lib/ses/configurationsetsnsdestination/index.js +0 -75
- package/lib/ses/index.d.ts +0 -4
- package/lib/ses/index.js +0 -12
- package/lib/ses/sesdomain/handler.d.ts +0 -10
- package/lib/ses/sesdomain/handler.js +0 -82
- package/lib/ses/sesdomain/index.d.ts +0 -57
- package/lib/ses/sesdomain/index.js +0 -94
- package/lib/ses/sesverifyemail/handler.d.ts +0 -9
- package/lib/ses/sesverifyemail/handler.js +0 -25
- package/lib/ses/sesverifyemail/index.d.ts +0 -13
- package/lib/ses/sesverifyemail/index.js +0 -51
- package/lib/snapshots.d.ts +0 -4
- package/lib/snapshots.js +0 -214
- package/lib/ssm-parameter-backed-resource.d.ts +0 -45
- package/lib/ssm-parameter-backed-resource.js +0 -67
- package/lib/ssm-parameter-reader.d.ts +0 -21
- package/lib/ssm-parameter-reader.js +0 -48
- package/lib/tags.d.ts +0 -8
- package/lib/tags.js +0 -36
- package/lib/utils.d.ts +0 -2
- package/lib/utils.js +0 -17
- package/lib/webapp/index.d.ts +0 -3
- package/lib/webapp/index.js +0 -10
- package/lib/webapp/monitor.d.ts +0 -187
- package/lib/webapp/monitor.js +0 -156
- package/lib/webapp/security-headers.d.ts +0 -38
- package/lib/webapp/security-headers.js +0 -129
- package/lib/webapp/webapp.d.ts +0 -116
- package/lib/webapp/webapp.js +0 -118
- package/lib/webapp-deploy-via-role.d.ts +0 -25
- package/lib/webapp-deploy-via-role.js +0 -32
package/lib/kinesis/index.js
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KinesisToDatadogStream = void 0;
|
|
4
|
-
var kinesis_to_datadog_stream_1 = require("./kinesis-to-datadog-stream");
|
|
5
|
-
Object.defineProperty(exports, "KinesisToDatadogStream", { enumerable: true, get: function () { return kinesis_to_datadog_stream_1.KinesisToDatadogStream; } });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMva2luZXNpcy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSx5RUFHb0M7QUFGbEMsbUlBQUEsc0JBQXNCLE9BQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQge1xuICBLaW5lc2lzVG9EYXRhZG9nU3RyZWFtLFxuICBLaW5lc2lzVG9EYXRhZG9nU3RyZWFtUHJvcHMsXG59IGZyb20gXCIuL2tpbmVzaXMtdG8tZGF0YWRvZy1zdHJlYW1cIlxuIl19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import * as constructs from "constructs";
|
|
2
|
-
import * as logs from "aws-cdk-lib/aws-logs";
|
|
3
|
-
export interface KinesisToDatadogStreamProps {
|
|
4
|
-
/**
|
|
5
|
-
*
|
|
6
|
-
* The name of the SecretsManager secret where your Datadog API key is saved.
|
|
7
|
-
*
|
|
8
|
-
* The secret must be a JSON object on the format { "value": "SECRET" }
|
|
9
|
-
*
|
|
10
|
-
*/
|
|
11
|
-
datadogApiKeySecretName: string;
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* The CloudWatch log groups from you are streaming to Datadog
|
|
15
|
-
*
|
|
16
|
-
*/
|
|
17
|
-
logGroups: logs.ILogGroup[];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
*
|
|
21
|
-
* Forwards logs from log-groups in CloudWatch to a Datadog account.
|
|
22
|
-
* The logs are delivered through a Firehose delivery stream, which is being subscribed to the log-groups in CloudWatch.
|
|
23
|
-
*
|
|
24
|
-
* @author Stein-Aage
|
|
25
|
-
*/
|
|
26
|
-
export declare class KinesisToDatadogStream extends constructs.Construct {
|
|
27
|
-
constructor(scope: constructs.Construct, id: string, props: KinesisToDatadogStreamProps);
|
|
28
|
-
}
|
|
@@ -1,126 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.KinesisToDatadogStream = void 0;
|
|
4
|
-
const constructs = require("constructs");
|
|
5
|
-
const iam = require("aws-cdk-lib/aws-iam");
|
|
6
|
-
const firehose = require("aws-cdk-lib/aws-kinesisfirehose");
|
|
7
|
-
const logs = require("aws-cdk-lib/aws-logs");
|
|
8
|
-
const s3 = require("aws-cdk-lib/aws-s3");
|
|
9
|
-
const aws_s3_1 = require("aws-cdk-lib/aws-s3");
|
|
10
|
-
const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
|
|
11
|
-
const cdk = require("aws-cdk-lib");
|
|
12
|
-
/**
|
|
13
|
-
*
|
|
14
|
-
* Forwards logs from log-groups in CloudWatch to a Datadog account.
|
|
15
|
-
* The logs are delivered through a Firehose delivery stream, which is being subscribed to the log-groups in CloudWatch.
|
|
16
|
-
*
|
|
17
|
-
* @author Stein-Aage
|
|
18
|
-
*/
|
|
19
|
-
class KinesisToDatadogStream extends constructs.Construct {
|
|
20
|
-
constructor(scope, id, props) {
|
|
21
|
-
super(scope, id);
|
|
22
|
-
const deliveryStreamLogGroup = new logs.LogGroup(this, "DeliveryStreamLogGroup");
|
|
23
|
-
const deliveryStreamLogStream = new logs.LogStream(this, "DeliveryStreamLogStream", {
|
|
24
|
-
logGroup: deliveryStreamLogGroup,
|
|
25
|
-
});
|
|
26
|
-
const failedDataBucket = new s3.Bucket(this, "FailedDataBucket", {
|
|
27
|
-
blockPublicAccess: aws_s3_1.BlockPublicAccess.BLOCK_ALL,
|
|
28
|
-
});
|
|
29
|
-
const cloudWatchLogsRole = new iam.Role(this, "CloudWatchLogsRole", {
|
|
30
|
-
assumedBy: new iam.ServicePrincipal(`logs.${cdk.Stack.of(this).region}.amazonaws.com`),
|
|
31
|
-
});
|
|
32
|
-
const firehoseLogsRole = new iam.Role(this, "FirehoseLogsRole", {
|
|
33
|
-
assumedBy: new iam.ServicePrincipal("firehose.amazonaws.com"),
|
|
34
|
-
});
|
|
35
|
-
const datadogDeliveryStream = new firehose.CfnDeliveryStream(this, "DeliveryStream", {
|
|
36
|
-
deliveryStreamType: "DirectPut",
|
|
37
|
-
httpEndpointDestinationConfiguration: {
|
|
38
|
-
roleArn: firehoseLogsRole.roleArn,
|
|
39
|
-
endpointConfiguration: {
|
|
40
|
-
url: "https://aws-kinesis-http-intake.logs.datadoghq.eu/v1/input",
|
|
41
|
-
accessKey: secretsmanager.Secret.fromSecretNameV2(scope, "DatadogApiKey", props.datadogApiKeySecretName)
|
|
42
|
-
.secretValueFromJson("value")
|
|
43
|
-
.toString(),
|
|
44
|
-
name: "datadog-logs-endpoint",
|
|
45
|
-
},
|
|
46
|
-
requestConfiguration: {
|
|
47
|
-
contentEncoding: "GZIP",
|
|
48
|
-
},
|
|
49
|
-
cloudWatchLoggingOptions: {
|
|
50
|
-
enabled: true,
|
|
51
|
-
logGroupName: deliveryStreamLogGroup.logGroupName,
|
|
52
|
-
logStreamName: deliveryStreamLogStream.logStreamName,
|
|
53
|
-
},
|
|
54
|
-
bufferingHints: {
|
|
55
|
-
intervalInSeconds: 60,
|
|
56
|
-
sizeInMBs: 4,
|
|
57
|
-
},
|
|
58
|
-
retryOptions: {
|
|
59
|
-
durationInSeconds: 60,
|
|
60
|
-
},
|
|
61
|
-
s3BackupMode: "FailedDataOnly",
|
|
62
|
-
s3Configuration: {
|
|
63
|
-
bucketArn: failedDataBucket.bucketArn,
|
|
64
|
-
compressionFormat: "UNCOMPRESSED",
|
|
65
|
-
roleArn: firehoseLogsRole.roleArn,
|
|
66
|
-
},
|
|
67
|
-
},
|
|
68
|
-
});
|
|
69
|
-
new iam.Policy(this, "CloudWatchLogsPolicy", {
|
|
70
|
-
document: new iam.PolicyDocument({
|
|
71
|
-
statements: [
|
|
72
|
-
new iam.PolicyStatement({
|
|
73
|
-
actions: ["firehose:PutRecord", "firehose:PutRecordBatch"],
|
|
74
|
-
resources: [datadogDeliveryStream.attrArn],
|
|
75
|
-
}),
|
|
76
|
-
],
|
|
77
|
-
}),
|
|
78
|
-
roles: [cloudWatchLogsRole],
|
|
79
|
-
});
|
|
80
|
-
new iam.Policy(this, "FirehoseLogsPolicy", {
|
|
81
|
-
document: new iam.PolicyDocument({
|
|
82
|
-
statements: [
|
|
83
|
-
new iam.PolicyStatement({
|
|
84
|
-
actions: [
|
|
85
|
-
"s3:AbortMultipartUpload",
|
|
86
|
-
"s3:GetBucketLocation",
|
|
87
|
-
"s3:GetObject",
|
|
88
|
-
"s3:ListBucket",
|
|
89
|
-
"s3:ListBucketMultipartUploads",
|
|
90
|
-
"s3:PutObject",
|
|
91
|
-
],
|
|
92
|
-
resources: [
|
|
93
|
-
failedDataBucket.bucketArn,
|
|
94
|
-
`${failedDataBucket.bucketArn}/*`,
|
|
95
|
-
],
|
|
96
|
-
}),
|
|
97
|
-
new iam.PolicyStatement({
|
|
98
|
-
actions: ["logs:PutLogEvents"],
|
|
99
|
-
resources: [
|
|
100
|
-
`arn:aws:logs:${cdk.Stack.of(this).region}:${cdk.Stack.of(this).account}:log-group:${deliveryStreamLogGroup.logGroupName}:log-stream:${deliveryStreamLogStream.logStreamName}`,
|
|
101
|
-
],
|
|
102
|
-
}),
|
|
103
|
-
new iam.PolicyStatement({
|
|
104
|
-
actions: [
|
|
105
|
-
"kinesis:DescribeStream",
|
|
106
|
-
"kinesis:GetShardIterator",
|
|
107
|
-
"kinesis:GetRecords",
|
|
108
|
-
],
|
|
109
|
-
resources: [datadogDeliveryStream.attrArn],
|
|
110
|
-
}),
|
|
111
|
-
],
|
|
112
|
-
}),
|
|
113
|
-
roles: [firehoseLogsRole],
|
|
114
|
-
});
|
|
115
|
-
props.logGroups.forEach((logGroup, index) => {
|
|
116
|
-
new logs.CfnSubscriptionFilter(this, `SubscriptionFilter${index}`, {
|
|
117
|
-
logGroupName: logGroup.logGroupName,
|
|
118
|
-
destinationArn: datadogDeliveryStream.attrArn,
|
|
119
|
-
filterPattern: logs.FilterPattern.allEvents().logPatternString,
|
|
120
|
-
roleArn: cloudWatchLogsRole.roleArn,
|
|
121
|
-
});
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
}
|
|
125
|
-
exports.KinesisToDatadogStream = KinesisToDatadogStream;
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoia2luZXNpcy10by1kYXRhZG9nLXN0cmVhbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9raW5lc2lzL2tpbmVzaXMtdG8tZGF0YWRvZy1zdHJlYW0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLDJDQUEwQztBQUMxQyw0REFBMkQ7QUFDM0QsNkNBQTRDO0FBQzVDLHlDQUF3QztBQUN4QywrQ0FBc0Q7QUFDdEQsaUVBQWdFO0FBQ2hFLG1DQUFrQztBQW1CbEM7Ozs7OztHQU1HO0FBQ0gsTUFBYSxzQkFBdUIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUM5RCxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUFrQztRQUVsQyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUM5QyxJQUFJLEVBQ0osd0JBQXdCLENBQ3pCLENBQUE7UUFFRCxNQUFNLHVCQUF1QixHQUFHLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FDaEQsSUFBSSxFQUNKLHlCQUF5QixFQUN6QjtZQUNFLFFBQVEsRUFBRSxzQkFBc0I7U0FDakMsQ0FDRixDQUFBO1FBRUQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQy9ELGlCQUFpQixFQUFFLDBCQUFpQixDQUFDLFNBQVM7U0FDL0MsQ0FBQyxDQUFBO1FBRUYsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLG9CQUFvQixFQUFFO1lBQ2xFLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FDakMsUUFBUSxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLGdCQUFnQixDQUNsRDtTQUNGLENBQUMsQ0FBQTtRQUVGLE1B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QyxhQUMxQixFQUFFO3lCQUNIO3FCQUNGLENBQUM7b0JBQ0YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO3dCQUN0QixPQUFPLEVBQUU7NEJBQ1Asd0JBQXdCOzRCQUN4QiwwQkFBMEI7NEJBQzFCLG9CQUFvQjt5QkFDckI7d0JBQ0QsU0FBUyxFQUFFLENBQUMscUJBQXFCLENBQUMsT0FBTyxDQUFDO3FCQUMzQyxDQUFDO2lCQUNIO2FBQ0YsQ0FBQztZQUNGLEtBQUssRUFBRSxDQUFDLGdCQUFnQixDQUFDO1NBQzFCLENBQUMsQ0FBQTtRQUVGLEtBQUssQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxFQUFFO1lBQzFDLElBQUksSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksRUFBRSxxQkFBcUIsS0FBSyxFQUFFLEVBQUU7Z0JBQ2pFLFlBQVksRUFBRSxRQUFRLENBQUMsWUFBWTtnQkFDbkMsY0FBYyxFQUFFLHFCQUFxQixDQUFDLE9BQU87Z0JBQzdDLGFBQWEsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsRUFBRSxDQUFDLGdCQUFnQjtnQkFDOUQsT0FBTyxFQUFFLGtCQUFrQixDQUFDLE9BQU87YUFDcEMsQ0FBQyxDQUFBO1FBQ0osQ0FBQyxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUEzSUQsd0RBMklDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgZmlyZWhvc2UgZnJvbSBcImF3cy1jZGstbGliL2F3cy1raW5lc2lzZmlyZWhvc2VcIlxuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxvZ3NcIlxuaW1wb3J0ICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiXG5pbXBvcnQgeyBCbG9ja1B1YmxpY0FjY2VzcyB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIlxuaW1wb3J0ICogYXMgc2VjcmV0c21hbmFnZXIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlclwiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcblxuZXhwb3J0IGludGVyZmFjZSBLaW5lc2lzVG9EYXRhZG9nU3RyZWFtUHJvcHMge1xuICAvKipcbiAgICpcbiAgICogVGhlIG5hbWUgb2YgdGhlIFNlY3JldHNNYW5hZ2VyIHNlY3JldCB3aGVyZSB5b3VyIERhdGFkb2cgQVBJIGtleSBpcyBzYXZlZC5cbiAgICpcbiAgICogVGhlIHNlY3JldCBtdXN0IGJlIGEgSlNPTiBvYmplY3Qgb24gdGhlIGZvcm1hdCB7IFwidmFsdWVcIjogXCJTRUNSRVRcIiB9XG4gICAqXG4gICAqL1xuICBkYXRhZG9nQXBpS2V5U2VjcmV0TmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKlxuICAgKiBUaGUgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzIGZyb20geW91IGFyZSBzdHJlYW1pbmcgdG8gRGF0YWRvZ1xuICAgKlxuICAgKi9cbiAgbG9nR3JvdXBzOiBsb2dzLklMb2dHcm91cFtdXG59XG5cbi8qKlxuICpcbiAqIEZvcndhcmRzIGxvZ3MgZnJvbSBsb2ctZ3JvdXBzIGluIENsb3VkV2F0Y2ggdG8gYSBEYXRhZG9nIGFjY291bnQuXG4gKiBUaGUgbG9ncyBhcmUgZGVsaXZlcmVkIHRocm91Z2ggYSBGaXJlaG9zZSBkZWxpdmVyeSBzdHJlYW0sIHdoaWNoIGlzIGJlaW5nIHN1YnNjcmliZWQgdG8gdGhlIGxvZy1ncm91cHMgaW4gQ2xvdWRXYXRjaC5cbiAqXG4gKiBAYXV0aG9yIFN0ZWluLUFhZ2VcbiAqL1xuZXhwb3J0IGNsYXNzIEtpbmVzaXNUb0RhdGFkb2dTdHJlYW0gZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBLaW5lc2lzVG9EYXRhZG9nU3RyZWFtUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IGRlbGl2ZXJ5U3RyZWFtTG9nR3JvdXAgPSBuZXcgbG9ncy5Mb2dHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBcIkRlbGl2ZXJ5U3RyZWFtTG9nR3JvdXBcIixcbiAgICApXG5cbiAgICBjb25zdCBkZWxpdmVyeVN0cmVhbUxvZ1N0cmVhbSA9IG5ldyBsb2dzLkxvZ1N0cmVhbShcbiAgICAgIHRoaXMsXG4gICAgICBcIkRlbGl2ZXJ5U3RyZWFtTG9nU3RyZWFtXCIsXG4gICAgICB7XG4gICAgICAgIGxvZ0dyb3VwOiBkZWxpdmVyeVN0cmVhbUxvZ0dyb3VwLFxuICAgICAgfSxcbiAgICApXG5cbiAgICBjb25zdCBmYWlsZWREYXRhQnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCBcIkZhaWxlZERhdGFCdWNrZXRcIiwge1xuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IEJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICB9KVxuXG4gICAgY29uc3QgY2xvdWRXYXRjaExvZ3NSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiQ2xvdWRXYXRjaExvZ3NSb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFxuICAgICAgICBgbG9ncy4ke2Nkay5TdGFjay5vZih0aGlzKS5yZWdpb259LmFtYXpvbmF3cy5jb21gLFxuICAgICAgKSxcbiAgICB9KVxuXG4gICAgY29uc3QgZmlyZWhvc2VMb2dzUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIkZpcmVob3NlTG9nc1JvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoXCJmaXJlaG9zZS5hbWF6b25hd3MuY29tXCIpLFxuICAgIH0pXG5cbiAgICBjb25zdCBkYXRhZG9nRGVsaXZlcnlTdHJlYW0gPSBuZXcgZmlyZWhvc2UuQ2ZuRGVsaXZlcnlTdHJlYW0oXG4gICAgICB0aGlzLFxuICAgICAgXCJEZWxpdmVyeVN0cmVhbVwiLFxuICAgICAge1xuICAgICAgICBkZWxpdmVyeVN0cmVhbVR5cGU6IFwiRGlyZWN0UHV0XCIsXG4gICAgICAgIGh0dHBFbmRwb2ludERlc3RpbmF0aW9uQ29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHJvbGVBcm46IGZpcmVob3NlTG9nc1JvbGUucm9sZUFybixcbiAgICAgICAgICBlbmRwb2ludENvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIHVybDogXCJodHRwczovL2F3cy1raW5lc2lzLWh0dHAtaW50YWtlLmxvZ3MuZGF0YWRvZ2hxLmV1L3YxL2lucHV0XCIsXG4gICAgICAgICAgICBhY2Nlc3NLZXk6IHNlY3JldHNtYW5hZ2VyLlNlY3JldC5mcm9tU2VjcmV0TmFtZVYyKFxuICAgICAgICAgICAgICBzY29wZSxcbiAgICAgICAgICAgICAgXCJEYXRhZG9nQXBpS2V5XCIsXG4gICAgICAgICAgICAgIHByb3BzLmRhdGFkb2dBcGlLZXlTZWNyZXROYW1lLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAuc2VjcmV0VmFsdWVGcm9tSnNvbihcInZhbHVlXCIpXG4gICAgICAgICAgICAgIC50b1N0cmluZygpLFxuICAgICAgICAgICAgbmFtZTogXCJkYXRhZG9nLWxvZ3MtZW5kcG9pbnRcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJlcXVlc3RDb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgICBjb250ZW50RW5jb2Rpbmc6IFwiR1pJUFwiLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgY2xvdWRXYXRjaExvZ2dpbmdPcHRpb25zOiB7XG4gICAgICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICAgICAgbG9nR3JvdXBOYW1lOiBkZWxpdmVyeVN0cmVhbUxvZ0dyb3VwLmxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICAgIGxvZ1N0cmVhbU5hbWU6IGRlbGl2ZXJ5U3RyZWFtTG9nU3RyZWFtLmxvZ1N0cmVhbU5hbWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBidWZmZXJpbmdIaW50czoge1xuICAgICAgICAgICAgaW50ZXJ2YWxJblNlY29uZHM6IDYwLFxuICAgICAgICAgICAgc2l6ZUluTUJzOiA0LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcmV0cnlPcHRpb25zOiB7XG4gICAgICAgICAgICBkdXJhdGlvbkluU2Vjb25kczogNjAsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBzM0JhY2t1cE1vZGU6IFwiRmFpbGVkRGF0YU9ubHlcIixcbiAgICAgICAgICBzM0NvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICAgIGJ1Y2tldEFybjogZmFpbGVkRGF0YUJ1Y2tldC5idWNrZXRBcm4sXG4gICAgICAgICAgICBjb21wcmVzc2lvbkZvcm1hdDogXCJVTkNPTVBSRVNTRURcIixcbiAgICAgICAgICAgIHJvbGVBcm46IGZpcmVob3NlTG9nc1JvbGUucm9sZUFybixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApXG5cbiAgICBuZXcgaWFtLlBvbGljeSh0aGlzLCBcIkNsb3VkV2F0Y2hMb2dzUG9saWN5XCIsIHtcbiAgICAgIGRvY3VtZW50OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImZpcmVob3NlOlB1dFJlY29yZFwiLCBcImZpcmVob3NlOlB1dFJlY29yZEJhdGNoXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbZGF0YWRvZ0RlbGl2ZXJ5U3RyZWFtLmF0dHJBcm5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgICByb2xlczogW2Nsb3VkV2F0Y2hMb2dzUm9sZV0sXG4gICAgfSlcblxuICAgIG5ldyBpYW0uUG9saWN5KHRoaXMsIFwiRmlyZWhvc2VMb2dzUG9saWN5XCIsIHtcbiAgICAgIGRvY3VtZW50OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgXCJzMzpBYm9ydE11bHRpcGFydFVwbG9hZFwiLFxuICAgICAgICAgICAgICBcInMzOkdldEJ1Y2tldExvY2F0aW9uXCIsXG4gICAgICAgICAgICAgIFwiczM6R2V0T2JqZWN0XCIsXG4gICAgICAgICAgICAgIFwiczM6TGlzdEJ1Y2tldFwiLFxuICAgICAgICAgICAgICBcInMzOkxpc3RCdWNrZXRNdWx0aXBhcnRVcGxvYWRzXCIsXG4gICAgICAgICAgICAgIFwiczM6UHV0T2JqZWN0XCIsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgIGZhaWxlZERhdGFCdWNrZXQuYnVja2V0QXJuLFxuICAgICAgICAgICAgICBgJHtmYWlsZWREYXRhQnVja2V0LmJ1Y2tldEFybn0vKmAsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0pLFxuICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFtcImxvZ3M6UHV0TG9nRXZlbnRzXCJdLFxuICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgIGBhcm46YXdzOmxvZ3M6JHtjZGsuU3RhY2sub2YodGhpcykucmVnaW9ufToke1xuICAgICAgICAgICAgICAgIGNkay5TdGFjay5vZih0aGlzKS5hY2NvdW50XG4gICAgICAgICAgICAgIH06bG9nLWdyb3VwOiR7ZGVsaXZlcnlTdHJlYW1Mb2dHcm91cC5sb2dHcm91cE5hbWV9OmxvZy1zdHJlYW06JHtcbiAgICAgICAgICAgICAgICBkZWxpdmVyeVN0cmVhbUxvZ1N0cmVhbS5sb2dTdHJlYW1OYW1lXG4gICAgICAgICAgICAgIH1gLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgIFwia2luZXNpczpEZXNjcmliZVN0cmVhbVwiLFxuICAgICAgICAgICAgICBcImtpbmVzaXM6R2V0U2hhcmRJdGVyYXRvclwiLFxuICAgICAgICAgICAgICBcImtpbmVzaXM6R2V0UmVjb3Jkc1wiLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW2RhdGFkb2dEZWxpdmVyeVN0cmVhbS5hdHRyQXJuXSxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgICAgcm9sZXM6IFtmaXJlaG9zZUxvZ3NSb2xlXSxcbiAgICB9KVxuXG4gICAgcHJvcHMubG9nR3JvdXBzLmZvckVhY2goKGxvZ0dyb3VwLCBpbmRleCkgPT4ge1xuICAgICAgbmV3IGxvZ3MuQ2ZuU3Vic2NyaXB0aW9uRmlsdGVyKHRoaXMsIGBTdWJzY3JpcHRpb25GaWx0ZXIke2luZGV4fWAsIHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBsb2dHcm91cC5sb2dHcm91cE5hbWUsXG4gICAgICAgIGRlc3RpbmF0aW9uQXJuOiBkYXRhZG9nRGVsaXZlcnlTdHJlYW0uYXR0ckFybixcbiAgICAgICAgZmlsdGVyUGF0dGVybjogbG9ncy5GaWx0ZXJQYXR0ZXJuLmFsbEV2ZW50cygpLmxvZ1BhdHRlcm5TdHJpbmcsXG4gICAgICAgIHJvbGVBcm46IGNsb3VkV2F0Y2hMb2dzUm9sZS5yb2xlQXJuLFxuICAgICAgfSlcbiAgICB9KVxuICB9XG59XG4iXX0=
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export { LoadBalancer, LoadBalancerProps } from "./load-balancer";
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LoadBalancer = void 0;
|
|
4
|
-
var load_balancer_1 = require("./load-balancer");
|
|
5
|
-
Object.defineProperty(exports, "LoadBalancer", { enumerable: true, get: function () { return load_balancer_1.LoadBalancer; } });
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvbG9hZC1iYWxhbmNlci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxpREFBaUU7QUFBeEQsNkdBQUEsWUFBWSxPQUFBIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgTG9hZEJhbGFuY2VyLCBMb2FkQmFsYW5jZXJQcm9wcyB9IGZyb20gXCIuL2xvYWQtYmFsYW5jZXJcIlxuIl19
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import * as constructs from "constructs";
|
|
2
|
-
import * as certificatemanager from "aws-cdk-lib/aws-certificatemanager";
|
|
3
|
-
import * as ec2 from "aws-cdk-lib/aws-ec2";
|
|
4
|
-
import * as elb from "aws-cdk-lib/aws-elasticloadbalancingv2";
|
|
5
|
-
import * as s3 from "aws-cdk-lib/aws-s3";
|
|
6
|
-
export interface LoadBalancerProps {
|
|
7
|
-
certificates: certificatemanager.ICertificate[];
|
|
8
|
-
vpc: ec2.IVpc;
|
|
9
|
-
overrideLoadBalancerProps?: Partial<elb.ApplicationLoadBalancerProps>;
|
|
10
|
-
}
|
|
11
|
-
export declare class LoadBalancer extends constructs.Construct {
|
|
12
|
-
readonly loadBalancer: elb.ApplicationLoadBalancer;
|
|
13
|
-
readonly httpsListener: elb.ApplicationListener;
|
|
14
|
-
readonly accessLogsBucket: s3.Bucket;
|
|
15
|
-
constructor(scope: constructs.Construct, id: string, props: LoadBalancerProps);
|
|
16
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.LoadBalancer = void 0;
|
|
4
|
-
const constructs = require("constructs");
|
|
5
|
-
const ec2 = require("aws-cdk-lib/aws-ec2");
|
|
6
|
-
const elb = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
7
|
-
const aws_elasticloadbalancingv2_1 = require("aws-cdk-lib/aws-elasticloadbalancingv2");
|
|
8
|
-
const s3 = require("aws-cdk-lib/aws-s3");
|
|
9
|
-
const cdk = require("aws-cdk-lib");
|
|
10
|
-
class LoadBalancer extends constructs.Construct {
|
|
11
|
-
constructor(scope, id, props) {
|
|
12
|
-
super(scope, id);
|
|
13
|
-
this.loadBalancer = new elb.ApplicationLoadBalancer(this, "LoadBalancer", {
|
|
14
|
-
vpc: props.vpc,
|
|
15
|
-
internetFacing: true,
|
|
16
|
-
vpcSubnets: props.vpc.selectSubnets({
|
|
17
|
-
subnetType: ec2.SubnetType.PUBLIC,
|
|
18
|
-
}),
|
|
19
|
-
...props.overrideLoadBalancerProps,
|
|
20
|
-
});
|
|
21
|
-
this.loadBalancer
|
|
22
|
-
.addListener("HttpListener", {
|
|
23
|
-
port: 80,
|
|
24
|
-
})
|
|
25
|
-
.addAction("HttpsRedirect", {
|
|
26
|
-
action: aws_elasticloadbalancingv2_1.ListenerAction.redirect({
|
|
27
|
-
port: "443",
|
|
28
|
-
protocol: "HTTPS",
|
|
29
|
-
permanent: true,
|
|
30
|
-
}),
|
|
31
|
-
});
|
|
32
|
-
// The Load Balancer require a default target group.
|
|
33
|
-
// We will not connect anything to the default target group.
|
|
34
|
-
const defaultTargetGroup = new elb.ApplicationTargetGroup(this, "DefaultTargetGroup", {
|
|
35
|
-
protocol: elb.ApplicationProtocol.HTTP,
|
|
36
|
-
port: 80,
|
|
37
|
-
vpc: props.vpc,
|
|
38
|
-
targetType: elb.TargetType.INSTANCE,
|
|
39
|
-
});
|
|
40
|
-
this.httpsListener = this.loadBalancer.addListener("HttpsListener", {
|
|
41
|
-
sslPolicy: elb.SslPolicy.TLS12,
|
|
42
|
-
protocol: elb.ApplicationProtocol.HTTPS,
|
|
43
|
-
port: 443,
|
|
44
|
-
certificates: props.certificates,
|
|
45
|
-
defaultTargetGroups: [defaultTargetGroup],
|
|
46
|
-
});
|
|
47
|
-
this.accessLogsBucket = new s3.Bucket(this, "AccessLogsBucket", {
|
|
48
|
-
encryption: s3.BucketEncryption.S3_MANAGED,
|
|
49
|
-
blockPublicAccess: s3.BlockPublicAccess.BLOCK_ALL,
|
|
50
|
-
lifecycleRules: [
|
|
51
|
-
{
|
|
52
|
-
expiration: cdk.Duration.days(30),
|
|
53
|
-
},
|
|
54
|
-
],
|
|
55
|
-
});
|
|
56
|
-
this.loadBalancer.logAccessLogs(this.accessLogsBucket);
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
exports.LoadBalancer = LoadBalancer;
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9hZC1iYWxhbmNlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9sb2FkLWJhbGFuY2VyL2xvYWQtYmFsYW5jZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBRXhDLDJDQUEwQztBQUMxQyw4REFBNkQ7QUFDN0QsdUZBQXVFO0FBQ3ZFLHlDQUF3QztBQUN4QyxtQ0FBa0M7QUFRbEMsTUFBYSxZQUFhLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFLcEQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBd0I7UUFFeEIsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksR0FBRyxDQUFDLHVCQUF1QixDQUFDLElBQUksRUFBRSxjQUFjLEVBQUU7WUFDeEUsR0FBRyxFQUFFLEtBQUssQ0FBQyxHQUFHO1lBQ2QsY0FBYyxFQUFFLElBQUk7WUFDcEIsVUFBVSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUNsQyxVQUFVLEVBQUUsR0FBRyxDQUFDLFVBQVUsQ0FBQyxNQUFNO2FBQ2xDLENBQUM7WUFDRixHQUFHLEtBQUssQ0FBQyx5QkFBeUI7U0FDbkMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFlBQVk7YUFDZCxXQUFXLENBQUMsY0FBYyxFQUFFO1lBQzNCLElBQUksRUFBRSxFQUFFO1NBQ1QsQ0FBQzthQUNELFNBQVMsQ0FBQyxlQUFlLEVBQUU7WUFDMUIsTUFBTSxFQUFFLDJDQUFjLENBQUMsUUFBUSxDQUFDO2dCQUM5QixJQUFJLEVBQUUsS0FBSztnQkFDWCxRQUFRLEVBQUUsT0FBTztnQkFDakIsU0FBUyxFQUFFLElBQUk7YUFDaEIsQ0FBQztTQUNILENBQUMsQ0FBQTtRQUVKLG9EQUFvRDtRQUNwRCw0REFBNEQ7UUFDNUQsTUFBTSxrQkFBa0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxzQkFBc0IsQ0FDdkQsSUFBSSxFQUNKLG9CQUFvQixFQUNwQjtZQUNFLFFBQVEsRUFBRSxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSTtZQUN0QyxJQUFJLEVBQUUsRUFBRTtZQUNSLEdBQUcsRUFBRSxLQUFLLENBQUMsR0FBRztZQUNkLFVBQVUsRUFBRSxHQUFHLENBQUMsVUFBVSxDQUFDLFFBQVE7U0FDcEMsQ0FDRixDQUFBO1FBRUQsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsQ0FBQyxlQUFlLEVBQUU7WUFDbEUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxTQUFTLENBQUMsS0FBSztZQUM5QixRQUFRLEVBQUUsR0FBRyxDQUFDLG1CQUFtQixDQUFDLEtBQUs7WUFDdkMsSUFBSSxFQUFFLEdBQUc7WUFDVCxZQUFZLEVBQUUsS0FBSyxDQUFDLFlBQVk7WUFDaEMsbUJBQW1CLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztTQUMxQyxDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxrQkFBa0IsRUFBRTtZQUM5RCxVQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7WUFDMUMsaUJBQWlCLEVBQUUsRUFBRSxDQUFDLGlCQUFpQixDQUFDLFNBQVM7WUFDakQsY0FBYyxFQUFFO2dCQUNkO29CQUNFLFVBQVUsRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7aUJBQ2xDO2FBQ0Y7U0FDRixDQUFDLENBQUE7UUFFRixJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtJQUN4RCxDQUFDO0NBQ0Y7QUFsRUQsb0NBa0VDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZXJ0aWZpY2F0ZW1hbmFnZXIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1jZXJ0aWZpY2F0ZW1hbmFnZXJcIlxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCJcbmltcG9ydCAqIGFzIGVsYiBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIlxuaW1wb3J0IHsgTGlzdGVuZXJBY3Rpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWVsYXN0aWNsb2FkYmFsYW5jaW5ndjJcIlxuaW1wb3J0ICogYXMgczMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zM1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcblxuZXhwb3J0IGludGVyZmFjZSBMb2FkQmFsYW5jZXJQcm9wcyB7XG4gIGNlcnRpZmljYXRlczogY2VydGlmaWNhdGVtYW5hZ2VyLklDZXJ0aWZpY2F0ZVtdXG4gIHZwYzogZWMyLklWcGNcbiAgb3ZlcnJpZGVMb2FkQmFsYW5jZXJQcm9wcz86IFBhcnRpYWw8ZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyUHJvcHM+XG59XG5cbmV4cG9ydCBjbGFzcyBMb2FkQmFsYW5jZXIgZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHB1YmxpYyByZWFkb25seSBsb2FkQmFsYW5jZXI6IGVsYi5BcHBsaWNhdGlvbkxvYWRCYWxhbmNlclxuICBwdWJsaWMgcmVhZG9ubHkgaHR0cHNMaXN0ZW5lcjogZWxiLkFwcGxpY2F0aW9uTGlzdGVuZXJcbiAgcHVibGljIHJlYWRvbmx5IGFjY2Vzc0xvZ3NCdWNrZXQ6IHMzLkJ1Y2tldFxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBMb2FkQmFsYW5jZXJQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgdGhpcy5sb2FkQmFsYW5jZXIgPSBuZXcgZWxiLkFwcGxpY2F0aW9uTG9hZEJhbGFuY2VyKHRoaXMsIFwiTG9hZEJhbGFuY2VyXCIsIHtcbiAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgaW50ZXJuZXRGYWNpbmc6IHRydWUsXG4gICAgICB2cGNTdWJuZXRzOiBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICAgIHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyxcbiAgICAgIH0pLFxuICAgICAgLi4ucHJvcHMub3ZlcnJpZGVMb2FkQmFsYW5jZXJQcm9wcyxcbiAgICB9KVxuXG4gICAgdGhpcy5sb2FkQmFsYW5jZXJcbiAgICAgIC5hZGRMaXN0ZW5lcihcIkh0dHBMaXN0ZW5lclwiLCB7XG4gICAgICAgIHBvcnQ6IDgwLFxuICAgICAgfSlcbiAgICAgIC5hZGRBY3Rpb24oXCJIdHRwc1JlZGlyZWN0XCIsIHtcbiAgICAgICAgYWN0aW9uOiBMaXN0ZW5lckFjdGlvbi5yZWRpcmVjdCh7XG4gICAgICAgICAgcG9ydDogXCI0NDNcIixcbiAgICAgICAgICBwcm90b2NvbDogXCJIVFRQU1wiLFxuICAgICAgICAgIHBlcm1hbmVudDogdHJ1ZSxcbiAgICAgICAgfSksXG4gICAgICB9KVxuXG4gICAgLy8gVGhlIExvYWQgQmFsYW5jZXIgcmVxdWlyZSBhIGRlZmF1bHQgdGFyZ2V0IGdyb3VwLlxuICAgIC8vIFdlIHdpbGwgbm90IGNvbm5lY3QgYW55dGhpbmcgdG8gdGhlIGRlZmF1bHQgdGFyZ2V0IGdyb3VwLlxuICAgIGNvbnN0IGRlZmF1bHRUYXJnZXRHcm91cCA9IG5ldyBlbGIuQXBwbGljYXRpb25UYXJnZXRHcm91cChcbiAgICAgIHRoaXMsXG4gICAgICBcIkRlZmF1bHRUYXJnZXRHcm91cFwiLFxuICAgICAge1xuICAgICAgICBwcm90b2NvbDogZWxiLkFwcGxpY2F0aW9uUHJvdG9jb2wuSFRUUCxcbiAgICAgICAgcG9ydDogODAsXG4gICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICB0YXJnZXRUeXBlOiBlbGIuVGFyZ2V0VHlwZS5JTlNUQU5DRSxcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgdGhpcy5odHRwc0xpc3RlbmVyID0gdGhpcy5sb2FkQmFsYW5jZXIuYWRkTGlzdGVuZXIoXCJIdHRwc0xpc3RlbmVyXCIsIHtcbiAgICAgIHNzbFBvbGljeTogZWxiLlNzbFBvbGljeS5UTFMxMixcbiAgICAgIHByb3RvY29sOiBlbGIuQXBwbGljYXRpb25Qcm90b2NvbC5IVFRQUyxcbiAgICAgIHBvcnQ6IDQ0MyxcbiAgICAgIGNlcnRpZmljYXRlczogcHJvcHMuY2VydGlmaWNhdGVzLFxuICAgICAgZGVmYXVsdFRhcmdldEdyb3VwczogW2RlZmF1bHRUYXJnZXRHcm91cF0sXG4gICAgfSlcblxuICAgIHRoaXMuYWNjZXNzTG9nc0J1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgXCJBY2Nlc3NMb2dzQnVja2V0XCIsIHtcbiAgICAgIGVuY3J5cHRpb246IHMzLkJ1Y2tldEVuY3J5cHRpb24uUzNfTUFOQUdFRCxcbiAgICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgICBsaWZlY3ljbGVSdWxlczogW1xuICAgICAgICB7XG4gICAgICAgICAgZXhwaXJhdGlvbjogY2RrLkR1cmF0aW9uLmRheXMoMzApLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KVxuXG4gICAgdGhpcy5sb2FkQmFsYW5jZXIubG9nQWNjZXNzTG9ncyh0aGlzLmFjY2Vzc0xvZ3NCdWNrZXQpXG4gIH1cbn1cbiJdfQ==
|
|
@@ -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=
|
package/lib/pipelines/index.d.ts
DELETED
package/lib/pipelines/index.js
DELETED
|
@@ -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
|
-
}
|