@cloudsnorkel/cdk-github-runners 0.14.18 → 0.14.20

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 (49) hide show
  1. package/.jsii +741 -230
  2. package/API.md +499 -41
  3. package/README.md +34 -4
  4. package/assets/providers/ami-root-device.lambda/index.js +11 -0
  5. package/lib/access.js +1 -1
  6. package/lib/image-builders/api.js +1 -1
  7. package/lib/image-builders/aws-image-builder/ami.d.ts +3 -2
  8. package/lib/image-builders/aws-image-builder/ami.js +9 -34
  9. package/lib/image-builders/aws-image-builder/base-image.d.ts +118 -0
  10. package/lib/image-builders/aws-image-builder/base-image.js +130 -0
  11. package/lib/image-builders/aws-image-builder/builder.js +17 -5
  12. package/lib/image-builders/aws-image-builder/container.d.ts +2 -1
  13. package/lib/image-builders/aws-image-builder/container.js +7 -6
  14. package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
  15. package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
  16. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
  17. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
  18. package/lib/image-builders/aws-image-builder/index.d.ts +1 -0
  19. package/lib/image-builders/aws-image-builder/index.js +2 -1
  20. package/lib/image-builders/codebuild-deprecated.js +1 -1
  21. package/lib/image-builders/codebuild.d.ts +10 -0
  22. package/lib/image-builders/codebuild.js +15 -4
  23. package/lib/image-builders/common.d.ts +22 -3
  24. package/lib/image-builders/common.js +1 -1
  25. package/lib/image-builders/components.d.ts +1 -1
  26. package/lib/image-builders/components.js +31 -21
  27. package/lib/image-builders/static.js +4 -3
  28. package/lib/providers/ami-root-device.lambda.js +12 -1
  29. package/lib/providers/codebuild.d.ts +12 -0
  30. package/lib/providers/codebuild.js +4 -4
  31. package/lib/providers/common.js +3 -3
  32. package/lib/providers/composite.js +18 -33
  33. package/lib/providers/ec2.js +5 -5
  34. package/lib/providers/ecs.d.ts +3 -1
  35. package/lib/providers/ecs.js +3 -3
  36. package/lib/providers/fargate.d.ts +14 -0
  37. package/lib/providers/fargate.js +4 -4
  38. package/lib/providers/lambda.d.ts +2 -0
  39. package/lib/providers/lambda.js +4 -4
  40. package/lib/runner.d.ts +24 -5
  41. package/lib/runner.js +46 -9
  42. package/lib/secrets.js +1 -1
  43. package/lib/utils.d.ts +13 -0
  44. package/lib/utils.js +47 -1
  45. package/lib/webhook-redelivery.d.ts +11 -0
  46. package/lib/webhook-redelivery.js +3 -1
  47. package/lib/webhook.d.ts +10 -0
  48. package/lib/webhook.js +3 -1
  49. package/package.json +1 -1
package/API.md CHANGED
@@ -797,7 +797,7 @@ Grant principal used to add permissions to the runner role.
797
797
 
798
798
  ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.image"></a>
799
799
 
800
- - *Deprecated:* use {@link CodeBuildRunnerProvider }
800
+ - *Deprecated:* This field is internal and should not be accessed directly.
801
801
 
802
802
  ```typescript
803
803
  public readonly image: RunnerImage;
@@ -1175,7 +1175,9 @@ Grant principal used to add permissions to the runner role.
1175
1175
 
1176
1176
  ---
1177
1177
 
1178
- ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.image"></a>
1178
+ ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.image"></a>
1179
+
1180
+ - *Deprecated:* This field is internal and should not be accessed directly.
1179
1181
 
1180
1182
  ```typescript
1181
1183
  public readonly image: RunnerImage;
@@ -2318,6 +2320,7 @@ Included components:
2318
2320
  | **Name** | **Type** | **Description** |
2319
2321
  | --- | --- | --- |
2320
2322
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
2323
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.capacityProvider">capacityProvider</a></code> | <code>aws-cdk-lib.aws_ecs.AsgCapacityProvider</code> | Capacity provider used to scale the cluster. |
2321
2324
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
2322
2325
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
2323
2326
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
@@ -2338,6 +2341,20 @@ The tree node.
2338
2341
 
2339
2342
  ---
2340
2343
 
2344
+ ##### `capacityProvider`<sup>Required</sup> <a name="capacityProvider" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.capacityProvider"></a>
2345
+
2346
+ ```typescript
2347
+ public readonly capacityProvider: AsgCapacityProvider;
2348
+ ```
2349
+
2350
+ - *Type:* aws-cdk-lib.aws_ecs.AsgCapacityProvider
2351
+
2352
+ Capacity provider used to scale the cluster.
2353
+
2354
+ Use capacityProvider.autoScalingGroup to access the auto scaling group. This can help set up custom scaling policies.
2355
+
2356
+ ---
2357
+
2341
2358
  ##### `connections`<sup>Required</sup> <a name="connections" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.connections"></a>
2342
2359
 
2343
2360
  ```typescript
@@ -2627,7 +2644,7 @@ The tree node.
2627
2644
 
2628
2645
  ##### ~~`assignPublicIp`~~<sup>Required</sup> <a name="assignPublicIp" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.assignPublicIp"></a>
2629
2646
 
2630
- - *Deprecated:* use {@link FargateRunnerProvider }
2647
+ - *Deprecated:* This field is internal and should not be accessed directly.
2631
2648
 
2632
2649
  ```typescript
2633
2650
  public readonly assignPublicIp: boolean;
@@ -2669,7 +2686,7 @@ The network connections associated with this resource.
2669
2686
 
2670
2687
  ##### ~~`container`~~<sup>Required</sup> <a name="container" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.container"></a>
2671
2688
 
