@fjall/components-infrastructure 0.1.6 → 0.1.10

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 (118) hide show
  1. package/dist/lib/app.d.ts +1 -2
  2. package/dist/lib/app.js +2 -4
  3. package/dist/lib/config/aws/costAllocationTags.d.ts +3 -2
  4. package/dist/lib/config/aws/costAllocationTags.js +5 -6
  5. package/dist/lib/config/aws/identityCenter.d.ts +3 -11
  6. package/dist/lib/config/aws/identityCenter.js +29 -24
  7. package/dist/lib/config/aws/index.d.ts +4 -8
  8. package/dist/lib/config/aws/index.js +5 -9
  9. package/dist/lib/config/aws/ipam.d.ts +2 -2
  10. package/dist/lib/config/aws/ipam.js +7 -25
  11. package/dist/lib/config/aws/ipamDelegateAdmin.d.ts +5 -4
  12. package/dist/lib/config/aws/ipamDelegateAdmin.js +13 -9
  13. package/dist/lib/config/aws/organisationId.d.ts +2 -4
  14. package/dist/lib/config/aws/organisationId.js +7 -13
  15. package/dist/lib/patterns/aws/basicApp.d.ts +2 -2
  16. package/dist/lib/patterns/aws/basicApp.js +15 -15
  17. package/dist/lib/patterns/aws/buildkite.d.ts +3 -3
  18. package/dist/lib/patterns/aws/buildkite.js +7 -9
  19. package/dist/lib/patterns/aws/index.d.ts +0 -3
  20. package/dist/lib/patterns/aws/index.js +1 -4
  21. package/dist/lib/patterns/aws/managedOrganisation.d.ts +21 -9
  22. package/dist/lib/patterns/aws/managedOrganisation.js +147 -33
  23. package/dist/lib/resources/aws/compute/ecs.d.ts +4 -2
  24. package/dist/lib/resources/aws/compute/ecs.js +6 -10
  25. package/dist/lib/resources/aws/compute/lambda.d.ts +7 -7
  26. package/dist/lib/resources/aws/compute/lambda.js +7 -8
  27. package/dist/lib/resources/aws/logging/logGroup.d.ts +3 -3
  28. package/dist/lib/resources/aws/logging/logGroup.js +3 -3
  29. package/dist/lib/resources/aws/networking/index.d.ts +1 -1
  30. package/dist/lib/resources/aws/networking/index.js +2 -2
  31. package/dist/lib/resources/aws/networking/ipamPool.d.ts +3 -16
  32. package/dist/lib/resources/aws/networking/ipamPool.js +6 -75
  33. package/dist/lib/resources/aws/utilities/customResource.js +2 -2
  34. package/dist/lib/utils/getAccountId.d.ts +1 -1
  35. package/dist/lib/utils/getAccountId.js +2 -3
  36. package/dist/lib/utils/getConfig.d.ts +2 -3
  37. package/dist/lib/utils/getConfig.js +6 -20
  38. package/package.json +2 -2
  39. package/dist/lib/config/aws/accountId.d.ts +0 -6
  40. package/dist/lib/config/aws/accountId.js +0 -33
  41. package/dist/lib/config/aws/cloudTrail.d.ts +0 -10
  42. package/dist/lib/config/aws/cloudTrail.js +0 -22
  43. package/dist/lib/config/aws/ecrDefaultImage.d.ts +0 -11
  44. package/dist/lib/config/aws/ecrDefaultImage.js +0 -127
  45. package/dist/lib/config/aws/eventBus.d.ts +0 -7
  46. package/dist/lib/config/aws/eventBus.js +0 -24
  47. package/dist/lib/config/aws/identityCenterUser.d.ts +0 -16
  48. package/dist/lib/config/aws/identityCenterUser.js +0 -125
  49. package/dist/lib/config/aws/ipamPoolId.d.ts +0 -9
  50. package/dist/lib/config/aws/ipamPoolId.js +0 -36
  51. package/dist/lib/config/aws/organisation.d.ts +0 -28
  52. package/dist/lib/config/aws/organisation.js +0 -142
  53. package/dist/lib/config/aws/ramSharing.d.ts +0 -4
  54. package/dist/lib/config/aws/ramSharing.js +0 -35
  55. package/dist/lib/patterns/aws/freeTierApp.d.ts +0 -46
  56. package/dist/lib/patterns/aws/freeTierApp.js +0 -95
  57. package/dist/lib/patterns/aws/hostedZone.d.ts +0 -11
  58. package/dist/lib/patterns/aws/hostedZone.js +0 -73
  59. package/dist/lib/patterns/aws/managedAccount.d.ts +0 -13
  60. package/dist/lib/patterns/aws/managedAccount.js +0 -39
  61. package/dist/lib/patterns/aws/managedPlatform.d.ts +0 -13
  62. package/dist/lib/patterns/aws/managedPlatform.js +0 -22
  63. package/dist/lib/patterns/aws/spotInstanceApp.d.ts +0 -46
  64. package/dist/lib/patterns/aws/spotInstanceApp.js +0 -95
  65. package/dist/lib/patterns/aws/subdomainHostedZone.d.ts +0 -9
  66. package/dist/lib/patterns/aws/subdomainHostedZone.js +0 -39
  67. package/dist/lib/resources/aws/compute/ecsFreeTier.d.ts +0 -76
  68. package/dist/lib/resources/aws/compute/ecsFreeTier.js +0 -352
  69. package/dist/lib/resources/aws/compute/ecsSpot.d.ts +0 -76
  70. package/dist/lib/resources/aws/compute/ecsSpot.js +0 -334
  71. package/dist/lib/resources/aws/compute/index.d.ts +0 -2
  72. package/dist/lib/resources/aws/compute/index.js +0 -19
  73. package/dist/lib/resources/aws/database/database.d.ts +0 -16
  74. package/dist/lib/resources/aws/database/database.js +0 -30
  75. package/dist/lib/resources/aws/database/databaseFreeTier.d.ts +0 -17
  76. package/dist/lib/resources/aws/database/databaseFreeTier.js +0 -31
  77. package/dist/lib/resources/aws/database/databaseInstance.d.ts +0 -17
  78. package/dist/lib/resources/aws/database/databaseInstance.js +0 -32
  79. package/dist/lib/resources/aws/database/index.d.ts +0 -2
  80. package/dist/lib/resources/aws/database/index.js +0 -19
  81. package/dist/lib/resources/aws/database/rds.d.ts +0 -23
  82. package/dist/lib/resources/aws/database/rds.js +0 -130
  83. package/dist/lib/resources/aws/database/rdsFreeTier.d.ts +0 -36
  84. package/dist/lib/resources/aws/database/rdsFreeTier.js +0 -80
  85. package/dist/lib/resources/aws/database/rdsInstance.d.ts +0 -42
  86. package/dist/lib/resources/aws/database/rdsInstance.js +0 -173
  87. package/dist/lib/resources/aws/logging/cloudTrail.d.ts +0 -18
  88. package/dist/lib/resources/aws/logging/cloudTrail.js +0 -46
  89. package/dist/lib/resources/aws/networking/vpc.d.ts +0 -29
  90. package/dist/lib/resources/aws/networking/vpc.js +0 -64
  91. package/dist/lib/resources/aws/secrets/alias.d.ts +0 -5
  92. package/dist/lib/resources/aws/secrets/alias.js +0 -13
  93. package/dist/lib/resources/aws/secrets/index.d.ts +0 -5
  94. package/dist/lib/resources/aws/secrets/index.js +0 -22
  95. package/dist/lib/resources/aws/secrets/kms.d.ts +0 -14
  96. package/dist/lib/resources/aws/secrets/kms.js +0 -34
  97. package/dist/lib/resources/aws/secrets/parameter.d.ts +0 -26
  98. package/dist/lib/resources/aws/secrets/parameter.js +0 -100
  99. package/dist/lib/resources/aws/secrets/secret.d.ts +0 -24
  100. package/dist/lib/resources/aws/secrets/secret.js +0 -53
  101. package/dist/lib/resources/aws/storage/ecr.d.ts +0 -12
  102. package/dist/lib/resources/aws/storage/ecr.js +0 -31
  103. package/dist/lib/resources/aws/storage/index.d.ts +0 -2
  104. package/dist/lib/resources/aws/storage/index.js +0 -19
  105. package/dist/lib/resources/aws/storage/s3.d.ts +0 -11
  106. package/dist/lib/resources/aws/storage/s3.js +0 -44
  107. package/dist/lib/resources/aws/utilities/codeBuild.d.ts +0 -15
  108. package/dist/lib/resources/aws/utilities/codeBuild.js +0 -28
  109. package/dist/lib/types.d.ts +0 -3
  110. package/dist/lib/types.js +0 -3
  111. package/dist/lib/utils/capitalizeString.d.ts +0 -1
  112. package/dist/lib/utils/capitalizeString.js +0 -8
  113. package/dist/lib/utils/getCidr.d.ts +0 -8
  114. package/dist/lib/utils/getCidr.js +0 -42
  115. package/dist/lib/utils/stripAndCamelCase.d.ts +0 -1
  116. package/dist/lib/utils/stripAndCamelCase.js +0 -17
  117. package/dist/lib/utils/usersConfig.d.ts +0 -7
  118. package/dist/lib/utils/usersConfig.js +0 -18
