@cloudsnorkel/cdk-github-runners 0.8.4 → 0.9.1

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 (80) hide show
  1. package/.jsii +2258 -745
  2. package/API.md +2006 -559
  3. package/README.md +44 -42
  4. package/assets/docker-images/codebuild/linux-arm64/Dockerfile +2 -0
  5. package/assets/docker-images/codebuild/linux-x64/Dockerfile +2 -0
  6. package/assets/docker-images/fargate/linux-arm64/Dockerfile +2 -0
  7. package/assets/docker-images/fargate/linux-x64/Dockerfile +2 -0
  8. package/assets/docker-images/lambda/linux-arm64/Dockerfile +3 -1
  9. package/assets/docker-images/lambda/linux-arm64/runner.sh +1 -1
  10. package/assets/docker-images/lambda/linux-x64/Dockerfile +3 -1
  11. package/assets/docker-images/lambda/linux-x64/runner.sh +1 -1
  12. package/assets/lambdas/setup.lambda/index.html +1 -1
  13. package/assets/lambdas/webhook-handler.lambda/index.js +1 -1
  14. package/lib/index.js +7 -3
  15. package/lib/lambdas/aws-image-builder-versioner.lambda.js +6 -6
  16. package/lib/lambdas/build-image.lambda.js +4 -4
  17. package/lib/lambdas/delete-ami.lambda.js +4 -4
  18. package/lib/lambdas/delete-runner.lambda.js +2 -2
  19. package/lib/lambdas/github.js +3 -3
  20. package/lib/lambdas/setup.lambda.js +16 -16
  21. package/lib/lambdas/status.lambda.js +5 -5
  22. package/lib/lambdas/token-retriever.lambda.js +2 -2
  23. package/lib/lambdas/webhook-handler.lambda.js +3 -3
  24. package/lib/providers/codebuild.d.ts +24 -4
  25. package/lib/providers/codebuild.js +42 -12
  26. package/lib/providers/common.d.ts +17 -39
  27. package/lib/providers/common.js +26 -16
  28. package/lib/providers/ec2.d.ts +23 -5
  29. package/lib/providers/ec2.js +43 -12
  30. package/lib/providers/ecs.d.ts +214 -0
  31. package/lib/providers/ecs.js +258 -0
  32. package/lib/providers/fargate.d.ts +26 -6
  33. package/lib/providers/fargate.js +81 -42
  34. package/lib/providers/image-builders/api.d.ts +15 -0
  35. package/lib/providers/image-builders/api.js +47 -0
  36. package/lib/providers/image-builders/aws-image-builder/ami.d.ts +43 -0
  37. package/lib/providers/image-builders/aws-image-builder/ami.js +81 -0
  38. package/lib/providers/image-builders/aws-image-builder/builder.d.ts +133 -0
  39. package/lib/providers/image-builders/aws-image-builder/builder.js +488 -0
  40. package/lib/providers/image-builders/aws-image-builder/common.d.ts +10 -0
  41. package/lib/providers/image-builders/aws-image-builder/common.js +46 -0
  42. package/lib/providers/image-builders/aws-image-builder/container.d.ts +58 -0
  43. package/lib/providers/image-builders/aws-image-builder/container.js +63 -0
  44. package/lib/providers/image-builders/{ami.d.ts → aws-image-builder/deprecated/ami.d.ts} +8 -4
  45. package/lib/providers/image-builders/aws-image-builder/deprecated/ami.js +239 -0
  46. package/lib/providers/image-builders/aws-image-builder/deprecated/common.d.ts +34 -0
  47. package/lib/providers/image-builders/aws-image-builder/deprecated/common.js +139 -0
  48. package/lib/providers/image-builders/{container.d.ts → aws-image-builder/deprecated/container.d.ts} +8 -4
  49. package/lib/providers/image-builders/aws-image-builder/deprecated/container.js +222 -0
  50. package/lib/providers/image-builders/aws-image-builder/deprecated/index.d.ts +5 -0
  51. package/lib/providers/image-builders/aws-image-builder/deprecated/index.js +22 -0
  52. package/lib/providers/image-builders/{linux-components.d.ts → aws-image-builder/deprecated/linux-components.d.ts} +4 -2
  53. package/lib/providers/image-builders/aws-image-builder/deprecated/linux-components.js +180 -0
  54. package/lib/providers/image-builders/{windows-components.d.ts → aws-image-builder/deprecated/windows-components.d.ts} +4 -2
  55. package/lib/providers/image-builders/aws-image-builder/deprecated/windows-components.js +142 -0
  56. package/lib/providers/image-builders/aws-image-builder/index.d.ts +5 -0
  57. package/lib/providers/image-builders/aws-image-builder/index.js +22 -0
  58. package/lib/providers/image-builders/codebuild-deprecated.d.ts +195 -0
  59. package/lib/providers/image-builders/codebuild-deprecated.js +373 -0
  60. package/lib/providers/image-builders/codebuild.d.ts +26 -157
  61. package/lib/providers/image-builders/codebuild.js +118 -210
  62. package/lib/providers/image-builders/common.d.ts +164 -107
  63. package/lib/providers/image-builders/common.js +30 -272
  64. package/lib/providers/image-builders/components.d.ts +114 -0
  65. package/lib/providers/image-builders/components.js +535 -0
  66. package/lib/providers/image-builders/index.d.ts +6 -4
  67. package/lib/providers/image-builders/index.js +13 -7
  68. package/lib/providers/image-builders/static.d.ts +4 -3
  69. package/lib/providers/image-builders/static.js +10 -10
  70. package/lib/providers/index.js +7 -3
  71. package/lib/providers/lambda.d.ts +25 -6
  72. package/lib/providers/lambda.js +50 -13
  73. package/lib/runner.d.ts +3 -5
  74. package/lib/runner.js +4 -4
  75. package/lib/secrets.js +3 -3
  76. package/package.json +7 -11
  77. package/lib/providers/image-builders/ami.js +0 -280
  78. package/lib/providers/image-builders/container.js +0 -247
  79. package/lib/providers/image-builders/linux-components.js +0 -177
  80. package/lib/providers/image-builders/windows-components.js +0 -139