2672
- - *Deprecated:* use {@link FargateRunnerProvider }
2689
+ - *Deprecated:* This field is internal and should not be accessed directly.
2673
2690
 
2674
2691
  ```typescript
2675
2692
  public readonly container: ContainerDefinition;
@@ -2697,7 +2714,7 @@ Grant principal used to add permissions to the runner role.
2697
2714
 
2698
2715
  ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.image"></a>
2699
2716
 
2700
- - *Deprecated:* use {@link FargateRunnerProvider }
2717
+ - *Deprecated:* This field is internal and should not be accessed directly.
2701
2718
 
2702
2719
  ```typescript
2703
2720
  public readonly image: RunnerImage;
@@ -2757,7 +2774,7 @@ List of step functions errors that should be retried.
2757
2774
 
2758
2775
  ##### ~~`spot`~~<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot"></a>
2759
2776
 
2760
- - *Deprecated:* use {@link FargateRunnerProvider }
2777
+ - *Deprecated:* This field is internal and should not be accessed directly.
2761
2778
 
2762
2779
  ```typescript
2763
2780
  public readonly spot: boolean;
@@ -2771,7 +2788,7 @@ Use spot pricing for Fargate tasks.
2771
2788
 
2772
2789
  ##### ~~`task`~~<sup>Required</sup> <a name="task" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.task"></a>
2773
2790
 
2774
- - *Deprecated:* use {@link FargateRunnerProvider }
2791
+ - *Deprecated:* This field is internal and should not be accessed directly.
2775
2792
 
2776
2793
  ```typescript
2777
2794
  public readonly task: FargateTaskDefinition;
@@ -2785,7 +2802,7 @@ Fargate task hosting the runner.
2785
2802
 
2786
2803
  ##### ~~`subnetSelection`~~<sup>Optional</sup> <a name="subnetSelection" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.subnetSelection"></a>
2787
2804
 
2788
- - *Deprecated:* use {@link FargateRunnerProvider }
2805
+ - *Deprecated:* This field is internal and should not be accessed directly.
2789
2806
 
2790
2807
  ```typescript
2791
2808
  public readonly subnetSelection: SubnetSelection;
@@ -2799,7 +2816,7 @@ Subnets used for hosting the runner task.
2799
2816
 
2800
2817
  ##### ~~`vpc`~~<sup>Optional</sup> <a name="vpc" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.vpc"></a>
2801
2818
 
2802
- - *Deprecated:* use {@link FargateRunnerProvider }
2819
+ - *Deprecated:* This field is internal and should not be accessed directly.
2803
2820
 
2804
2821
  ```typescript
2805
2822
  public readonly vpc: IVpc;
@@ -3090,7 +3107,9 @@ The tree node.
3090
3107
 
3091
3108
  ---
3092
3109
 
3093
- ##### `assignPublicIp`<sup>Required</sup> <a name="assignPublicIp" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.assignPublicIp"></a>
3110
+ ##### ~~`assignPublicIp`~~<sup>Required</sup> <a name="assignPublicIp" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.assignPublicIp"></a>
3111
+
3112
+ - *Deprecated:* This field is internal and should not be accessed directly.
3094
3113
 
3095
3114
  ```typescript
3096
3115
  public readonly assignPublicIp: boolean;
@@ -3126,7 +3145,9 @@ The network connections associated with this resource.
3126
3145
 
3127
3146
  ---
3128
3147
 
3129
- ##### `container`<sup>Required</sup> <a name="container" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.container"></a>
3148
+ ##### ~~`container`~~<sup>Required</sup> <a name="container" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.container"></a>
3149
+
3150
+ - *Deprecated:* This field is internal and should not be accessed directly.
3130
3151
 
3131
3152
  ```typescript
3132
3153
  public readonly container: ContainerDefinition;
@@ -3150,7 +3171,9 @@ Grant principal used to add permissions to the runner role.
3150
3171
 
3151
3172
  ---
3152
3173
 
3153
- ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.image"></a>
3174
+ ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.image"></a>
3175
+
3176
+ - *Deprecated:* This field is internal and should not be accessed directly.
3154
3177
 
3155
3178
  ```typescript
3156
3179
  public readonly image: RunnerImage;
@@ -3202,7 +3225,9 @@ List of step functions errors that should be retried.
3202
3225
 
3203
3226
  ---
3204
3227
 
3205
- ##### `spot`<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.spot"></a>
3228
+ ##### ~~`spot`~~<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.spot"></a>
3229
+
3230
+ - *Deprecated:* This field is internal and should not be accessed directly.
3206
3231
 
3207
3232
  ```typescript
3208
3233
  public readonly spot: boolean;
@@ -3214,7 +3239,9 @@ Use spot pricing for Fargate tasks.
3214
3239
 
3215
3240
  ---
3216
3241
 
3217
- ##### `task`<sup>Required</sup> <a name="task" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.task"></a>
3242
+ ##### ~~`task`~~<sup>Required</sup> <a name="task" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.task"></a>
3243
+
3244
+ - *Deprecated:* This field is internal and should not be accessed directly.
3218
3245
 
3219
3246
  ```typescript
3220
3247
  public readonly task: FargateTaskDefinition;
@@ -3226,7 +3253,9 @@ Fargate task hosting the runner.
3226
3253
 
3227
3254
  ---
3228
3255
 
3229
- ##### `subnetSelection`<sup>Optional</sup> <a name="subnetSelection" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.subnetSelection"></a>
3256
+ ##### ~~`subnetSelection`~~<sup>Optional</sup> <a name="subnetSelection" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.subnetSelection"></a>
3257
+
3258
+ - *Deprecated:* This field is internal and should not be accessed directly.
3230
3259
 
3231
3260
  ```typescript