@@ -1,73 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.HostedZone = void 0;
4
- const route53 = require("aws-cdk-lib/aws-route53");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- const iam_1 = require("../../resources/aws/iam");
7
- const aws_iam_1 = require("aws-cdk-lib/aws-iam");
8
- const tagResource_1 = require("../../utils/tagResource");
9
- class HostedZone extends aws_cdk_lib_1.Stack {
10
- constructor(scope, id, props) {
11
- super(scope, id);
12
- if (props.importExisting) {
13
- this.hostedZone = route53.HostedZone.fromHostedZoneAttributes(this, "importedHostedZone", {
14
- hostedZoneId: props.importedHostedZoneId || "",
15
- zoneName: props.zoneName
16
- });
17
- (0, tagResource_1.default)(this.hostedZone, {
18
- "fjall:costAllocation:environment": "management",
19
- "fjall:costAllocation:service": "hostedZone",
20
- "fjall:costAllocation:domain": `${props.zoneName}`
21
- });
22
- }
23
- else {
24
- this.hostedZone = new route53.HostedZone(this, "HostedZone", {
25
- zoneName: props.zoneName,
26
- comment: `Hosted Zone for ${props.zoneName}`
27
- });
28
- (0, tagResource_1.default)(this.hostedZone, {
29
- "fjall:costAllocation:environment": "management",
30
- "fjall:costAllocation:service": "hostedZone",
31
- "fjall:costAllocation:domain": `${props.zoneName}`
32
- });
33
- }
34
- const domainName = this.hostedZone.zoneName.split(".", 1);
35
- const role = new iam_1.Role(this, `${domainName}DelegateHostedZoneRole`, {
36
- assumedBy: new aws_iam_1.OrganizationPrincipal(aws_cdk_lib_1.Fn.importValue("OrganisationId")),
37
- roleName: `${domainName}DelegateHostedZoneRole`,
38
- inlinePolicies: {
39
- ["listHostedZones"]: new aws_iam_1.PolicyDocument({
40
- statements: [
41
- new aws_iam_1.PolicyStatement({
42
- actions: ["route53:ListHostedZonesByName"],
43
- resources: ["*"]
44
- })
45
- ]
46
- }),
47
- ["changeResourceRecordSets"]: new aws_iam_1.PolicyDocument({
48
- statements: [
49
- new aws_iam_1.PolicyStatement({
50
- actions: ["route53:ChangeResourceRecordSets"],
51
- resources: [
52
- `arn:aws:route53:::hostedzone/${this.hostedZone.hostedZoneId}`
53
- ]
54
- })
55
- ]
56
- })
57
- }
58
- });
59
- new aws_cdk_lib_1.CfnOutput(this, "DelegateHostedZoneRoleArn", {
60
- key: `${domainName}DelegateHostedZoneRoleArn`,
61
- value: role.roleArn,
62
- exportName: `${domainName}DelegateHostedZoneRoleArn`
63
- });
64
- this.hostedZone.grantDelegation(role);
65
- new aws_cdk_lib_1.CfnOutput(this, `${props.zoneName.split(".").join("")}HostedZoneId`, {
66
- key: "HostedZoneId",
67
- value: this.hostedZone.hostedZoneId,
68
- exportName: `${props.zoneName.split(".").join("")}HostedZoneId`
69
- });
70
- }
71
- }
72
- exports.HostedZone = HostedZone;
73
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3MvaG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSxtREFBbUQ7QUFDbkQsNkNBQW1EO0FBQ25ELGlEQUErQztBQUMvQyxpREFJNkI7QUFFN0IseURBQWtEO0FBUWxELE1BQWEsVUFBVyxTQUFRLG1CQUFLO0lBRW5DLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBc0I7UUFDOUQsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVqQixJQUFJLEtBQUssQ0FBQyxjQUFjLEVBQUU7WUFDeEIsSUFBSSxDQUFDLFVBQVUsR0FBRyxPQUFPLENBQUMsVUFBVSxDQUFDLHdCQUF3QixDQUMzRCxJQUFJLEVBQ0osb0JBQW9CLEVBQ3BCO2dCQUNFLFlBQVksRUFBRSxLQUFLLENBQUMsb0JBQW9CLElBQUksRUFBRTtnQkFDOUMsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO2FBQ3pCLENBQ0YsQ0FBQztZQUNGLElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUMzQixrQ0FBa0MsRUFBRSxZQUFZO2dCQUNoRCw4QkFBOEIsRUFBRSxZQUFZO2dCQUM1Qyw2QkFBNkIsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7YUFDbkQsQ0FBQyxDQUFDO1NBQ0o7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxPQUFPLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7Z0JBQzNELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtnQkFDeEIsT0FBTyxFQUFFLG1CQUFtQixLQUFLLENBQUMsUUFBUSxFQUFFO2FBQzdDLENBQUMsQ0FBQztZQUNILElBQUEscUJBQVcsRUFBQyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUMzQixrQ0FBa0MsRUFBRSxZQUFZO2dCQUNoRCw4QkFBOEIsRUFBRSxZQUFZO2dCQUM1Qyw2QkFBNkIsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7YUFDbkQsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzFELE1BQU0sSUFBSSxHQUFHLElBQUksVUFBSSxDQUFDLElBQUksRUFBRSxHQUFHLFVBQVUsd0JBQXdCLEVBQUU7WUFDakUsU0FBUyxFQUFFLElBQUksK0JBQXFCLENBQUMsZ0JBQUUsQ0FBQyxXQUFXLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztZQUN0RSxRQUFRLEVBQUUsR0FBRyxVQUFVLHdCQUF3QjtZQUMvQyxjQUFjLEVBQUU7Z0JBQ2QsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFLElBQUksd0JBQWMsQ0FBQztvQkFDdEMsVUFBVSxFQUFFO3dCQUNWLElBQUkseUJBQWUsQ0FBQzs0QkFDbEIsT0FBTyxFQUFFLENBQUMsK0JBQStCLENBQUM7NEJBQzFDLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDakIsQ0FBQztxQkFDSDtpQkFDRixDQUFDO2dCQUNGLENBQUMsMEJBQTBCLENBQUMsRUFBRSxJQUFJLHdCQUFjLENBQUM7b0JBQy9DLFVBQVUsRUFBRTt3QkFDVixJQUFJLHlCQUFlLENBQUM7NEJBQ2xCLE9BQU8sRUFBRSxDQUFDLGtDQUFrQyxDQUFDOzRCQUM3QyxTQUFTLEVBQUU7Z0NBQ1QsZ0NBQWdDLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxFQUFFOzZCQUMvRDt5QkFDRixDQUFDO3FCQUNIO2lCQUNGLENBQUM7YUFDSDtTQUNGLENBQUMsQ0FBQztRQUVILElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsMkJBQTJCLEVBQUU7WUFDL0MsR0FBRyxFQUFFLEdBQUcsVUFBVSwyQkFBMkI7WUFDN0MsS0FBSyxFQUFFLElBQUksQ0FBQyxPQUFPO1lBQ25CLFVBQVUsRUFBRSxHQUFHLFVBQVUsMkJBQTJCO1NBQ3JELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxVQUFVLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXRDLElBQUksdUJBQVMsQ0FBQyxJQUFJLEVBQUUsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFBRTtZQUN2RSxHQUFHLEVBQUUsY0FBYztZQUNuQixLQUFLLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxZQUFZO1lBQ25DLFVBQVUsRUFBRSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsY0FBYztTQUNoRSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUF2RUQsZ0NBdUVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSBcImNvbnN0cnVjdHNcIjtcbmltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIEZuLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgUm9sZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2lhbVwiO1xuaW1wb3J0IHtcbiAgT3JnYW5pemF0aW9uUHJpbmNpcGFsLFxuICBQb2xpY3lEb2N1bWVudCxcbiAgUG9saWN5U3RhdGVtZW50XG59IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCI7XG5pbXBvcnQgeyBJSG9zdGVkWm9uZSB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtcm91dGU1M1wiO1xuaW1wb3J0IHRhZ1Jlc291cmNlIGZyb20gXCIuLi8uLi91dGlscy90YWdSZXNvdXJjZVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIGhvc3RlZFpvbmVQcm9wcyB7XG4gIHpvbmVOYW1lOiBzdHJpbmc7XG4gIGltcG9ydEV4aXN0aW5nPzogYm9vbGVhbjtcbiAgaW1wb3J0ZWRIb3N0ZWRab25lSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBIb3N0ZWRab25lIGV4dGVuZHMgU3RhY2sge1xuICBwcml2YXRlIGhvc3RlZFpvbmU6IElIb3N0ZWRab25lIHwgSG9zdGVkWm9uZTtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IGhvc3RlZFpvbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG5cbiAgICBpZiAocHJvcHMuaW1wb3J0RXhpc3RpbmcpIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IHJvdXRlNTMuSG9zdGVkWm9uZS5mcm9tSG9zdGVkWm9uZUF0dHJpYnV0ZXMoXG4gICAgICAgIHRoaXMsXG4gICAgICAgIFwiaW1wb3J0ZWRIb3N0ZWRab25lXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBob3N0ZWRab25lSWQ6IHByb3BzLmltcG9ydGVkSG9zdGVkWm9uZUlkIHx8IFwiXCIsIC8vIFRPRE86IGZpeCBzbyB0aGlzIGNhbiByZWFsbHkgYmUgYW4gb3B0aW9uYWwgcHJvcFxuICAgICAgICAgIHpvbmVOYW1lOiBwcm9wcy56b25lTmFtZVxuICAgICAgICB9XG4gICAgICApO1xuICAgICAgdGFnUmVzb3VyY2UodGhpcy5ob3N0ZWRab25lLCB7XG4gICAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246ZW52aXJvbm1lbnRcIjogXCJtYW5hZ2VtZW50XCIsXG4gICAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246c2VydmljZVwiOiBcImhvc3RlZFpvbmVcIixcbiAgICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjpkb21haW5cIjogYCR7cHJvcHMuem9uZU5hbWV9YFxuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuaG9zdGVkWm9uZSA9IG5ldyByb3V0ZTUzLkhvc3RlZFpvbmUodGhpcywgXCJIb3N0ZWRab25lXCIsIHtcbiAgICAgICAgem9uZU5hbWU6IHByb3BzLnpvbmVOYW1lLFxuICAgICAgICBjb21tZW50OiBgSG9zdGVkIFpvbmUgZm9yICR7cHJvcHMuem9uZU5hbWV9YFxuICAgICAgfSk7XG4gICAgICB0YWdSZXNvdXJjZSh0aGlzLmhvc3RlZFpvbmUsIHtcbiAgICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjplbnZpcm9ubWVudFwiOiBcIm1hbmFnZW1lbnRcIixcbiAgICAgICAgXCJmamFsbDpjb3N0QWxsb2NhdGlvbjpzZXJ2aWNlXCI6IFwiaG9zdGVkWm9uZVwiLFxuICAgICAgICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmRvbWFpblwiOiBgJHtwcm9wcy56b25lTmFtZX1gXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBkb21haW5OYW1lID0gdGhpcy5ob3N0ZWRab25lLnpvbmVOYW1lLnNwbGl0KFwiLlwiLCAxKTtcbiAgICBjb25zdCByb2xlID0gbmV3IFJvbGUodGhpcywgYCR7ZG9tYWluTmFtZX1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlYCwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgT3JnYW5pemF0aW9uUHJpbmNpcGFsKEZuLmltcG9ydFZhbHVlKFwiT3JnYW5pc2F0aW9uSWRcIikpLFxuICAgICAgcm9sZU5hbWU6IGAke2RvbWFpbk5hbWV9RGVsZWdhdGVIb3N0ZWRab25lUm9sZWAsXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbXCJsaXN0SG9zdGVkWm9uZXNcIl06IG5ldyBQb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcInJvdXRlNTM6TGlzdEhvc3RlZFpvbmVzQnlOYW1lXCJdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtcIipcIl1cbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgXVxuICAgICAgICB9KSxcbiAgICAgICAgW1wiY2hhbmdlUmVzb3VyY2VSZWNvcmRTZXRzXCJdOiBuZXcgUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBhY3Rpb25zOiBbXCJyb3V0ZTUzOkNoYW5nZVJlc291cmNlUmVjb3JkU2V0c1wiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgYGFybjphd3M6cm91dGU1Mzo6Omhvc3RlZHpvbmUvJHt0aGlzLmhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkfWBcbiAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgICBdXG4gICAgICAgIH0pXG4gICAgICB9XG4gICAgfSk7XG5cbiAgICBuZXcgQ2ZuT3V0cHV0KHRoaXMsIFwiRGVsZWdhdGVIb3N0ZWRab25lUm9sZUFyblwiLCB7XG4gICAgICBrZXk6IGAke2RvbWFpbk5hbWV9RGVsZWdhdGVIb3N0ZWRab25lUm9sZUFybmAsXG4gICAgICB2YWx1ZTogcm9sZS5yb2xlQXJuLFxuICAgICAgZXhwb3J0TmFtZTogYCR7ZG9tYWluTmFtZX1EZWxlZ2F0ZUhvc3RlZFpvbmVSb2xlQXJuYFxuICAgIH0pO1xuXG4gICAgdGhpcy5ob3N0ZWRab25lLmdyYW50RGVsZWdhdGlvbihyb2xlKTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYCR7cHJvcHMuem9uZU5hbWUuc3BsaXQoXCIuXCIpLmpvaW4oXCJcIil9SG9zdGVkWm9uZUlkYCwge1xuICAgICAga2V5OiBcIkhvc3RlZFpvbmVJZFwiLFxuICAgICAgdmFsdWU6IHRoaXMuaG9zdGVkWm9uZS5ob3N0ZWRab25lSWQsXG4gICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy56b25lTmFtZS5zcGxpdChcIi5cIikuam9pbihcIlwiKX1Ib3N0ZWRab25lSWRgXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -1,13 +0,0 @@
1
- import { Stack, StackProps } from "aws-cdk-lib";
2
- import { Construct } from "constructs";
3
- export interface ManagedAccountProps extends StackProps {
4
- accountId: string;
5
- accountName: string;
6
- region: string;
7
- }
8
- /**
9
- * A stack for deploying defaults into a new account.
10
- */
11
- export declare class ManagedAccount extends Stack {
12
- constructor(scope: Construct, id: string, props: ManagedAccountProps);
13
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManagedAccount = void 0;
4
- const aws_cdk_lib_1 = require("aws-cdk-lib");
5
- const aws_1 = require("../../config/aws");
6
- const cloudTrail_1 = require("../../config/aws/cloudTrail");
7
- const cfnOutput_1 = require("../../resources/aws/utilities/cfnOutput");
8
- /**
9
- * A stack for deploying defaults into a new account.
10
- */
11
- class ManagedAccount extends aws_cdk_lib_1.Stack {
12
- constructor(scope, id, props) {
13
- super(scope, id, props);
14
- const organisation = new aws_1.OrganisationId(this, "OrganisationId");
15
- const account = new aws_1.AccountId(this, "AccountId");
16
- const eventBus = new aws_1.DefaultEventBus(this, "EventBus");
17
- if (id === "ManagedAccount") {
18
- new aws_1.IpamPoolId(this, "IpamPoolId", {
19
- region: props.region,
20
- ownerId: organisation.organisationAccountArn.value.split(":")[4]
21
- });
22
- }
23
- new cloudTrail_1.ManagementEventsTrail(this, "CloudTrail", {
24
- accountId: account.accountId.value
25
- });
26
- new aws_1.EcrDefaultImage(this, "EcrDefaultImage", {
27
- region: props.region,
28
- accountId: account.accountId.value,
29
- eventBusArn: eventBus.defaultEventBusArn.value
30
- });
31
- new cfnOutput_1.CfnOutput(this, `Environment`, {
32
- key: `Environment`,
33
- value: props.accountName,
34
- exportName: `Environment`
35
- });
36
- }
37
- }
38
- exports.ManagedAccount = ManagedAccount;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZEFjY291bnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWIvcGF0dGVybnMvYXdzL21hbmFnZWRBY2NvdW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUFnRDtBQUNoRCwwQ0FNMEI7QUFHMUIsNERBQW9FO0FBQ3BFLHVFQUFvRTtBQVFwRTs7R0FFRztBQUNILE1BQWEsY0FBZSxTQUFRLG1CQUFLO0lBQ3ZDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBMEI7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFeEIsTUFBTSxZQUFZLEdBQUcsSUFBSSxvQkFBYyxDQUFDLElBQUksRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBRWhFLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBUyxDQUFDLElBQUksRUFBRSxXQUFXLENBQUMsQ0FBQztRQUVqRCxNQUFNLFFBQVEsR0FBRyxJQUFJLHFCQUFlLENBQUMsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRXZELElBQUksRUFBRSxLQUFLLGdCQUFnQixFQUFFO1lBQzNCLElBQUksZ0JBQVUsQ0FBQyxJQUFJLEVBQUUsWUFBWSxFQUFFO2dCQUNqQyxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLE9BQU8sRUFBRSxZQUFZLENBQUMsc0JBQXNCLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDakUsQ0FBQyxDQUFDO1NBQ0o7UUFFRCxJQUFJLGtDQUFxQixDQUFDLElBQUksRUFBRSxZQUFZLEVBQUU7WUFDNUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxTQUFTLENBQUMsS0FBSztTQUNuQyxDQUFDLENBQUM7UUFFSCxJQUFJLHFCQUFlLENBQUMsSUFBSSxFQUFFLGlCQUFpQixFQUFFO1lBQzNDLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTLEVBQUUsT0FBTyxDQUFDLFNBQVMsQ0FBQyxLQUFLO1lBQ2xDLFdBQVcsRUFBRSxRQUFRLENBQUMsa0JBQWtCLENBQUMsS0FBSztTQUMvQyxDQUFDLENBQUM7UUFFSCxJQUFJLHFCQUFTLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRTtZQUNqQyxHQUFHLEVBQUUsYUFBYTtZQUNsQixLQUFLLEVBQUUsS0FBSyxDQUFDLFdBQVc7WUFDeEIsVUFBVSxFQUFFLGFBQWE7U0FDMUIsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBakNELHdDQWlDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFN0YWNrLCBTdGFja1Byb3BzIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQge1xuICBPcmdhbmlzYXRpb25JZCxcbiAgQWNjb3VudElkLFxuICBJcGFtUG9vbElkLFxuICBFY3JEZWZhdWx0SW1hZ2UsXG4gIERlZmF1bHRFdmVudEJ1c1xufSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3c1wiO1xuaW1wb3J0IHt9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgTWFuYWdlbWVudEV2ZW50c1RyYWlsIH0gZnJvbSBcIi4uLy4uL2NvbmZpZy9hd3MvY2xvdWRUcmFpbFwiO1xuaW1wb3J0IHsgQ2ZuT3V0cHV0IH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvdXRpbGl0aWVzL2Nmbk91dHB1dFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIE1hbmFnZWRBY2NvdW50UHJvcHMgZXh0ZW5kcyBTdGFja1Byb3BzIHtcbiAgYWNjb3VudElkOiBzdHJpbmc7XG4gIGFjY291bnROYW1lOiBzdHJpbmc7XG4gIHJlZ2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgc3RhY2sgZm9yIGRlcGxveWluZyBkZWZhdWx0cyBpbnRvIGEgbmV3IGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYW5hZ2VkQWNjb3VudCBleHRlbmRzIFN0YWNrIHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IE1hbmFnZWRBY2NvdW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHByb3BzKTtcblxuICAgIGNvbnN0IG9yZ2FuaXNhdGlvbiA9IG5ldyBPcmdhbmlzYXRpb25JZCh0aGlzLCBcIk9yZ2FuaXNhdGlvbklkXCIpO1xuXG4gICAgY29uc3QgYWNjb3VudCA9IG5ldyBBY2NvdW50SWQodGhpcywgXCJBY2NvdW50SWRcIik7XG5cbiAgICBjb25zdCBldmVudEJ1cyA9IG5ldyBEZWZhdWx0RXZlbnRCdXModGhpcywgXCJFdmVudEJ1c1wiKTtcblxuICAgIGlmIChpZCA9PT0gXCJNYW5hZ2VkQWNjb3VudFwiKSB7XG4gICAgICBuZXcgSXBhbVBvb2xJZCh0aGlzLCBcIklwYW1Qb29sSWRcIiwge1xuICAgICAgICByZWdpb246IHByb3BzLnJlZ2lvbixcbiAgICAgICAgb3duZXJJZDogb3JnYW5pc2F0aW9uLm9yZ2FuaXNhdGlvbkFjY291bnRBcm4udmFsdWUuc3BsaXQoXCI6XCIpWzRdXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBuZXcgTWFuYWdlbWVudEV2ZW50c1RyYWlsKHRoaXMsIFwiQ2xvdWRUcmFpbFwiLCB7XG4gICAgICBhY2NvdW50SWQ6IGFjY291bnQuYWNjb3VudElkLnZhbHVlXG4gICAgfSk7XG5cbiAgICBuZXcgRWNyRGVmYXVsdEltYWdlKHRoaXMsIFwiRWNyRGVmYXVsdEltYWdlXCIsIHtcbiAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgYWNjb3VudElkOiBhY2NvdW50LmFjY291bnRJZC52YWx1ZSxcbiAgICAgIGV2ZW50QnVzQXJuOiBldmVudEJ1cy5kZWZhdWx0RXZlbnRCdXNBcm4udmFsdWVcbiAgICB9KTtcblxuICAgIG5ldyBDZm5PdXRwdXQodGhpcywgYEVudmlyb25tZW50YCwge1xuICAgICAga2V5OiBgRW52aXJvbm1lbnRgLFxuICAgICAgdmFsdWU6IHByb3BzLmFjY291bnROYW1lLFxuICAgICAgZXhwb3J0TmFtZTogYEVudmlyb25tZW50YFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,13 +0,0 @@
1
- import { Construct } from "constructs";
2
- import { ManagedAccount, ManagedAccountProps } from "./managedAccount";
3
- interface ManagedPlatformProps extends ManagedAccountProps {
4
- orgAccounts: string[];
5
- region: string;
6
- }
7
- /**
8
- * A stack for creating multi environment organisations with a production, staging and development account.
9
- */
10
- export declare class ManagedPlatform extends ManagedAccount {
11
- constructor(scope: Construct, id: string, props: ManagedPlatformProps);
12
- }
13
- export {};
@@ -1,22 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.ManagedPlatform = void 0;
4
- const ipam_1 = require("../../config/aws/ipam");
5
- const ipamPool_1 = require("../../resources/aws/networking/ipamPool");
6
- const managedAccount_1 = require("./managedAccount");
7
- /**
8
- * A stack for creating multi environment organisations with a production, staging and development account.
9
- */
10
- class ManagedPlatform extends managedAccount_1.ManagedAccount {
11
- constructor(scope, id, props) {
12
- super(scope, id, props);
13
- const ipam = new ipam_1.Ipam(this, "Ipam");
14
- new ipamPool_1.IpamPool(this, "IpamPool", {
15
- orgAccounts: props.orgAccounts,
16
- region: props.region,
17
- ipamScope: ipam.privateDefaultScopeId
18
- });
19
- }
20
- }
21
- exports.ManagedPlatform = ManagedPlatform;
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFuYWdlZFBsYXRmb3JtLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9tYW5hZ2VkUGxhdGZvcm0udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsZ0RBQTZDO0FBQzdDLHNFQUFtRTtBQUVuRSxxREFBdUU7QUFPdkU7O0dBRUc7QUFDSCxNQUFhLGVBQWdCLFNBQVEsK0JBQWM7SUFDakQsWUFBWSxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUEyQjtRQUNuRSxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUV4QixNQUFNLElBQUksR0FBRyxJQUFJLFdBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFFcEMsSUFBSSxtQkFBUSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDN0IsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixTQUFTLEVBQUUsSUFBSSxDQUFDLHFCQUFxQjtTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFaRCwwQ0FZQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElwYW0gfSBmcm9tIFwiLi4vLi4vY29uZmlnL2F3cy9pcGFtXCI7XG5pbXBvcnQgeyBJcGFtUG9vbCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL25ldHdvcmtpbmcvaXBhbVBvb2xcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBNYW5hZ2VkQWNjb3VudCwgTWFuYWdlZEFjY291bnRQcm9wcyB9IGZyb20gXCIuL21hbmFnZWRBY2NvdW50XCI7XG5cbmludGVyZmFjZSBNYW5hZ2VkUGxhdGZvcm1Qcm9wcyBleHRlbmRzIE1hbmFnZWRBY2NvdW50UHJvcHMge1xuICBvcmdBY2NvdW50czogc3RyaW5nW107XG4gIHJlZ2lvbjogc3RyaW5nO1xufVxuXG4vKipcbiAqIEEgc3RhY2sgZm9yIGNyZWF0aW5nIG11bHRpIGVudmlyb25tZW50IG9yZ2FuaXNhdGlvbnMgd2l0aCBhIHByb2R1Y3Rpb24sIHN0YWdpbmcgYW5kIGRldmVsb3BtZW50IGFjY291bnQuXG4gKi9cbmV4cG9ydCBjbGFzcyBNYW5hZ2VkUGxhdGZvcm0gZXh0ZW5kcyBNYW5hZ2VkQWNjb3VudCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBNYW5hZ2VkUGxhdGZvcm1Qcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwgcHJvcHMpO1xuXG4gICAgY29uc3QgaXBhbSA9IG5ldyBJcGFtKHRoaXMsIFwiSXBhbVwiKTtcblxuICAgIG5ldyBJcGFtUG9vbCh0aGlzLCBcIklwYW1Qb29sXCIsIHtcbiAgICAgIG9yZ0FjY291bnRzOiBwcm9wcy5vcmdBY2NvdW50cyxcbiAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgaXBhbVNjb3BlOiBpcGFtLnByaXZhdGVEZWZhdWx0U2NvcGVJZFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -1,46 +0,0 @@
1
- import { AwsStackProps } from "../../resources/aws/awsStack";
2
- import { ScalingType } from "../../resources/aws/compute/ecs";
3
- import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
4
- import { KeyValue } from "../../types";
5
- /**
6
- * Intersected with BasicAppProps in the getProps method. This allows the BasicApp construct
7
- * to treat these as required properties and avoid constant null checking.
8
- */
9
- export interface BasicAppPropDefaults {
10
- tags: KeyValue;
11
- serviceName: string;
12
- clusterName: string;
13
- scalingType: ScalingType;
14
- containerPort: number;
15
- }
16
- export interface BasicAppProps {
17
- account?: string;
18
- clusterName?: string;
19
- containerEntryPoint?: string[];
20
- containerCommand?: string[];
21
- containerEnvironment?: KeyValue;
22
- containerPort?: number;
23
- containerSecrets?: string[];
24
- owner?: string;
25
- parentDomain?: string;
26
- environment: string;
27
- listenerPort?: number;
28
- region?: string;
29
- scalingType?: ScalingType;
30
- serviceName?: string;
31
- taskRoleInlinePolicies?: {
32
- [name: string]: PolicyDocument;
33
- };
34
- taskRoleManagedPolicies?: IManagedPolicy[];
35
- tags?: KeyValue;
36
- }
37
- export declare class BasicApp {
38
- private vpcStack;
39
- private databaseStack;
40
- private secretStack;
41
- private computeStack;
42
- constructor(id: string, rawProps: BasicAppProps);
43
- getStackProps(props: BasicAppProps): AwsStackProps | undefined;
44
- getProps(id: string, rawProps: BasicAppProps): BasicAppProps & BasicAppPropDefaults;
45
- }
46
- export default BasicApp;
@@ -1,95 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.BasicApp = void 0;
4
- const awsStack_1 = require("../../resources/aws/awsStack");
5
- const vpc_1 = require("../../resources/aws/networking/vpc");
6
- const ecs_1 = require("../../resources/aws/compute/ecs");
7
- const ecsSpot_1 = require("../../resources/aws/compute/ecsSpot");
8
- const secrets_1 = require("../../resources/aws/secrets");
9
- const storage_1 = require("../../resources/aws/storage");
10
- const aws_cdk_lib_1 = require("aws-cdk-lib");
11
- const databaseInstance_1 = require("../../resources/aws/database/databaseInstance");
12
- class BasicApp {
13
- constructor(id, rawProps) {
14
- const props = this.getProps(id, rawProps);
15
- const stackProps = this.getStackProps(props);
16
- this.vpcStack = new awsStack_1.default(`${id}Network`, [], stackProps)
17
- .addNetwork(vpc_1.Vpc.build(`${id}Vpc`, {
18
- environment: props.environment,
19
- region: props.region,
20
- tags: props.tags
21
- }))
22
- .addContainerRegistry(storage_1.Ecr.build(`${id}Ecr`));
23
- this.databaseStack = new awsStack_1.default(`${id}Database`, this.vpcStack, stackProps)
24
- .addNetwork(this.vpcStack.getNetwork())
25
- .addResource(databaseInstance_1.default.build(`${id}Database`, {
26
- tags: props.tags
27
- }));
28
- // Fetches the dbResource from the databaseStack
29
- const dbResource = this.databaseStack.getResource(`${id}Database`);
30
- const secretObjectValue = {};
31
- if (props.containerSecrets) {
32
- for (const secretObject of props.containerSecrets) {
33
- secretObjectValue[secretObject] = aws_cdk_lib_1.SecretValue.unsafePlainText("");
34
- }
35
- }
36
- this.secretStack = new awsStack_1.default(`${id}Secret`, [], stackProps).addResource(secrets_1.Secret.build(`${id}Secret`, {
37
- secretName: `/${props.clusterName}/${props.serviceName}`,
38
- secretObjectValue: secretObjectValue,
39
- tags: props.tags
40
- }));
41
- this.computeStack = new awsStack_1.default(`${id}Compute`, [this.vpcStack, this.databaseStack, this.secretStack], stackProps)
42
- .addNetwork(this.vpcStack.getNetwork())
43
- .addResource(ecsSpot_1.default.build(`${id}Fargate`, {
44
- clusterName: props.clusterName,
45
- //TODO: This should work via line 124, but doesn't work (at least on update)
46
- databaseConnection: dbResource.databaseSecurityGroup.connections,
47
- containerEntryPoint: props.containerEntryPoint,
48
- containerCommand: props.containerCommand,
49
- containerEnvironment: props.containerEnvironment,
50
- containerPort: props.containerPort,
51
- containerSecrets: secretObjectValue,
52
- ecrRepository: this.vpcStack.getContainerRegistry(),
53
- parentDomain: props.parentDomain?.toLowerCase(),
54
- listenerPort: props.listenerPort,
55
- serviceName: props.serviceName,
56
- taskRoleInlinePolicies: props.taskRoleInlinePolicies,
57
- taskRoleManagedPolicies: props.taskRoleManagedPolicies,
58
- tags: props.tags
59
- }))
60
- .connect(`${id}Fargate`, `${id}Database`, 5432);
61
- }
62
- getStackProps(props) {
63
- if (!props)
64
- return;
65
- return {
66
- account: props.account,
67
- region: props.region,
68
- environment: props.environment
69
- };
70
- }
71
- getProps(id, rawProps) {
72
- const defaultProps = {
73
- tags: {
74
- "fjall:costAllocation:service": "app",
75
- "fjall:costAllocation:environment": rawProps.environment || "production",
76
- "fjall:costAllocation:owner": rawProps.owner || "Engineer"
77
- },
78
- scalingType: ecs_1.ScalingType.CPU,
79
- containerPort: rawProps.containerPort || 3000,
80
- serviceName: `${id}Service`,
81
- clusterName: `${id}Cluster`,
82
- containerEntryPoint: ["node", "main.js"],
83
- containerCommand: rawProps.containerPort
84
- ? [`${rawProps.containerPort}`]
85
- : [`3000`]
86
- };
87
- return {
88
- ...defaultProps,
89
- ...rawProps
90
- };
91
- }
92
- }
93
- exports.BasicApp = BasicApp;
94
- exports.default = BasicApp;
95
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3BvdEluc3RhbmNlQXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vbGliL3BhdHRlcm5zL2F3cy9zcG90SW5zdGFuY2VBcHAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMkRBQXVFO0FBQ3ZFLDREQUF5RDtBQUN6RCx5REFBK0U7QUFDL0UsaUVBQTZEO0FBQzdELHlEQUFxRDtBQUNyRCx5REFBa0Q7QUFDbEQsNkNBQTBDO0FBRzFDLG9GQUFxRTtBQXFDckUsTUFBYSxRQUFRO0lBTW5CLFlBQVksRUFBVSxFQUFFLFFBQXVCO1FBQzdDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzFDLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFN0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGtCQUFRLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxFQUFFLEVBQUUsVUFBVSxDQUFDO2FBQ3pELFVBQVUsQ0FDVCxTQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUU7WUFDcEIsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtZQUNwQixJQUFJLEVBQUUsS0FBSyxDQUFDLElBQUk7U0FDakIsQ0FBQyxDQUNIO2FBQ0Esb0JBQW9CLENBQUMsYUFBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUUvQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksa0JBQVEsQ0FDL0IsR0FBRyxFQUFFLFVBQVUsRUFDZixJQUFJLENBQUMsUUFBUSxFQUNiLFVBQVUsQ0FDWDthQUNFLFVBQVUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ3RDLFdBQVcsQ0FDViwwQkFBUSxDQUFDLEtB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LFlBQVk7Z0JBQ3RDLDRCQUE0QixFQUFFLFFBQVEsQ0FBQyxLQUFLLElBQUksVUFBVTthQUMzRDtZQUNELFdBQVcsRUFBRSxpQkFBVyxDQUFDLEdBQUc7WUFDNUIsYUFBYSxFQUFFLFFBQVEsQ0FBQyxhQUFhLElBQUksSUFBSTtZQUM3QyxXQUFXLEVBQUUsR0FBRyxFQUFFLFNBQVM7WUFDM0IsV0FBVyxFQUFFLEdBQUcsRUFBRSxTQUFTO1lBQzNCLG1CQUFtQixFQUFFLENBQUMsTUFBTSxFQUFFLFNBQVMsQ0FBQztZQUN4QyxnQkFBZ0IsRUFBRSxRQUFRLENBQUMsYUFBYTtnQkFDdEMsQ0FBQyxDQUFDLENBQUMsR0FBRyxRQUFRLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQy9CLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztTQUNiLENBQUM7UUFFRixPQUFPO1lBQ0wsR0FBRyxZQUFZO1lBQ2YsR0FBRyxRQUFRO1NBQ1osQ0FBQztJQUNKLENBQUM7Q0FDRjtBQXBIRCw0QkFvSEM7QUFDRCxrQkFBZSxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgQXdzU3RhY2ssIHsgQXdzU3RhY2tQcm9wcyB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2F3c1N0YWNrXCI7XG5pbXBvcnQgeyBWcGMgfSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9uZXR3b3JraW5nL3ZwY1wiO1xuaW1wb3J0IHsgQ29udGFpbmVyU2VjcmV0LCBTY2FsaW5nVHlwZSB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL2NvbXB1dGUvZWNzXCI7XG5pbXBvcnQgRWMyQ2x1c3RlciBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9jb21wdXRlL2Vjc1Nwb3RcIjtcbmltcG9ydCB7IFNlY3JldCB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3NlY3JldHNcIjtcbmltcG9ydCB7IEVjciB9IGZyb20gXCIuLi8uLi9yZXNvdXJjZXMvYXdzL3N0b3JhZ2VcIjtcbmltcG9ydCB7IFNlY3JldFZhbHVlIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBJTWFuYWdlZFBvbGljeSwgUG9saWN5RG9jdW1lbnQgfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiO1xuaW1wb3J0IHsgS2V5VmFsdWUgfSBmcm9tIFwiLi4vLi4vdHlwZXNcIjtcbmltcG9ydCBEYXRhYmFzZSBmcm9tIFwiLi4vLi4vcmVzb3VyY2VzL2F3cy9kYXRhYmFzZS9kYXRhYmFzZUluc3RhbmNlXCI7XG5cbi8qKlxuICogSW50ZXJzZWN0ZWQgd2l0aCBCYXNpY0FwcFByb3BzIGluIHRoZSBnZXRQcm9wcyBtZXRob2QuIFRoaXMgYWxsb3dzIHRoZSBCYXNpY0FwcCBjb25zdHJ1Y3RcbiAqIHRvIHRyZWF0IHRoZXNlIGFzIHJlcXVpcmVkIHByb3BlcnRpZXMgYW5kIGF2b2lkIGNvbnN0YW50IG51bGwgY2hlY2tpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBcHBQcm9wRGVmYXVsdHMge1xuICB0YWdzOiBLZXlWYWx1ZTtcbiAgc2VydmljZU5hbWU6IHN0cmluZztcbiAgY2x1c3Rlck5hbWU6IHN0cmluZztcbiAgc2NhbGluZ1R5cGU6IFNjYWxpbmdUeXBlO1xuICBjb250YWluZXJQb3J0OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBcHBQcm9wcyB7XG4gIGFjY291bnQ/OiBzdHJpbmc7XG4gIGNsdXN0ZXJOYW1lPzogc3RyaW5nO1xuICBjb250YWluZXJFbnRyeVBvaW50Pzogc3RyaW5nW107XG4gIGNvbnRhaW5lckNvbW1hbmQ/OiBzdHJpbmdbXTtcbiAgY29udGFpbmVyRW52aXJvbm1lbnQ/OiBLZXlWYWx1ZTtcbiAgY29udGFpbmVyUG9ydD86IG51bWJlcjtcbiAgY29udGFpbmVyU2VjcmV0cz86IHN0cmluZ1tdO1xuICAvLyBUaGUgdGVhbS9kb21haW4vYnVzaW5lc3MtdW5pdCB0aGF0IGlzIHJlc3BvbnNpYmxlIGZvciB0aGlzIHNlcnZpY2VcbiAgb3duZXI/OiBzdHJpbmc7XG4gIHBhcmVudERvbWFpbj86IHN0cmluZzsgLy8gRml4IHRvIG1ha2UgYSBkZXBlbmRlbmN5IG9mIHByb3RvY29sXG4gIGVudmlyb25tZW50OiBzdHJpbmc7XG4gIGxpc3RlbmVyUG9ydD86IG51bWJlcjtcbiAgcmVnaW9uPzogc3RyaW5nO1xuICBzY2FsaW5nVHlwZT86IFNjYWxpbmdUeXBlO1xuICBzZXJ2aWNlTmFtZT86IHN0cmluZztcbiAgdGFza1JvbGVJbmxpbmVQb2xpY2llcz86IHtcbiAgICBbbmFtZTogc3RyaW5nXTogUG9saWN5RG9jdW1lbnQ7XG4gIH07XG4gIHRhc2tSb2xlTWFuYWdlZFBvbGljaWVzPzogSU1hbmFnZWRQb2xpY3lbXTtcbiAgdGFncz86IEtleVZhbHVlO1xufVxuXG5leHBvcnQgY2xhc3MgQmFzaWNBcHAge1xuICBwcml2YXRlIHZwY1N0YWNrOiBBd3NTdGFjaztcbiAgcHJpdmF0ZSBkYXRhYmFzZVN0YWNrOiBBd3NTdGFjaztcbiAgcHJpdmF0ZSBzZWNyZXRTdGFjazogQXdzU3RhY2s7XG4gIHByaXZhdGUgY29tcHV0ZVN0YWNrOiBBd3NTdGFjaztcblxuICBjb25zdHJ1Y3RvcihpZDogc3RyaW5nLCByYXdQcm9wczogQmFzaWNBcHBQcm9wcykge1xuICAgIGNvbnN0IHByb3BzID0gdGhpcy5nZXRQcm9wcyhpZCwgcmF3UHJvcHMpO1xuICAgIGNvbnN0IHN0YWNrUHJvcHMgPSB0aGlzLmdldFN0YWNrUHJvcHMocHJvcHMpO1xuXG4gICAgdGhpcy52cGNTdGFjayA9IG5ldyBBd3NTdGFjayhgJHtpZH1OZXR3b3JrYCwgW10sIHN0YWNrUHJvcHMpXG4gICAgICAuYWRkTmV0d29yayhcbiAgICAgICAgVnBjLmJ1aWxkKGAke2lkfVZwY2AsIHtcbiAgICAgICAgICBlbnZpcm9ubWVudDogcHJvcHMuZW52aXJvbm1lbnQsXG4gICAgICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICAgICAgdGFnczogcHJvcHMudGFnc1xuICAgICAgICB9KVxuICAgICAgKVxuICAgICAgLmFkZENvbnRhaW5lclJlZ2lzdHJ5KEVjci5idWlsZChgJHtpZH1FY3JgKSk7XG5cbiAgICB0aGlzLmRhdGFiYXNlU3RhY2sgPSBuZXcgQXdzU3RhY2soXG4gICAgICBgJHtpZH1EYXRhYmFzZWAsXG4gICAgICB0aGlzLnZwY1N0YWNrLFxuICAgICAgc3RhY2tQcm9wc1xuICAgIClcbiAgICAgIC5hZGROZXR3b3JrKHRoaXMudnBjU3RhY2suZ2V0TmV0d29yaygpKVxuICAgICAgLmFkZFJlc291cmNlKFxuICAgICAgICBEYXRhYmFzZS5idWlsZChgJHtpZH1EYXRhYmFzZWAsIHtcbiAgICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICAgIH0pXG4gICAgICApO1xuXG4gICAgLy8gRmV0Y2hlcyB0aGUgZGJSZXNvdXJjZSBmcm9tIHRoZSBkYXRhYmFzZVN0YWNrXG4gICAgY29uc3QgZGJSZXNvdXJjZSA9IHRoaXMuZGF0YWJhc2VTdGFjay5nZXRSZXNvdXJjZShcbiAgICAgIGAke2lkfURhdGFiYXNlYFxuICAgICkgYXMgRGF0YWJhc2U7XG5cbiAgICBjb25zdCBzZWNyZXRPYmplY3RWYWx1ZTogQ29udGFpbmVyU2VjcmV0ID0ge307XG4gICAgaWYgKHByb3BzLmNvbnRhaW5lclNlY3JldHMpIHtcbiAgICAgIGZvciAoY29uc3Qgc2VjcmV0T2JqZWN0IG9mIHByb3BzLmNvbnRhaW5lclNlY3JldHMpIHtcbiAgICAgICAgc2VjcmV0T2JqZWN0VmFsdWVbc2VjcmV0T2JqZWN0XSA9IFNlY3JldFZhbHVlLnVuc2FmZVBsYWluVGV4dChcIlwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICB0aGlzLnNlY3JldFN0YWNrID0gbmV3IEF3c1N0YWNrKGAke2lkfVNlY3JldGAsIFtdLCBzdGFja1Byb3BzKS5hZGRSZXNvdXJjZShcbiAgICAgIFNlY3JldC5idWlsZChgJHtpZH1TZWNyZXRgLCB7XG4gICAgICAgIHNlY3JldE5hbWU6IGAvJHtwcm9wcy5jbHVzdGVyTmFtZX0vJHtwcm9wcy5zZXJ2aWNlTmFtZX1gLFxuICAgICAgICBzZWNyZXRPYmplY3RWYWx1ZTogc2VjcmV0T2JqZWN0VmFsdWUsXG4gICAgICAgIHRhZ3M6IHByb3BzLnRhZ3NcbiAgICAgIH0pXG4gICAgKTtcblxuICAgIHRoaXMuY29tcHV0ZVN0YWNrID0gbmV3IEF3c1N0YWNrKFxuICAgICAgYCR7aWR9Q29tcHV0ZWAsXG4gICAgICBbdGhpcy52cGNTdGFjaywgdGhpcy5kYXRhYmFzZVN0YWNrLCB0aGlzLnNlY3JldFN0YWNrXSxcbiAgICAgIHN0YWNrUHJvcHNcbiAgICApXG4gICAgICAuYWRkTmV0d29yayh0aGlzLnZwY1N0YWNrLmdldE5ldHdvcmsoKSlcbiAgICAgIC5hZGRSZXNvdXJjZShcbiAgICAgICAgRWMyQ2x1c3Rlci5idWlsZChgJHtpZH1GYXJnYXRlYCwge1xuICAgICAgICAgIGNsdXN0ZXJOYW1lOiBwcm9wcy5jbHVzdGVyTmFtZSxcbiAgICAgICAgICAvL1RPRE86IFRoaXMgc2hvdWxkIHdvcmsgdmlhIGxpbmUgMTI0LCBidXQgZG9lc24ndCB3b3JrIChhdCBsZWFzdCBvbiB1cGRhdGUpXG4gICAgICAgICAgZGF0YWJhc2VDb25uZWN0aW9uOiBkYlJlc291cmNlLmRhdGFiYXNlU2VjdXJpdHlHcm91cC5jb25uZWN0aW9ucyxcbiAgICAgICAgICBjb250YWluZXJFbnRyeVBvaW50OiBwcm9wcy5jb250YWluZXJFbnRyeVBvaW50LFxuICAgICAgICAgIGNvbnRhaW5lckNvbW1hbmQ6IHByb3BzLmNvbnRhaW5lckNvbW1hbmQsXG4gICAgICAgICAgY29udGFpbmVyRW52aXJvbm1lbnQ6IHByb3BzLmNvbnRhaW5lckVudmlyb25tZW50LFxuICAgICAgICAgIGNvbnRhaW5lclBvcnQ6IHByb3BzLmNvbnRhaW5lclBvcnQsXG4gICAgICAgICAgY29udGFpbmVyU2VjcmV0czogc2VjcmV0T2JqZWN0VmFsdWUsXG4gICAgICAgICAgZWNyUmVwb3NpdG9yeTogdGhpcy52cGNTdGFjay5nZXRDb250YWluZXJSZWdpc3RyeSgpLFxuICAgICAgICAgIHBhcmVudERvbWFpbjogcHJvcHMucGFyZW50RG9tYWluPy50b0xvd2VyQ2FzZSgpLFxuICAgICAgICAgIGxpc3RlbmVyUG9ydDogcHJvcHMubGlzdGVuZXJQb3J0LFxuICAgICAgICAgIHNlcnZpY2VOYW1lOiBwcm9wcy5zZXJ2aWNlTmFtZSxcbiAgICAgICAgICB0YXNrUm9sZUlubGluZVBvbGljaWVzOiBwcm9wcy50YXNrUm9sZUlubGluZVBvbGljaWVzLFxuICAgICAgICAgIHRhc2tSb2xlTWFuYWdlZFBvbGljaWVzOiBwcm9wcy50YXNrUm9sZU1hbmFnZWRQb2xpY2llcyxcbiAgICAgICAgICB0YWdzOiBwcm9wcy50YWdzXG4gICAgICAgIH0pXG4gICAgICApXG4gICAgICAuY29ubmVjdChgJHtpZH1GYXJnYXRlYCwgYCR7aWR9RGF0YWJhc2VgLCA1NDMyKTtcbiAgfVxuXG4gIGdldFN0YWNrUHJvcHMocHJvcHM6IEJhc2ljQXBwUHJvcHMpOiBBd3NTdGFja1Byb3BzIHwgdW5kZWZpbmVkIHtcbiAgICBpZiAoIXByb3BzKSByZXR1cm47XG5cbiAgICByZXR1cm4ge1xuICAgICAgYWNjb3VudDogcHJvcHMuYWNjb3VudCxcbiAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgZW52aXJvbm1lbnQ6IHByb3BzLmVudmlyb25tZW50XG4gICAgfTtcbiAgfVxuXG4gIGdldFByb3BzKFxuICAgIGlkOiBzdHJpbmcsXG4gICAgcmF3UHJvcHM6IEJhc2ljQXBwUHJvcHNcbiAgKTogQmFzaWNBcHBQcm9wcyAmIEJhc2ljQXBwUHJvcERlZmF1bHRzIHtcbiAgICBjb25zdCBkZWZhdWx0UHJvcHMgPSB7XG4gICAgICB0YWdzOiB7XG4gICAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246c2VydmljZVwiOiBcImFwcFwiLFxuICAgICAgICBcImZqYWxsOmNvc3RBbGxvY2F0aW9uOmVudmlyb25tZW50XCI6XG4gICAgICAgICAgcmF3UHJvcHMuZW52aXJvbm1lbnQgfHwgXCJwcm9kdWN0aW9uXCIsXG4gICAgICAgIFwiZmphbGw6Y29zdEFsbG9jYXRpb246b3duZXJcIjogcmF3UHJvcHMub3duZXIgfHwgXCJFbmdpbmVlclwiXG4gICAgICB9LFxuICAgICAgc2NhbGluZ1R5cGU6IFNjYWxpbmdUeXBlLkNQVSxcbiAgICAgIGNvbnRhaW5lclBvcnQ6IHJhd1Byb3BzLmNvbnRhaW5lclBvcnQgfHwgMzAwMCxcbiAgICAgIHNlcnZpY2VOYW1lOiBgJHtpZH1TZXJ2aWNlYCxcbiAgICAgIGNsdXN0ZXJOYW1lOiBgJHtpZH1DbHVzdGVyYCxcbiAgICAgIGNvbnRhaW5lckVudHJ5UG9pbnQ6IFtcIm5vZGVcIiwgXCJtYWluLmpzXCJdLFxuICAgICAgY29udGFpbmVyQ29tbWFuZDogcmF3UHJvcHMuY29udGFpbmVyUG9ydFxuICAgICAgICA/IFtgJHtyYXdQcm9wcy5jb250YWluZXJQb3J0fWBdXG4gICAgICAgIDogW2AzMDAwYF1cbiAgICB9O1xuXG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLmRlZmF1bHRQcm9wcyxcbiAgICAgIC4uLnJhd1Byb3BzXG4gICAgfTtcbiAgfVxufVxuZXhwb3J0IGRlZmF1bHQgQmFzaWNBcHA7XG4iXX0=
@@ -1,9 +0,0 @@
1
- import { Stack } from "aws-cdk-lib";
2
- export interface subdomainHostedZoneProps {
3
- delegatedZone: string;
4
- parentHostedZoneName: string;
5
- parentAccountName: string;
6
- }
7
- export declare class SubdomainHostedZone extends Stack {
8
- constructor(id: string, props: subdomainHostedZoneProps);
9
- }
@@ -1,39 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SubdomainHostedZone = void 0;
4
- const route53 = require("aws-cdk-lib/aws-route53");
5
- const aws_cdk_lib_1 = require("aws-cdk-lib");
6
- const iam_1 = require("../../resources/aws/iam");
7
- const getAccountId_1 = require("../../utils/getAccountId");
8
- const app_1 = require("../../app");
9
- class SubdomainHostedZone extends aws_cdk_lib_1.Stack {
10
- constructor(id, props) {
11
- super(app_1.default.getInstance(), id);
12
- // DelegationRoleArn
13
- const delegationRoleArn = aws_cdk_lib_1.Stack.of(this).formatArn({
14
- account: (0, getAccountId_1.default)(props.parentAccountName),
15
- region: "",
16
- resource: "role",
17
- resourceName: `${props.parentHostedZoneName.split(".", 1)}DelegateHostedZoneRole`,
18
- service: "iam"
19
- });
20
- // Delegate Hosted Zone Role
21
- const hostedZoneDelegationRole = iam_1.Role.fromRoleArn(this, "hostedZoneDelegationRole", delegationRoleArn);
22
- // Subdomains
23
- const delegatedHostedZone = new route53.HostedZone(this, `${props.delegatedZone}HostedZone`, {
24
- zoneName: props.delegatedZone
25
- });
26
- new route53.CrossAccountZoneDelegationRecord(this, `${props.delegatedZone}DelegationRole`, {
27
- delegationRole: hostedZoneDelegationRole,
28
- delegatedZone: delegatedHostedZone,
29
- parentHostedZoneName: props.parentHostedZoneName
30
- });
31
- new aws_cdk_lib_1.CfnOutput(this, `${props.delegatedZone.split(".").join("")}HostedZoneId`, {
32
- key: "HostedZoneId",
33
- value: delegatedHostedZone.hostedZoneId,
34
- exportName: `${props.delegatedZone.split(".").join("")}HostedZoneId`
35
- });
36
- }
37
- }
38
- exports.SubdomainHostedZone = SubdomainHostedZone;
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3ViZG9tYWluSG9zdGVkWm9uZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL2xpYi9wYXR0ZXJucy9hd3Mvc3ViZG9tYWluSG9zdGVkWm9uZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtREFBbUQ7QUFDbkQsNkNBQStDO0FBQy9DLGlEQUErQztBQUMvQywyREFBb0Q7QUFDcEQsbUNBQTRCO0FBUTVCLE1BQWEsbUJBQW9CLFNBQVEsbUJBQUs7SUFDNUMsWUFBWSxFQUFVLEVBQUUsS0FBK0I7UUFDckQsS0FBSyxDQUFDLGFBQUcsQ0FBQyxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsTUFBTSxpQkFBaUIsR0FBRyxtQkFBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDakQsT0FBTyxFQUFFLElBQUEsc0JBQVksRUFBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7WUFDOUMsTUFBTSxFQUFFLEVBQUU7WUFDVixRQUFRLEVBQUUsTUFBTTtZQUNoQixZQUFZLEVBQUUsR0FBRyxLQUFLLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUMvQyxHQUFHLEVBQ0gsQ0FBQyxDQUNGLHdCQUF3QjtZQUN6QixPQUFPLEVBQUUsS0FBSztTQUNmLENBQUMsQ0FBQztRQUVILDRCQUE0QjtRQUM1QixNQUFNLHdCQUF3QixHQUFHLFVBQUksQ0FBQyxXQUFXLENBQy9DLElBQUksRUFDSiwwQkFBMEIsRUFDMUIsaUJBQWlCLENBQ2xCLENBQUM7UUFFRixhQUFhO1FBQ2IsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLE9BQU8sQ0FBQyxVQUFVLENBQ2hELElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLFlBQVksRUFDbEM7WUFDRSxRQUFRLEVBQUUsS0FBSyxDQUFDLGFBQWE7U0FDOUIsQ0FDRixDQUFDO1FBRUYsSUFBSSxPQUFPLENBQUMsZ0NBQWdDLENBQzFDLElBQUksRUFDSixHQUFHLEtBQUssQ0FBQyxhQUFhLGdCQUFnQixFQUN0QztZQUNFLGNBQWMsRUFBRSx3QkFBd0I7WUFDeEMsYUFBYSxFQUFFLG1CQUFtQjtZQUNsQyxvQkFBb0IsRUFBRSxLQUFLLENBQUMsb0JBQW9CO1NBQ2pELENBQ0YsQ0FBQztRQUVGLElBQUksdUJBQVMsQ0FDWCxJQUFJLEVBQ0osR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWMsRUFDeEQ7WUFDRSxHQUFHLEVBQUUsY0FBYztZQUNuQixLQUFLLEVBQUUsbUJBQW1CLENBQUMsWUFBWTtZQUN2QyxVQUFVLEVBQUUsR0FBRyxLQUFLLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLGNBQWM7U0FDckUsQ0FDRixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBcERELGtEQW9EQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIHJvdXRlNTMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1yb3V0ZTUzXCI7XG5pbXBvcnQgeyBDZm5PdXRwdXQsIFN0YWNrIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5pbXBvcnQgeyBSb2xlIH0gZnJvbSBcIi4uLy4uL3Jlc291cmNlcy9hd3MvaWFtXCI7XG5pbXBvcnQgZ2V0QWNjb3VudElkIGZyb20gXCIuLi8uLi91dGlscy9nZXRBY2NvdW50SWRcIjtcbmltcG9ydCBBcHAgZnJvbSBcIi4uLy4uL2FwcFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIHN1YmRvbWFpbkhvc3RlZFpvbmVQcm9wcyB7XG4gIGRlbGVnYXRlZFpvbmU6IHN0cmluZztcbiAgcGFyZW50SG9zdGVkWm9uZU5hbWU6IHN0cmluZztcbiAgcGFyZW50QWNjb3VudE5hbWU6IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFN1YmRvbWFpbkhvc3RlZFpvbmUgZXh0ZW5kcyBTdGFjayB7XG4gIGNvbnN0cnVjdG9yKGlkOiBzdHJpbmcsIHByb3BzOiBzdWJkb21haW5Ib3N0ZWRab25lUHJvcHMpIHtcbiAgICBzdXBlcihBcHAuZ2V0SW5zdGFuY2UoKSwgaWQpO1xuXG4gICAgLy8gRGVsZWdhdGlvblJvbGVBcm5cbiAgICBjb25zdCBkZWxlZ2F0aW9uUm9sZUFybiA9IFN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICBhY2NvdW50OiBnZXRBY2NvdW50SWQocHJvcHMucGFyZW50QWNjb3VudE5hbWUpLFxuICAgICAgcmVnaW9uOiBcIlwiLFxuICAgICAgcmVzb3VyY2U6IFwicm9sZVwiLFxuICAgICAgcmVzb3VyY2VOYW1lOiBgJHtwcm9wcy5wYXJlbnRIb3N0ZWRab25lTmFtZS5zcGxpdChcbiAgICAgICAgXCIuXCIsXG4gICAgICAgIDFcbiAgICAgICl9RGVsZWdhdGVIb3N0ZWRab25lUm9sZWAsXG4gICAgICBzZXJ2aWNlOiBcImlhbVwiXG4gICAgfSk7XG5cbiAgICAvLyBEZWxlZ2F0ZSBIb3N0ZWQgWm9uZSBSb2xlXG4gICAgY29uc3QgaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlID0gUm9sZS5mcm9tUm9sZUFybihcbiAgICAgIHRoaXMsXG4gICAgICBcImhvc3RlZFpvbmVEZWxlZ2F0aW9uUm9sZVwiLFxuICAgICAgZGVsZWdhdGlvblJvbGVBcm5cbiAgICApO1xuXG4gICAgLy8gU3ViZG9tYWluc1xuICAgIGNvbnN0IGRlbGVnYXRlZEhvc3RlZFpvbmUgPSBuZXcgcm91dGU1My5Ib3N0ZWRab25lKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9SG9zdGVkWm9uZWAsXG4gICAgICB7XG4gICAgICAgIHpvbmVOYW1lOiBwcm9wcy5kZWxlZ2F0ZWRab25lXG4gICAgICB9XG4gICAgKTtcblxuICAgIG5ldyByb3V0ZTUzLkNyb3NzQWNjb3VudFpvbmVEZWxlZ2F0aW9uUmVjb3JkKFxuICAgICAgdGhpcyxcbiAgICAgIGAke3Byb3BzLmRlbGVnYXRlZFpvbmV9RGVsZWdhdGlvblJvbGVgLFxuICAgICAge1xuICAgICAgICBkZWxlZ2F0aW9uUm9sZTogaG9zdGVkWm9uZURlbGVnYXRpb25Sb2xlLFxuICAgICAgICBkZWxlZ2F0ZWRab25lOiBkZWxlZ2F0ZWRIb3N0ZWRab25lLFxuICAgICAgICBwYXJlbnRIb3N0ZWRab25lTmFtZTogcHJvcHMucGFyZW50SG9zdGVkWm9uZU5hbWVcbiAgICAgIH1cbiAgICApO1xuXG4gICAgbmV3IENmbk91dHB1dChcbiAgICAgIHRoaXMsXG4gICAgICBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGAsXG4gICAgICB7XG4gICAgICAgIGtleTogXCJIb3N0ZWRab25lSWRcIixcbiAgICAgICAgdmFsdWU6IGRlbGVnYXRlZEhvc3RlZFpvbmUuaG9zdGVkWm9uZUlkLFxuICAgICAgICBleHBvcnROYW1lOiBgJHtwcm9wcy5kZWxlZ2F0ZWRab25lLnNwbGl0KFwiLlwiKS5qb2luKFwiXCIpfUhvc3RlZFpvbmVJZGBcbiAgICAgIH1cbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,76 +0,0 @@
1
- import { ContainerImage, RepositoryImage } from "aws-cdk-lib/aws-ecs";
2
- import { Connections, IConnectable, IVpc } from "aws-cdk-lib/aws-ec2";
3
- import { Construct } from "constructs";
4
- import { StackBuilder } from "../awsStack";
5
- import { SecretValue } from "aws-cdk-lib";
6
- import { IManagedPolicy, PolicyDocument } from "aws-cdk-lib/aws-iam";
7
- import { Repository } from "aws-cdk-lib/aws-ecr";
8
- import { KeyValue } from "../../../types";
9
- export declare enum ScalingType {
10
- CPU = "ECSServiceAverageCPUUtilization",
11
- MEMORY = "ECSServiceAverageMemoryUtilization"
12
- }
13
- export interface ContainerSecret {
14
- [key: string]: SecretValue;
15
- }
16
- type Ec2ClusterProps = {
17
- ecrRepository: Repository | RepositoryImage | string;
18
- clusterName: string;
19
- containerEntryPoint?: string[];
20
- containerCommand?: string[];
21
- containerEnvironment?: KeyValue;
22
- containerSecrets?: ContainerSecret;
23
- containerPort?: number;
24
- cpu?: number;
25
- databaseConnection: IConnectable;
26
- parentDomain?: string;
27
- desiredCount?: number;
28
- healthCheckPath?: string;
29
- listenerPort?: number;
30
- memoryLimitMiB?: number;
31
- publicLoadBalancer?: boolean;
32
- scalingType?: ScalingType;
33
- serviceName: string;
34
- tags: KeyValue;
35
- taskRoleInlinePolicies?: {
36
- [name: string]: PolicyDocument;
37
- };
38
- taskRoleManagedPolicies?: IManagedPolicy[];
39
- vpc?: IVpc;
40
- };
41
- export default class Ec2Cluster extends Construct implements IConnectable {
42
- connections: Connections;
43
- private cluster;
44
- private autoScalingGroup;
45
- private asgSecurityGroup;
46
- private asgCapacityProvider;
47
- private loadBalancer;
48
- private loadBalancerSecurityGroup;
49
- private loadBalancerListener;
50
- private executionRole;
51
- private taskDefinition;
52
- private containerDefinition;
53
- private ec2Service;
54
- private scalingPolicy;
55
- private hostedZone;
56
- private certificate;
57
- private aRecord;
58
- private secrets;
59
- constructor(scope: Construct, id: string, props: Ec2ClusterProps);
60
- addCluster(props: Ec2ClusterProps): void;
61
- addAutoScalingGroup(props: Ec2ClusterProps): void;
62
- addSecrets(props: Ec2ClusterProps): void;
63
- addExecutionRole(props: Ec2ClusterProps): void;
64
- addTaskDefinition(props: Ec2ClusterProps): void;
65
- addContainerDefinition(props: Ec2ClusterProps): void;
66
- addEc2Service(props: Ec2ClusterProps): void;
67
- addScalingPolicy(props: Ec2ClusterProps): void;
68
- addLoadBalancer(props: Ec2ClusterProps): void;
69
- removeAutoScalingGroup(): void;
70
- addLoadBalancerListener(props: Ec2ClusterProps): void;
71
- addHostedZone(props: Ec2ClusterProps): void;
72
- registerLoadBalancerTargets(props: Ec2ClusterProps): void;
73
- getImage(props: Ec2ClusterProps): ContainerImage;
74
- static build(id: string, props: Ec2ClusterProps): (sb: StackBuilder) => Construct;
75
- }
76
- export {};