@@ -0,0 +1,133 @@
1
+ import { aws_ec2 as ec2, aws_iam as iam, aws_imagebuilder as imagebuilder, aws_logs as logs, aws_s3_assets as s3_assets } from 'aws-cdk-lib';
2
+ import { Construct } from 'constructs';
3
+ import { ImageBuilderObjectBase } from './common';
4
+ import { RunnerAmi, RunnerImage } from '../../common';
5
+ import { RunnerImageBuilderBase, RunnerImageBuilderProps } from '../common';
6
+ export interface AwsImageBuilderRunnerImageBuilderProps {
7
+ /**
8
+ * The instance type used to build the image.
9
+ *
10
+ * @default m5.large
11
+ */
12
+ readonly instanceType?: ec2.InstanceType;
13
+ }
14
+ /**
15
+ * An asset including file or directory to place inside the built image.
16
+ */
17
+ export interface ImageBuilderAsset {
18
+ /**
19
+ * Path to place asset in the image.
20
+ */
21
+ readonly path: string;
22
+ /**
23
+ * Asset to place in the image.
24
+ */
25
+ readonly asset: s3_assets.Asset;
26
+ }
27
+ /**
28
+ * Properties for ImageBuilderComponent construct.
29
+ */
30
+ export interface ImageBuilderComponentProperties {
31
+ /**
32
+ * Component platform. Must match the builder platform.
33
+ */
34
+ readonly platform: 'Linux' | 'Windows';
35
+ /**
36
+ * Component display name.
37
+ */
38
+ readonly displayName: string;
39
+ /**
40
+ * Component description.
41
+ */
42
+ readonly description: string;
43
+ /**
44
+ * Shell commands to run when adding this component to the image.
45
+ *
46
+ * On Linux, these are bash commands. On Windows, there are PowerShell commands.
47
+ */
48
+ readonly commands: string[];
49
+ /**
50
+ * Optional assets to add to the built image.
51
+ */
52
+ readonly assets?: ImageBuilderAsset[];
53
+ }
54
+ /**
55
+ * Components are a set of commands to run and optional files to add to an image. Components are the building blocks of images built by Image Builder.
56
+ *
57
+ * Example:
58
+ *
59
+ * ```
60
+ * new ImageBuilderComponent(this, 'AWS CLI', {
61
+ * platform: 'Windows',
62
+ * displayName: 'AWS CLI',
63
+ * description: 'Install latest version of AWS CLI',
64
+ * commands: [
65
+ * '$ErrorActionPreference = \'Stop\'',
66
+ * 'Start-Process msiexec.exe -Wait -ArgumentList \'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\'',
67
+ * ],
68
+ * }
69
+ * ```
70
+ *
71
+ * @deprecated Use `RunnerImageComponent` instead as this be internal soon.
72
+ */
73
+ export declare class ImageBuilderComponent extends ImageBuilderObjectBase {
74
+ /**
75
+ * Component ARN.
76
+ */
77
+ readonly arn: string;
78
+ /**
79
+ * Supported platform for the component.
80
+ */
81
+ readonly platform: 'Windows' | 'Linux';
82
+ private readonly assets;
83
+ constructor(scope: Construct, id: string, props: ImageBuilderComponentProperties);
84
+ /**
85
+ * Grants read permissions to the principal on the assets buckets.
86
+ *
87
+ * @param grantee
88
+ */
89
+ grantAssetsRead(grantee: iam.IGrantable): void;
90
+ prefixCommandsWithErrorHandling(platform: 'Windows' | 'Linux', commands: string[]): string[];
91
+ }
92
+ /**
93
+ * @internal
94
+ */
95
+ export declare class AwsImageBuilderRunnerImageBuilder extends RunnerImageBuilderBase {
96
+ private boundDockerImage?;
97
+ private boundAmi?;
98
+ private readonly os;
99
+ private readonly architecture;
100
+ private readonly baseImage;
101
+ private readonly baseAmi;
102
+ private readonly logRetention;
103
+ private readonly logRemovalPolicy;
104
+ private readonly vpc;
105
+ private readonly securityGroups;
106
+ private readonly repository;
107
+ private readonly subnetSelection;
108
+ private readonly rebuildInterval;
109
+ private readonly boundComponents;
110
+ private readonly instanceType;
111
+ private infrastructure;
112
+ private readonly role;
113
+ constructor(scope: Construct, id: string, props?: RunnerImageBuilderProps);
114
+ private platform;
115
+ /**
116
+ * Called by IRunnerProvider to finalize settings and create the image builder.
117
+ */
118
+ bindDockerImage(): RunnerImage;
119
+ private imageCleaner;
120
+ protected createLog(id: string, recipeName: string): logs.LogGroup;
121
+ protected createInfrastructure(managedPolicies: iam.IManagedPolicy[]): imagebuilder.CfnInfrastructureConfiguration;
122
+ protected createImage(infra: imagebuilder.CfnInfrastructureConfiguration, dist: imagebuilder.CfnDistributionConfiguration, log: logs.LogGroup, imageRecipeArn?: string, containerRecipeArn?: string): imagebuilder.CfnImage;
123
+ private amiOrContainerId;
124
+ protected createPipeline(infra: imagebuilder.CfnInfrastructureConfiguration, dist: imagebuilder.CfnDistributionConfiguration, log: logs.LogGroup, imageRecipeArn?: string, containerRecipeArn?: string): imagebuilder.CfnImagePipeline;
125
+ /**
126
+ * The network connections associated with this resource.
127
+ */
128
+ get connections(): ec2.Connections;
129
+ get grantPrincipal(): iam.IPrincipal;
130
+ bindAmi(): RunnerAmi;
131
+ private amiCleaner;
132
+ private bindComponents;
133
+ }