3232
3261
  public readonly subnetSelection: SubnetSelection;
@@ -3238,7 +3267,9 @@ Subnets used for hosting the runner task.
3238
3267
 
3239
3268
  ---
3240
3269
 
3241
- ##### `vpc`<sup>Optional</sup> <a name="vpc" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.vpc"></a>
3270
+ ##### ~~`vpc`~~<sup>Optional</sup> <a name="vpc" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.vpc"></a>
3271
+
3272
+ - *Deprecated:* This field is internal and should not be accessed directly.
3242
3273
 
3243
3274
  ```typescript
3244
3275
  public readonly vpc: IVpc;
@@ -4162,7 +4193,7 @@ Grant principal used to add permissions to the runner role.
4162
4193
 
4163
4194
  ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.property.image"></a>
4164
4195
 
4165
- - *Deprecated:* use {@link LambdaRunnerProvider }
4196
+ - *Deprecated:* This field is internal and should not be accessed directly.
4166
4197
 
4167
4198
  ```typescript
4168
4199
  public readonly image: RunnerImage;
@@ -4530,7 +4561,9 @@ Grant principal used to add permissions to the runner role.
4530
4561
 
4531
4562
  ---
4532
4563
 
4533
- ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.image"></a>
4564
+ ##### ~~`image`~~<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.image"></a>
4565
+
4566
+ - *Deprecated:* This field is internal and should not be accessed directly.
4534
4567
 
4535
4568
  ```typescript
4536
4569
  public readonly image: RunnerImage;
@@ -5627,7 +5660,7 @@ const codeBuildRunnerImageBuilderProps: CodeBuildRunnerImageBuilderProps = { ...
5627
5660
  | **Name** | **Type** | **Description** |
5628
5661
  | --- | --- | --- |
5629
5662
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps.property.buildImage">buildImage</a></code> | <code>aws-cdk-lib.aws_codebuild.IBuildImage</code> | Build image to use in CodeBuild. |
5630
- | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. |
5663
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. See the {@link ComputeType} enum for the possible values. |
5631
5664
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps.property.timeout">timeout</a></code> | <code>aws-cdk-lib.Duration</code> | The number of minutes after which AWS CodeBuild stops the build if it's not complete. |
5632
5665
 
5633
5666
  ---
@@ -5658,9 +5691,17 @@ public readonly computeType: ComputeType;
5658
5691
  - *Type:* aws-cdk-lib.aws_codebuild.ComputeType
5659
5692
  - *Default:* {@link ComputeType#SMALL }
5660
5693
 
5661
- The type of compute to use for this build.
5694
+ The type of compute to use for this build. See the {@link ComputeType} enum for the possible values.
5662
5695
 
5663
- See the {@link ComputeType} enum for the possible values.
5696
+ The compute type determines CPU, memory, and disk space:
5697
+ - SMALL: 2 vCPU, 3 GB RAM, 64 GB disk
5698
+ - MEDIUM: 4 vCPU, 7 GB RAM, 128 GB disk
5699
+ - LARGE: 8 vCPU, 15 GB RAM, 128 GB disk
5700
+ - X2_LARGE: 72 vCPU, 145 GB RAM, 256 GB disk (Linux) or 824 GB disk (Windows)
5701
+
5702
+ Use a larger compute type when you need more disk space for building larger Docker images.
5703
+
5704
+ For more details, see https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5664
5705
 
5665
5706
  ---
5666
5707
 
@@ -5697,7 +5738,7 @@ const codeBuildRunnerProviderProps: CodeBuildRunnerProviderProps = { ... }
5697
5738
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.defaultLabels">defaultLabels</a></code> | <code>boolean</code> | Add default labels based on OS and architecture of the runner. |
5698
5739
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
5699
5740
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
5700
- | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. |
5741
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. See the {@link ComputeType} enum for the possible values. |
5701
5742
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.dockerInDocker">dockerInDocker</a></code> | <code>boolean</code> | Support building and running Docker images by enabling Docker-in-Docker (dind) and the required CodeBuild privileged mode. |
5702
5743
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.group">group</a></code> | <code>string</code> | GitHub Actions runner group name. |
5703
5744
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build Docker images containing GitHub Runner and all requirements. |
@@ -5764,9 +5805,17 @@ public readonly computeType: ComputeType;
5764
5805
  - *Type:* aws-cdk-lib.aws_codebuild.ComputeType
5765
5806
  - *Default:* {@link ComputeType#SMALL }
5766
5807
 
5767
- The type of compute to use for this build.
5808
+ The type of compute to use for this build. See the {@link ComputeType} enum for the possible values.
5768
5809
 
5769
- See the {@link ComputeType} enum for the possible values.
5810
+ The compute type determines CPU, memory, and disk space:
5811
+ - SMALL: 2 vCPU, 3 GB RAM, 64 GB disk
5812
+ - MEDIUM: 4 vCPU, 7 GB RAM, 128 GB disk
5813
+ - LARGE: 8 vCPU, 15 GB RAM, 128 GB disk
5814
+ - X2_LARGE: 72 vCPU, 145 GB RAM, 256 GB disk (Linux) or 824 GB disk (Windows)
5815
+
5816
+ Use a larger compute type when you need more disk space for building larger Docker images.
5817
+
5818
+ For more details, see https://docs.aws.amazon.com/codebuild/latest/userguide/build-env-ref-compute-types.html#environment.types
5770
5819
 
5771
5820
  ---
5772
5821
 
@@ -7217,8 +7266,8 @@ const gitHubRunnersProps: GitHubRunnersProps = { ... }
7217
7266
 
7218
7267
  | **Name** | **Type** | **Description** |
7219
7268
  | --- | --- | --- |
7220
- | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.allowPublicSubnet">allowPublicSubnet</a></code> | <code>boolean</code> | Allow management functions to run in public subnets. |
7221
- | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.extraCertificates">extraCertificates</a></code> | <code>string</code> | Path to a directory containing a file named certs.pem containing any additional certificates required to trust GitHub Enterprise Server. Use this when GitHub Enterprise Server certificates are self-signed. |
7269
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.allowPublicSubnet">allowPublicSubnet</a></code> | <code>boolean</code> | Allow management functions to run in public subnets. Lambda Functions in a public subnet can NOT access the internet. |
7270
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.extraCertificates">extraCertificates</a></code> | <code>string</code> | Path to a certificate file (.pem or .crt) or a directory containing certificate files (.pem or .crt) required to trust GitHub Enterprise Server. Use this when GitHub Enterprise Server certificates are self-signed. |
7222
7271
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.idleTimeout">idleTimeout</a></code> | <code>aws-cdk-lib.Duration</code> | Time to wait before stopping a runner that remains idle. |
7223
7272
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.logOptions">logOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.LogOptions">LogOptions</a></code> | Logging options for the state machine that manages the runners. |
7224
7273
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.providers">providers</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a> \| <a href="#@cloudsnorkel/cdk-github-runners.ICompositeProvider">ICompositeProvider</a>[]</code> | List of runner providers to use. |
@@ -7244,9 +7293,9 @@ public readonly allowPublicSubnet: boolean;
7244
7293
  - *Type:* boolean
7245
7294
  - *Default:* false
7246
7295
 
7247
- Allow management functions to run in public subnets.
7296
+ Allow management functions to run in public subnets. Lambda Functions in a public subnet can NOT access the internet.
7248
7297
 
7249
- Lambda Functions in a public subnet can NOT access the internet.
7298
+ **Note:** This only affects management functions that interact with GitHub. Lambda functions that help with runner image building and don't interact with GitHub are NOT affected by this setting.
7250
7299
 
7251
7300
  ---
7252
7301
 
@@ -7258,13 +7307,16 @@ public readonly extraCertificates: string;
7258
7307
 
7259
7308
  - *Type:* string
7260
7309
 
7261
- Path to a directory containing a file named certs.pem containing any additional certificates required to trust GitHub Enterprise Server. Use this when GitHub Enterprise Server certificates are self-signed.
7310
+ Path to a certificate file (.pem or .crt) or a directory containing certificate files (.pem or .crt) required to trust GitHub Enterprise Server. Use this when GitHub Enterprise Server certificates are self-signed.
7262
7311
 
7263
- You may also want to use custom images for your runner providers that contain the same certificates. See {@link CodeBuildImageBuilder.addCertificates }.
7312
+ If a directory is provided, all .pem and .crt files in that directory will be used. The certificates will be concatenated into a single file for use by Node.js.
7313
+
7314
+ You may also want to use custom images for your runner providers that contain the same certificates. See {@link RunnerImageComponent.extraCertificates }.
7264
7315
 
7265
7316
  ```typescript
7317
+ const selfSignedCertificates = 'certs/ghes.pem'; // or 'path-to-my-extra-certs-folder' for a directory
7266
7318
  const imageBuilder = CodeBuildRunnerProvider.imageBuilder(this, 'Image Builder with Certs');
7267
- imageBuilder.addComponent(RunnerImageComponent.extraCertificates('path-to-my-extra-certs-folder/certs.pem', 'private-ca');
7319
+ imageBuilder.addComponent(RunnerImageComponent.extraCertificates(selfSignedCertificates, 'private-ca'));
7268
7320
 
7269
7321
  const provider = new CodeBuildRunnerProvider(this, 'CodeBuild', {
7270
7322
  imageBuilder: imageBuilder,
@@ -7275,7 +7327,7 @@ new GitHubRunners(
7275
7327
  'runners',
7276
7328
  {
7277
7329
  providers: [provider],
7278
- extraCertificates: 'path-to-my-extra-certs-folder',
7330
+ extraCertificates: selfSignedCertificates,
7279
7331
  }
7280
7332
  );
7281
7333
  ```
@@ -7398,6 +7450,8 @@ Security group attached to all management functions.
7398
7450
 
7399
7451
  Use this with to provide access to GitHub Enterprise Server hosted inside a VPC.
7400
7452
 
7453
+ **Note:** This only affects management functions that interact with GitHub. Lambda functions that help with runner image building and don't interact with GitHub are NOT affected by this setting.
7454
+
7401
7455
  ---
7402
7456
 
7403
7457
  ##### `securityGroups`<sup>Optional</sup> <a name="securityGroups" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.securityGroups"></a>
@@ -7410,7 +7464,11 @@ public readonly securityGroups: ISecurityGroup[];
7410
7464
 
7411
7465
  Security groups attached to all management functions.
7412
7466
 
7413
- Use this with to provide access to GitHub Enterprise Server hosted inside a VPC.
7467
+ Use this to provide outbound access from management functions to GitHub Enterprise Server hosted inside a VPC.
7468
+
7469
+ **Note:** This only affects management functions that interact with GitHub. Lambda functions that help with runner image building and don't interact with GitHub are NOT affected by this setting.
7470
+
7471
+ **Note:** Defining inbound rules on this security group does nothing. This security group only controls outbound access FROM the management functions. To limit access TO the webhook or setup functions, use {@link webhookAccess} and {@link setupAccess} instead.
7414
7472
 
7415
7473
  ---
7416
7474
 
@@ -7454,6 +7512,8 @@ public readonly vpc: IVpc;
7454
7512
 
7455
7513
  VPC used for all management functions. Use this with GitHub Enterprise Server hosted that's inaccessible from outside the VPC.
7456
7514
 
7515
+ **Note:** This only affects management functions that interact with GitHub. Lambda functions that help with runner image building and don't interact with GitHub are NOT affected by this setting and will run outside the VPC.
7516
+
7457
7517
  Make sure the selected VPC and subnets have access to the following with either NAT Gateway or VPC Endpoints:
7458
7518
  * GitHub Enterprise Server
7459
7519
  * Secrets Manager
@@ -7477,6 +7537,8 @@ VPC subnets used for all management functions.
7477
7537
 
7478
7538
  Use this with GitHub Enterprise Server hosted that's inaccessible from outside the VPC.
7479
7539
 
7540
+ **Note:** This only affects management functions that interact with GitHub. Lambda functions that help with runner image building and don't interact with GitHub are NOT affected by this setting.
7541
+
7480
7542
  ---
7481
7543
 
7482
7544
  ##### `webhookAccess`<sup>Optional</sup> <a name="webhookAccess" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.webhookAccess"></a>
@@ -8428,8 +8490,8 @@ const runnerImageBuilderProps: RunnerImageBuilderProps = { ... }
8428
8490
  | --- | --- | --- |
8429
8491
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.architecture">architecture</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a></code> | Image architecture. |
8430
8492
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.awsImageBuilderOptions">awsImageBuilderOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.AwsImageBuilderRunnerImageBuilderProps">AwsImageBuilderRunnerImageBuilderProps</a></code> | Options specific to AWS Image Builder. |
8431
- | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseAmi">baseAmi</a></code> | <code>string</code> | Base AMI from which runner AMIs will be built. |
8432
- | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseDockerImage">baseDockerImage</a></code> | <code>string</code> | Base image from which Docker runner images will be built. |
8493
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseAmi">baseAmi</a></code> | <code>string \| <a href="#@cloudsnorkel/cdk-github-runners.BaseImage">BaseImage</a></code> | Base AMI from which runner AMIs will be built. |
8494
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseDockerImage">baseDockerImage</a></code> | <code>string \| <a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage">BaseContainerImage</a></code> | Base image from which Docker runner images will be built. |
8433
8495
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.builderType">builderType</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderType">RunnerImageBuilderType</a></code> | *No description.* |
8434
8496
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.codeBuildOptions">codeBuildOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps">CodeBuildRunnerImageBuilderProps</a></code> | Options specific to CodeBuild image builder. |
8435
8497
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.components">components</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImageComponent">RunnerImageComponent</a>[]</code> | Components to install on the image. |
@@ -8476,29 +8538,47 @@ Only used when builderType is RunnerImageBuilderType.AWS_IMAGE_BUILDER.
8476
8538
  ##### `baseAmi`<sup>Optional</sup> <a name="baseAmi" id="@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseAmi"></a>
8477
8539
 
8478
8540
  ```typescript
8479
- public readonly baseAmi: string;
8541
+ public readonly baseAmi: string | BaseImage;
8480
8542
  ```
8481
8543
 
8482
- - *Type:* string
8544
+ - *Type:* string | <a href="#@cloudsnorkel/cdk-github-runners.BaseImage">BaseImage</a>
8483
8545
  - *Default:* latest Ubuntu 22.04 AMI for Os.LINUX_UBUNTU and Os.LINUX_UBUNTU_2204, Ubuntu 24.04 AMI for Os.LINUX_UBUNTU_2404, latest Amazon Linux 2 AMI for Os.LINUX_AMAZON_2, latest Windows Server 2022 AMI for Os.WINDOWS
8484
8546
 
8485
8547
  Base AMI from which runner AMIs will be built.
8486
8548
 
8487
- This can be an actual AMI or an AWS Image Builder ARN that points to the latest AMI. For example `arn:aws:imagebuilder:us-east-1:aws:image/ubuntu-server-22-lts-x86/x.x.x` would always use the latest version of Ubuntu 22.04 in each build. If you want a specific version, you can replace `x.x.x` with that version.
8549
+ This can be:
8550
+ - A string (AMI ID, Image Builder ARN, SSM parameter reference, or Marketplace product ID) - deprecated, use BaseImage static factory methods instead
8551
+ - A BaseImage instance created using static factory methods:
8552
+ - `BaseImage.fromAmiId('ami-12345')` - Use an AMI ID
8553
+ - `BaseImage.fromString('arn:aws:imagebuilder:...')` - Use any string (ARN, AMI ID, etc.)
8554
+ - `BaseImage.fromSsmParameter(parameter)` - Use an SSM parameter object
8555
+ - `BaseImage.fromSsmParameterName('/aws/service/ami/...')` - Use an SSM parameter by name
8556
+ - `BaseImage.fromMarketplaceProductId('product-id')` - Use a Marketplace product ID
8557
+ - `BaseImage.fromImageBuilder(scope, 'ubuntu-server-22-lts-x86')` - Use an AWS-provided Image Builder image
8558
+
8559
+ For example `BaseImage.fromImageBuilder(scope, 'ubuntu-server-22-lts-x86')` would always use the latest version of Ubuntu 22.04 in each build. If you want a specific version, you can pass the version as the third parameter.
8488
8560
 
8489
8561
  ---
8490
8562
 
8491
8563
  ##### `baseDockerImage`<sup>Optional</sup> <a name="baseDockerImage" id="@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps.property.baseDockerImage"></a>
8492
8564
 
8493
8565
  ```typescript
8494
- public readonly baseDockerImage: string;
8566
+ public readonly baseDockerImage: string | BaseContainerImage;
8495
8567
  ```
8496
8568
 
8497
- - *Type:* string
8569
+ - *Type:* string | <a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage">BaseContainerImage</a>
8498
8570
  - *Default:* public.ecr.aws/lts/ubuntu:22.04 for Os.LINUX_UBUNTU and Os.LINUX_UBUNTU_2204, public.ecr.aws/lts/ubuntu:24.04 for Os.LINUX_UBUNTU_2404, public.ecr.aws/amazonlinux/amazonlinux:2 for Os.LINUX_AMAZON_2, mcr.microsoft.com/windows/servercore:ltsc2019-amd64 for Os.WINDOWS
8499
8571
 
8500
8572
  Base image from which Docker runner images will be built.
8501
8573
 
8574
+ This can be:
8575
+ - A string (ECR/ECR public image URI, DockerHub image, or Image Builder ARN) - deprecated, use BaseContainerImage static factory methods instead
8576
+ - A BaseContainerImage instance created using static factory methods:
8577
+ - `BaseContainerImage.fromDockerHub('ubuntu', '22.04')` - Use DockerHub
8578
+ - `BaseContainerImage.fromEcr(repo, 'latest')` - Use ECR (automatically grants permissions with CodeBuild)
8579
+ - `BaseContainerImage.fromEcrPublic('lts', 'ubuntu', '22.04')` - Use ECR Public
8580
+ - `BaseContainerImage.fromString('public.ecr.aws/lts/ubuntu:22.04')` - Use any string
8581
+
8502
8582
  When using private images from a different account or not on ECR, you may need to include additional setup commands with {@link dockerSetupCommands}.
8503
8583
 
8504
8584
  ---
@@ -9187,6 +9267,384 @@ X86_64.
9187
9267
 
9188
9268
  ---
9189
9269
 
9270
+ ### BaseContainerImage <a name="BaseContainerImage" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage"></a>
9271
+
9272
+ Represents a base container image that is used to start from in EC2 Image Builder container builds.
9273
+
9274
+ This class is adapted from AWS CDK's BaseContainerImage class to support both string and object inputs.
9275
+
9276
+ #### Initializers <a name="Initializers" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.Initializer"></a>
9277
+
9278
+ ```typescript
9279
+ import { BaseContainerImage } from '@cloudsnorkel/cdk-github-runners'
9280
+
9281
+ new BaseContainerImage(image: string, ecrRepository?: IRepository)
9282
+ ```
9283
+
9284
+ | **Name** | **Type** | **Description** |
9285
+ | --- | --- | --- |
9286
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.Initializer.parameter.image">image</a></code> | <code>string</code> | *No description.* |
9287
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.Initializer.parameter.ecrRepository">ecrRepository</a></code> | <code>aws-cdk-lib.aws_ecr.IRepository</code> | *No description.* |
9288
+
9289
+ ---
9290
+
9291
+ ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.Initializer.parameter.image"></a>
9292
+
9293
+ - *Type:* string
9294
+
9295
+ ---
9296
+
9297
+ ##### `ecrRepository`<sup>Optional</sup> <a name="ecrRepository" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.Initializer.parameter.ecrRepository"></a>
9298
+
9299
+ - *Type:* aws-cdk-lib.aws_ecr.IRepository
9300
+
9301
+ ---
9302
+
9303
+
9304
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
9305
+
9306
+ | **Name** | **Description** |
9307
+ | --- | --- |
9308
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromDockerHub">fromDockerHub</a></code> | The DockerHub image to use as the base image in a container recipe. |
9309
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcr">fromEcr</a></code> | The ECR container image to use as the base image in a container recipe. |
9310
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcrPublic">fromEcrPublic</a></code> | The ECR public container image to use as the base image in a container recipe. |
9311
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromString">fromString</a></code> | The string value of the base image to use in a container recipe. |
9312
+
9313
+ ---
9314
+
9315
+ ##### `fromDockerHub` <a name="fromDockerHub" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromDockerHub"></a>
9316
+
9317
+ ```typescript
9318
+ import { BaseContainerImage } from '@cloudsnorkel/cdk-github-runners'
9319
+
9320
+ BaseContainerImage.fromDockerHub(repository: string, tag: string)
9321
+ ```
9322
+
9323
+ The DockerHub image to use as the base image in a container recipe.
9324
+
9325
+ ###### `repository`<sup>Required</sup> <a name="repository" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromDockerHub.parameter.repository"></a>
9326
+
9327
+ - *Type:* string
9328
+
9329
+ The DockerHub repository where the base image resides in.
9330
+
9331
+ ---
9332
+
9333
+ ###### `tag`<sup>Required</sup> <a name="tag" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromDockerHub.parameter.tag"></a>
9334
+
9335
+ - *Type:* string
9336
+
9337
+ The tag of the base image in the DockerHub repository.
9338
+
9339
+ ---
9340
+
9341
+ ##### `fromEcr` <a name="fromEcr" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcr"></a>
9342
+
9343
+ ```typescript
9344
+ import { BaseContainerImage } from '@cloudsnorkel/cdk-github-runners'
9345
+
9346
+ BaseContainerImage.fromEcr(repository: IRepository, tag: string)
9347
+ ```
9348
+
9349
+ The ECR container image to use as the base image in a container recipe.
9350
+
9351
+ ###### `repository`<sup>Required</sup> <a name="repository" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcr.parameter.repository"></a>
9352
+
9353
+ - *Type:* aws-cdk-lib.aws_ecr.IRepository
9354
+
9355
+ The ECR repository where the base image resides in.
9356
+
9357
+ ---
9358
+
9359
+ ###### `tag`<sup>Required</sup> <a name="tag" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcr.parameter.tag"></a>
9360
+
9361
+ - *Type:* string
9362
+
9363
+ The tag of the base image in the ECR repository.
9364
+
9365
+ ---
9366
+
9367
+ ##### `fromEcrPublic` <a name="fromEcrPublic" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcrPublic"></a>
9368
+
9369
+ ```typescript
9370
+ import { BaseContainerImage } from '@cloudsnorkel/cdk-github-runners'
9371
+
9372
+ BaseContainerImage.fromEcrPublic(registryAlias: string, repositoryName: string, tag: string)
9373
+ ```
9374
+
9375
+ The ECR public container image to use as the base image in a container recipe.
9376
+
9377
+ ###### `registryAlias`<sup>Required</sup> <a name="registryAlias" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcrPublic.parameter.registryAlias"></a>
9378
+
9379
+ - *Type:* string
9380
+
9381
+ The alias of the ECR public registry where the base image resides in.
9382
+
9383
+ ---
9384
+
9385
+ ###### `repositoryName`<sup>Required</sup> <a name="repositoryName" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcrPublic.parameter.repositoryName"></a>
9386
+
9387
+ - *Type:* string
9388
+
9389
+ The name of the ECR public repository, where the base image resides in.
9390
+
9391
+ ---
9392
+
9393
+ ###### `tag`<sup>Required</sup> <a name="tag" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromEcrPublic.parameter.tag"></a>
9394
+
9395
+ - *Type:* string
9396
+
9397
+ The tag of the base image in the ECR public repository.
9398
+
9399
+ ---
9400
+
9401
+ ##### `fromString` <a name="fromString" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromString"></a>
9402
+
9403
+ ```typescript
9404
+ import { BaseContainerImage } from '@cloudsnorkel/cdk-github-runners'
9405
+
9406
+ BaseContainerImage.fromString(baseContainerImageString: string)
9407
+ ```
9408
+
9409
+ The string value of the base image to use in a container recipe.
9410
+
9411
+ This can be an EC2 Image Builder image ARN,
9412
+ an ECR or ECR public image, or a container URI sourced from a third-party container registry such as DockerHub.
9413
+
9414
+ ###### `baseContainerImageString`<sup>Required</sup> <a name="baseContainerImageString" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.fromString.parameter.baseContainerImageString"></a>
9415
+
9416
+ - *Type:* string
9417
+
9418
+ The base image as a direct string value.
9419
+
9420
+ ---
9421
+
9422
+ #### Properties <a name="Properties" id="Properties"></a>
9423
+
9424
+ | **Name** | **Type** | **Description** |
9425
+ | --- | --- | --- |
9426
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.property.image">image</a></code> | <code>string</code> | The rendered base image to use. |
9427
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseContainerImage.property.ecrRepository">ecrRepository</a></code> | <code>aws-cdk-lib.aws_ecr.IRepository</code> | The ECR repository if this image was created from an ECR repository. |
9428
+
9429
+ ---
9430
+
9431
+ ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.property.image"></a>
9432
+
9433
+ ```typescript
9434
+ public readonly image: string;
9435
+ ```
9436
+
9437
+ - *Type:* string
9438
+
9439
+ The rendered base image to use.
9440
+
9441
+ ---
9442
+
9443
+ ##### `ecrRepository`<sup>Optional</sup> <a name="ecrRepository" id="@cloudsnorkel/cdk-github-runners.BaseContainerImage.property.ecrRepository"></a>
9444
+
9445
+ ```typescript
9446
+ public readonly ecrRepository: IRepository;
9447
+ ```
9448
+
9449
+ - *Type:* aws-cdk-lib.aws_ecr.IRepository
9450
+
9451
+ The ECR repository if this image was created from an ECR repository.
9452
+
9453
+ This allows automatic permission granting for CodeBuild.
9454
+
9455
+ ---
9456
+
9457
+
9458
+ ### BaseImage <a name="BaseImage" id="@cloudsnorkel/cdk-github-runners.BaseImage"></a>
9459
+
9460
+ Represents a base image that is used to start from in EC2 Image Builder image builds.
9461
+
9462
+ This class is adapted from AWS CDK's BaseImage class to support both string and object inputs.
9463
+
9464
+ #### Initializers <a name="Initializers" id="@cloudsnorkel/cdk-github-runners.BaseImage.Initializer"></a>
9465
+
9466
+ ```typescript
9467
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9468
+
9469
+ new BaseImage(image: string)
9470
+ ```
9471
+
9472
+ | **Name** | **Type** | **Description** |
9473
+ | --- | --- | --- |
9474
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.Initializer.parameter.image">image</a></code> | <code>string</code> | *No description.* |
9475
+
9476
+ ---
9477
+
9478
+ ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.BaseImage.Initializer.parameter.image"></a>
9479
+
9480
+ - *Type:* string
9481
+
9482
+ ---
9483
+
9484
+
9485
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
9486
+
9487
+ | **Name** | **Description** |
9488
+ | --- | --- |
9489
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromAmiId">fromAmiId</a></code> | The AMI ID to use as a base image in an image recipe. |
9490
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromImageBuilder">fromImageBuilder</a></code> | An AWS-provided EC2 Image Builder image to use as a base image in an image recipe. |
9491
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromMarketplaceProductId">fromMarketplaceProductId</a></code> | The marketplace product ID for an AMI product to use as the base image in an image recipe. |
9492
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameter">fromSsmParameter</a></code> | The SSM parameter to use as the base image in an image recipe. |
9493
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameterName">fromSsmParameterName</a></code> | The parameter name for the SSM parameter to use as the base image in an image recipe. |
9494
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.fromString">fromString</a></code> | The direct string value of the base image to use in an image recipe. |
9495
+
9496
+ ---
9497
+
9498
+ ##### `fromAmiId` <a name="fromAmiId" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromAmiId"></a>
9499
+
9500
+ ```typescript
9501
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9502
+
9503
+ BaseImage.fromAmiId(amiId: string)
9504
+ ```
9505
+
9506
+ The AMI ID to use as a base image in an image recipe.
9507
+
9508
+ ###### `amiId`<sup>Required</sup> <a name="amiId" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromAmiId.parameter.amiId"></a>
9509
+
9510
+ - *Type:* string
9511
+
9512
+ The AMI ID to use as the base image.
9513
+
9514
+ ---
9515
+
9516
+ ##### `fromImageBuilder` <a name="fromImageBuilder" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromImageBuilder"></a>
9517
+
9518
+ ```typescript
9519
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9520
+
9521
+ BaseImage.fromImageBuilder(scope: Construct, resourceName: string, version?: string)
9522
+ ```
9523
+
9524
+ An AWS-provided EC2 Image Builder image to use as a base image in an image recipe.
9525
+
9526
+ This constructs an Image Builder ARN for AWS-provided images like `ubuntu-server-22-lts-x86/x.x.x`.
9527
+
9528
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromImageBuilder.parameter.scope"></a>
9529
+
9530
+ - *Type:* constructs.Construct
9531
+
9532
+ The construct scope (used to determine the stack and region).
9533
+
9534
+ ---
9535
+
9536
+ ###### `resourceName`<sup>Required</sup> <a name="resourceName" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromImageBuilder.parameter.resourceName"></a>
9537
+
9538
+ - *Type:* string
9539
+
9540
+ The Image Builder resource name pattern (e.g., `ubuntu-server-22-lts-x86` or `ubuntu-server-22-lts-${arch}`).
9541
+
9542
+ ---
9543
+
9544
+ ###### `version`<sup>Optional</sup> <a name="version" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromImageBuilder.parameter.version"></a>
9545
+
9546
+ - *Type:* string
9547
+
9548
+ The version pattern (defaults to `x.x.x` to use the latest version).
9549
+
9550
+ ---
9551
+
9552
+ ##### `fromMarketplaceProductId` <a name="fromMarketplaceProductId" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromMarketplaceProductId"></a>
9553
+
9554
+ ```typescript
9555
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9556
+
9557
+ BaseImage.fromMarketplaceProductId(productId: string)
9558
+ ```
9559
+
9560
+ The marketplace product ID for an AMI product to use as the base image in an image recipe.
9561
+
9562
+ ###### `productId`<sup>Required</sup> <a name="productId" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromMarketplaceProductId.parameter.productId"></a>
9563
+
9564
+ - *Type:* string
9565
+
9566
+ The Marketplace AMI product ID to use as the base image.
9567
+
9568
+ ---
9569
+
9570
+ ##### `fromSsmParameter` <a name="fromSsmParameter" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameter"></a>
9571
+
9572
+ ```typescript
9573
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9574
+
9575
+ BaseImage.fromSsmParameter(parameter: IParameter)
9576
+ ```
9577
+
9578
+ The SSM parameter to use as the base image in an image recipe.
9579
+
9580
+ ###### `parameter`<sup>Required</sup> <a name="parameter" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameter.parameter.parameter"></a>
9581
+
9582
+ - *Type:* aws-cdk-lib.aws_ssm.IParameter
9583
+
9584
+ The SSM parameter to use as the base image.
9585
+
9586
+ ---
9587
+
9588
+ ##### `fromSsmParameterName` <a name="fromSsmParameterName" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameterName"></a>
9589
+
9590
+ ```typescript
9591
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9592
+
9593
+ BaseImage.fromSsmParameterName(parameterName: string)
9594
+ ```
9595
+
9596
+ The parameter name for the SSM parameter to use as the base image in an image recipe.
9597
+
9598
+ ###### `parameterName`<sup>Required</sup> <a name="parameterName" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromSsmParameterName.parameter.parameterName"></a>
9599
+
9600
+ - *Type:* string
9601
+
9602
+ The name of the SSM parameter to use as the base image.
9603
+
9604
+ ---
9605
+
9606
+ ##### `fromString` <a name="fromString" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromString"></a>
9607
+
9608
+ ```typescript
9609
+ import { BaseImage } from '@cloudsnorkel/cdk-github-runners'
9610
+
9611
+ BaseImage.fromString(baseImageString: string)
9612
+ ```
9613
+
9614
+ The direct string value of the base image to use in an image recipe.
9615
+
9616
+ This can be an EC2 Image Builder image ARN,
9617
+ an SSM parameter, an AWS Marketplace product ID, or an AMI ID.
9618
+
9619
+ ###### `baseImageString`<sup>Required</sup> <a name="baseImageString" id="@cloudsnorkel/cdk-github-runners.BaseImage.fromString.parameter.baseImageString"></a>
9620
+
9621
+ - *Type:* string
9622
+
9623
+ The base image as a direct string value.
9624
+
9625
+ ---
9626
+
9627
+ #### Properties <a name="Properties" id="Properties"></a>
9628
+
9629
+ | **Name** | **Type** | **Description** |
9630
+ | --- | --- | --- |
9631
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.BaseImage.property.image">image</a></code> | <code>string</code> | The rendered base image to use. |
9632
+
9633
+ ---
9634
+
9635
+ ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.BaseImage.property.image"></a>
9636
+
9637
+ ```typescript
9638
+ public readonly image: string;
9639
+ ```
9640
+
9641
+ - *Type:* string
9642
+
9643
+ The rendered base image to use.
9644
+
9645
+ ---
9646
+
9647
+
9190
9648
  ### CompositeProvider <a name="CompositeProvider" id="@cloudsnorkel/cdk-github-runners.CompositeProvider"></a>
9191
9649
 
9192
9650
  A composite runner provider that implements fallback and distribution strategies.
@@ -10090,7 +10548,7 @@ This can be used to support GitHub Enterprise Server with self-signed certificat
10090
10548
 
10091
10549
  - *Type:* string
10092
10550
 
10093
- path to certificate file in PEM format.
10551
+ path to certificate file in PEM format, or a directory containing certificate files (.pem or .crt).
10094
10552
 
10095
10553
  ---
10096
10554