@cloudsnorkel/cdk-github-runners 0.9.7 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/.gitattributes +2 -0
  2. package/.jsii +275 -303
  3. package/API.md +215 -39
  4. package/README.md +8 -7
  5. package/assets/delete-runner.lambda/index.js +2983 -5504
  6. package/assets/docker-images/lambda/linux-arm64/runner.sh +1 -1
  7. package/assets/docker-images/lambda/linux-x64/runner.sh +1 -1
  8. package/assets/idle-runner-repear.lambda/index.js +20062 -0
  9. package/assets/setup.lambda/index.html +14 -14
  10. package/assets/setup.lambda/index.js +102 -153
  11. package/assets/status.lambda/index.js +2925 -5418
  12. package/assets/token-retriever.lambda/index.js +3000 -5497
  13. package/assets/webhook-handler.lambda/index.js +1 -1
  14. package/lib/access.d.ts +11 -1
  15. package/lib/access.js +56 -6
  16. package/lib/delete-runner.lambda.js +7 -35
  17. package/lib/idle-runner-repear-function.d.ts +13 -0
  18. package/lib/idle-runner-repear-function.js +23 -0
  19. package/lib/idle-runner-repear.lambda.d.ts +1 -0
  20. package/lib/idle-runner-repear.lambda.js +67 -0
  21. package/lib/image-builders/api.js +1 -1
  22. package/lib/image-builders/aws-image-builder/builder.js +1 -1
  23. package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +1 -3
  24. package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
  25. package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
  26. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
  27. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
  28. package/lib/image-builders/aws-image-builder/filter-failed-builds.lambda.js +1 -2
  29. package/lib/image-builders/aws-image-builder/reaper.lambda.js +1 -3
  30. package/lib/image-builders/aws-image-builder/versioner.lambda.js +1 -3
  31. package/lib/image-builders/codebuild-deprecated.js +1 -1
  32. package/lib/image-builders/components.js +1 -1
  33. package/lib/image-builders/static.js +1 -1
  34. package/lib/{github.d.ts → lambda-github.d.ts} +14 -0
  35. package/lib/lambda-github.js +69 -0
  36. package/lib/lambda-helpers.d.ts +0 -1
  37. package/lib/lambda-helpers.js +1 -2
  38. package/lib/providers/build-image.lambda.js +1 -3
  39. package/lib/providers/codebuild.d.ts +1 -0
  40. package/lib/providers/codebuild.js +9 -6
  41. package/lib/providers/common.d.ts +8 -8
  42. package/lib/providers/common.js +5 -16
  43. package/lib/providers/ec2.d.ts +1 -0
  44. package/lib/providers/ec2.js +11 -12
  45. package/lib/providers/ecs.d.ts +1 -0
  46. package/lib/providers/ecs.js +7 -3
  47. package/lib/providers/fargate.d.ts +1 -0
  48. package/lib/providers/fargate.js +10 -6
  49. package/lib/providers/lambda.d.ts +1 -0
  50. package/lib/providers/lambda.js +10 -4
  51. package/lib/providers/update-lambda.lambda.js +1 -2
  52. package/lib/runner.d.ts +24 -3
  53. package/lib/runner.js +64 -21
  54. package/lib/secrets.js +1 -1
  55. package/lib/setup.lambda.js +3 -4
  56. package/lib/status.lambda.js +4 -6
  57. package/lib/token-retriever.lambda.js +25 -11
  58. package/lib/webhook-handler.lambda.js +2 -3
  59. package/package.json +11 -9
  60. package/lib/github.js +0 -50
package/API.md CHANGED
@@ -701,6 +701,7 @@ Included components:
701
701
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
702
702
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
703
703
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.project">project</a></code> | <code>aws-cdk-lib.aws_codebuild.Project</code> | CodeBuild project hosting the runner. |
704
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
704
705
 
705
706
  ---
706
707
 
@@ -806,6 +807,20 @@ CodeBuild project hosting the runner.
806
807
 
807
808
  ---
808
809
 
810
+ ##### ~~`retryableErrors`~~<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.retryableErrors"></a>
811
+
812
+ - *Deprecated:* use {@link CodeBuildRunnerProvider }
813
+
814
+ ```typescript
815
+ public readonly retryableErrors: string[];
816
+ ```
817
+
818
+ - *Type:* string[]
819
+
820
+ List of step functions errors that should be retried.
821
+
822
+ ---
823
+
809
824
  #### Constants <a name="Constants" id="Constants"></a>
810
825
 
811
826
  | **Name** | **Type** | **Description** |
@@ -1052,6 +1067,7 @@ Included components:
1052
1067
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
1053
1068
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
1054
1069
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.project">project</a></code> | <code>aws-cdk-lib.aws_codebuild.Project</code> | CodeBuild project hosting the runner. |
1070
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
1055
1071
 
1056
1072
  ---
1057
1073
 
@@ -1143,6 +1159,18 @@ CodeBuild project hosting the runner.
1143
1159
 
1144
1160
  ---
1145
1161
 
1162
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider.property.retryableErrors"></a>
1163
+
1164
+ ```typescript
1165
+ public readonly retryableErrors: string[];
1166
+ ```
1167
+
1168
+ - *Type:* string[]
1169
+
1170
+ List of step functions errors that should be retried.
1171
+
1172
+ ---
1173
+
1146
1174
  #### Constants <a name="Constants" id="Constants"></a>
1147
1175
 
1148
1176
  | **Name** | **Type** | **Description** |
@@ -1606,6 +1634,7 @@ Included components:
1606
1634
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2Runner.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
1607
1635
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2Runner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
1608
1636
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2Runner.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
1637
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2Runner.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
1609
1638
 
1610
1639
  ---
1611
1640
 
@@ -1681,6 +1710,20 @@ Note that this is not the job log, but the runner itself. It will not contain ou
1681
1710
 
1682
1711
  ---
1683
1712
 
1713
+ ##### ~~`retryableErrors`~~<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.Ec2Runner.property.retryableErrors"></a>
1714
+
1715
+ - *Deprecated:* use {@link Ec2RunnerProvider }
1716
+
1717
+ ```typescript
1718
+ public readonly retryableErrors: string[];
1719
+ ```
1720
+
1721
+ - *Type:* string[]
1722
+
1723
+ List of step functions errors that should be retried.
1724
+
1725
+ ---
1726
+
1684
1727
 
1685
1728
  ### Ec2RunnerProvider <a name="Ec2RunnerProvider" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider"></a>
1686
1729
 
@@ -1867,6 +1910,7 @@ Included components:
1867
1910
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
1868
1911
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
1869
1912
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
1913
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
1870
1914
 
1871
1915
  ---
1872
1916
 
@@ -1932,6 +1976,18 @@ Note that this is not the job log, but the runner itself. It will not contain ou
1932
1976
 
1933
1977
  ---
1934
1978
 
1979
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProvider.property.retryableErrors"></a>
1980
+
1981
+ ```typescript
1982
+ public readonly retryableErrors: string[];
1983
+ ```
1984
+
1985
+ - *Type:* string[]
1986
+
1987
+ List of step functions errors that should be retried.
1988
+
1989
+ ---
1990
+
1935
1991
 
1936
1992
  ### EcsRunnerProvider <a name="EcsRunnerProvider" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProvider"></a>
1937
1993
 
@@ -2122,6 +2178,7 @@ Included components:
2122
2178
  | <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. |
2123
2179
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
2124
2180
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
2181
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
2125
2182
 
2126
2183
  ---
2127
2184
 
@@ -2187,6 +2244,18 @@ Note that this is not the job log, but the runner itself. It will not contain ou
2187
2244
 
2188
2245
  ---
2189
2246
 
2247
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProvider.property.retryableErrors"></a>
2248
+
2249
+ ```typescript
2250
+ public readonly retryableErrors: string[];
2251
+ ```
2252
+
2253
+ - *Type:* string[]
2254
+
2255
+ List of step functions errors that should be retried.
2256
+
2257
+ ---
2258
+
2190
2259
 
2191
2260
  ### FargateRunner <a name="FargateRunner" id="@cloudsnorkel/cdk-github-runners.FargateRunner"></a>
2192
2261
 
@@ -2370,6 +2439,7 @@ Included components:
2370
2439
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Docker image loaded with GitHub Actions Runner and its prerequisites. |
2371
2440
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
2372
2441
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
2442
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
2373
2443
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot">spot</a></code> | <code>boolean</code> | Use spot pricing for Fargate tasks. |
2374
2444
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.task">task</a></code> | <code>aws-cdk-lib.aws_ecs.FargateTaskDefinition</code> | Fargate task hosting the runner. |
2375
2445
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.subnetSelection">subnetSelection</a></code> | <code>aws-cdk-lib.aws_ec2.SubnetSelection</code> | Subnets used for hosting the runner task. |
@@ -2507,6 +2577,20 @@ Note that this is not the job log, but the runner itself. It will not contain ou
2507
2577
 
2508
2578
  ---
2509
2579
 
2580
+ ##### ~~`retryableErrors`~~<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.retryableErrors"></a>
2581
+
2582
+ - *Deprecated:* use {@link FargateRunnerProvider }
2583
+
2584
+ ```typescript
2585
+ public readonly retryableErrors: string[];
2586
+ ```
2587
+
2588
+ - *Type:* string[]
2589
+
2590
+ List of step functions errors that should be retried.
2591
+
2592
+ ---
2593
+
2510
2594
  ##### ~~`spot`~~<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot"></a>
2511
2595
 
2512
2596
  - *Deprecated:* use {@link FargateRunnerProvider }
@@ -2802,6 +2886,7 @@ Included components:
2802
2886
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Docker image loaded with GitHub Actions Runner and its prerequisites. |
2803
2887
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
2804
2888
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
2889
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
2805
2890
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.spot">spot</a></code> | <code>boolean</code> | Use spot pricing for Fargate tasks. |
2806
2891
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.task">task</a></code> | <code>aws-cdk-lib.aws_ecs.FargateTaskDefinition</code> | Fargate task hosting the runner. |
2807
2892
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.subnetSelection">subnetSelection</a></code> | <code>aws-cdk-lib.aws_ec2.SubnetSelection</code> | Subnets used for hosting the runner task. |
@@ -2921,6 +3006,18 @@ Note that this is not the job log, but the runner itself. It will not contain ou
2921
3006
 
2922
3007
  ---
2923
3008
 
3009
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.retryableErrors"></a>
3010
+
3011
+ ```typescript
3012
+ public readonly retryableErrors: string[];
3013
+ ```
3014
+
3015
+ - *Type:* string[]
3016
+
3017
+ List of step functions errors that should be retried.
3018
+
3019
+ ---
3020
+
2924
3021
  ##### `spot`<sup>Required</sup> <a name="spot" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProvider.property.spot"></a>
2925
3022
 
2926
3023
  ```typescript
@@ -3740,6 +3837,7 @@ Included components:
3740
3837
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Docker image loaded with GitHub Actions Runner and its prerequisites. |
3741
3838
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
3742
3839
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
3840
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
3743
3841
 
3744
3842
  ---
3745
3843
 
@@ -3845,6 +3943,20 @@ Note that this is not the job log, but the runner itself. It will not contain ou
3845
3943
 
3846
3944
  ---
3847
3945
 
3946
+ ##### ~~`retryableErrors`~~<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.property.retryableErrors"></a>
3947
+
3948
+ - *Deprecated:* use {@link LambdaRunnerProvider }
3949
+
3950
+ ```typescript
3951
+ public readonly retryableErrors: string[];
3952
+ ```
3953
+
3954
+ - *Type:* string[]
3955
+
3956
+ List of step functions errors that should be retried.
3957
+
3958
+ ---
3959
+
3848
3960
  #### Constants <a name="Constants" id="Constants"></a>
3849
3961
 
3850
3962
  | **Name** | **Type** | **Description** |
@@ -4085,6 +4197,7 @@ Included components:
4085
4197
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Docker image loaded with GitHub Actions Runner and its prerequisites. |
4086
4198
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
4087
4199
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
4200
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
4088
4201
 
4089
4202
  ---
4090
4203
 
@@ -4176,6 +4289,18 @@ Note that this is not the job log, but the runner itself. It will not contain ou
4176
4289
 
4177
4290
  ---
4178
4291
 
4292
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProvider.property.retryableErrors"></a>
4293
+
4294
+ ```typescript
4295
+ public readonly retryableErrors: string[];
4296
+ ```
4297
+
4298
+ - *Type:* string[]
4299
+
4300
+ List of step functions errors that should be retried.
4301
+
4302
+ ---
4303
+
4179
4304
  #### Constants <a name="Constants" id="Constants"></a>
4180
4305
 
4181
4306
  | **Name** | **Type** | **Description** |
@@ -4831,7 +4956,8 @@ const apiGatewayAccessProps: ApiGatewayAccessProps = { ... }
4831
4956
  | --- | --- | --- |
4832
4957
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedIps">allowedIps</a></code> | <code>string[]</code> | List of IP addresses in CIDR notation that are allowed to access the API Gateway. |
4833
4958
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedSecurityGroups">allowedSecurityGroups</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup[]</code> | List of security groups that are allowed to access the API Gateway. |
4834
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedVpc">allowedVpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | Creates a private API Gateway and allows access from the specified VPC. |
4959
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedVpc">allowedVpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | Create a private API Gateway and allow access from the specified VPC. |
4960
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedVpcEndpoints">allowedVpcEndpoints</a></code> | <code>aws-cdk-lib.aws_ec2.IVpcEndpoint[]</code> | Create a private API Gateway and allow access from the specified VPC endpoints. |
4835
4961
 
4836
4962
  ---
4837
4963
 
@@ -4873,7 +4999,25 @@ public readonly allowedVpc: IVpc;
4873
4999
 
4874
5000
  - *Type:* aws-cdk-lib.aws_ec2.IVpc
4875
5001
 
4876
- Creates a private API Gateway and allows access from the specified VPC.
5002
+ Create a private API Gateway and allow access from the specified VPC.
5003
+
5004
+ ---
5005
+
5006
+ ##### `allowedVpcEndpoints`<sup>Optional</sup> <a name="allowedVpcEndpoints" id="@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps.property.allowedVpcEndpoints"></a>
5007
+
5008
+ ```typescript
5009
+ public readonly allowedVpcEndpoints: IVpcEndpoint[];
5010
+ ```
5011
+
5012
+ - *Type:* aws-cdk-lib.aws_ec2.IVpcEndpoint[]
5013
+
5014
+ Create a private API Gateway and allow access from the specified VPC endpoints.
5015
+
5016
+ Use this to make use of existing VPC endpoints or to share an endpoint between multiple functions. The VPC endpoint must point to `ec2.InterfaceVpcEndpointAwsService.APIGATEWAY`.
5017
+
5018
+ No other settings are supported when using this option.
5019
+
5020
+ All endpoints will be allowed access, but only the first one will be used as the URL by the runner system for setting up the webhook, and as setup URL.
4877
5021
 
4878
5022
  ---
4879
5023
 
@@ -5214,7 +5358,7 @@ const codeBuildRunnerProviderProps: CodeBuildRunnerProviderProps = { ... }
5214
5358
  | **Name** | **Type** | **Description** |
5215
5359
  | --- | --- | --- |
5216
5360
  | <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. |
5217
- | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
5361
+ | <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.* |
5218
5362
  | <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. |
5219
5363
  | <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. |
5220
5364
  | <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. |
@@ -5245,16 +5389,15 @@ remove the retention policy, set the value to `INFINITE`.
5245
5389
 
5246
5390
  ---
5247
5391
 
5248
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.retryOptions"></a>
5392
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProviderProps.property.retryOptions"></a>
5393
+
5394
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
5249
5395
 
5250
5396
  ```typescript
5251
5397
  public readonly retryOptions: ProviderRetryOptions;
5252
5398
  ```
5253
5399
 
5254
5400
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
5255
- - *Default:* retry 10 times up to about 45 minutes
5256
-
5257
- Options to retry operation in case of failure like missing capacity, or API quota issues.
5258
5401
 
5259
5402
  ---
5260
5403
 
@@ -5628,7 +5771,7 @@ const ec2RunnerProviderProps: Ec2RunnerProviderProps = { ... }
5628
5771
  | **Name** | **Type** | **Description** |
5629
5772
  | --- | --- | --- |
5630
5773
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
5631
- | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
5774
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
5632
5775
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.amiBuilder">amiBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | *No description.* |
5633
5776
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder">IRunnerImageBuilder</a></code> | Runner image builder used to build AMI containing GitHub Runner and all requirements. |
5634
5777
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.instanceType">instanceType</a></code> | <code>aws-cdk-lib.aws_ec2.InstanceType</code> | Instance type for launched runner instances. |
@@ -5661,16 +5804,15 @@ remove the retention policy, set the value to `INFINITE`.
5661
5804
 
5662
5805
  ---
5663
5806
 
5664
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.retryOptions"></a>
5807
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.Ec2RunnerProviderProps.property.retryOptions"></a>
5808
+
5809
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
5665
5810
 
5666
5811
  ```typescript
5667
5812
  public readonly retryOptions: ProviderRetryOptions;
5668
5813
  ```
5669
5814
 
5670
5815
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
5671
- - *Default:* retry 10 times up to about 45 minutes
5672
-
5673
- Options to retry operation in case of failure like missing capacity, or API quota issues.
5674
5816
 
5675
5817
  ---
5676
5818
 
@@ -5862,7 +6004,7 @@ const ecsRunnerProviderProps: EcsRunnerProviderProps = { ... }
5862
6004
  | **Name** | **Type** | **Description** |
5863
6005
  | --- | --- | --- |
5864
6006
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
5865
- | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
6007
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
5866
6008
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.assignPublicIp">assignPublicIp</a></code> | <code>boolean</code> | Assign public IP to the runner task. |
5867
6009
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.capacityProvider">capacityProvider</a></code> | <code>aws-cdk-lib.aws_ecs.AsgCapacityProvider</code> | Existing capacity provider to use. |
5868
6010
  | <code><a href="#@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.Cluster</code> | Existing ECS cluster to use. |
@@ -5900,16 +6042,15 @@ remove the retention policy, set the value to `INFINITE`.
5900
6042
 
5901
6043
  ---
5902
6044
 
5903
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.retryOptions"></a>
6045
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.EcsRunnerProviderProps.property.retryOptions"></a>
6046
+
6047
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
5904
6048
 
5905
6049
  ```typescript
5906
6050
  public readonly retryOptions: ProviderRetryOptions;
5907
6051
  ```
5908
6052
 
5909
6053
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
5910
- - *Default:* retry 10 times up to about 45 minutes
5911
-
5912
- Options to retry operation in case of failure like missing capacity, or API quota issues.
5913
6054
 
5914
6055
  ---
5915
6056
 
@@ -6173,7 +6314,7 @@ const fargateRunnerProviderProps: FargateRunnerProviderProps = { ... }
6173
6314
  | **Name** | **Type** | **Description** |
6174
6315
  | --- | --- | --- |
6175
6316
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
6176
- | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
6317
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
6177
6318
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.assignPublicIp">assignPublicIp</a></code> | <code>boolean</code> | Assign public IP to the runner task. |
6178
6319
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.cluster">cluster</a></code> | <code>aws-cdk-lib.aws_ecs.Cluster</code> | Existing Fargate cluster to use. |
6179
6320
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.cpu">cpu</a></code> | <code>number</code> | The number of cpu units used by the task. |
@@ -6207,16 +6348,15 @@ remove the retention policy, set the value to `INFINITE`.
6207
6348
 
6208
6349
  ---
6209
6350
 
6210
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.retryOptions"></a>
6351
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.FargateRunnerProviderProps.property.retryOptions"></a>
6352
+
6353
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
6211
6354
 
6212
6355
  ```typescript
6213
6356
  public readonly retryOptions: ProviderRetryOptions;
6214
6357
  ```
6215
6358
 
6216
6359
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
6217
- - *Default:* retry 10 times up to about 45 minutes
6218
-
6219
- Options to retry operation in case of failure like missing capacity, or API quota issues.
6220
6360
 
6221
6361
  ---
6222
6362
 
@@ -6456,10 +6596,11 @@ const gitHubRunnersProps: GitHubRunnersProps = { ... }
6456
6596
  | <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. |
6457
6597
  | <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. |
6458
6598
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.providers">providers</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>[]</code> | List of runner providers to use. |
6599
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
6459
6600
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security group attached to all management functions. |
6460
6601
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.setupAccess">setupAccess</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaAccess">LambdaAccess</a></code> | Access configuration for the setup function. |
6461
6602
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.statusAccess">statusAccess</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaAccess">LambdaAccess</a></code> | Access configuration for the status function. |
6462
- | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC used for all management functions. |
6603
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC used for all management functions. Use this with GitHub Enterprise Server hosted that's inaccessible from outside the VPC. |
6463
6604
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.vpcSubnets">vpcSubnets</a></code> | <code>aws-cdk-lib.aws_ec2.SubnetSelection</code> | VPC subnets used for all management functions. |
6464
6605
  | <code><a href="#@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.webhookAccess">webhookAccess</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaAccess">LambdaAccess</a></code> | Access configuration for the webhook function. |
6465
6606
 
@@ -6519,7 +6660,7 @@ public readonly idleTimeout: Duration;
6519
6660
  ```
6520
6661
 
6521
6662
  - *Type:* aws-cdk-lib.Duration
6522
- - *Default:* 10 minutes
6663
+ - *Default:* 5 minutes
6523
6664
 
6524
6665
  Time to wait before stopping a runner that remains idle.
6525
6666
 
@@ -6555,6 +6696,23 @@ At least one provider is required. Provider will be selected when its label matc
6555
6696
 
6556
6697
  ---
6557
6698
 
6699
+ ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.retryOptions"></a>
6700
+
6701
+ ```typescript
6702
+ public readonly retryOptions: ProviderRetryOptions;
6703
+ ```
6704
+
6705
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
6706
+ - *Default:* retry 23 times up to about 24 hours
6707
+
6708
+ Options to retry operation in case of failure like missing capacity, or API quota issues.
6709
+
6710
+ GitHub jobs time out after not being able to get a runner for 24 hours. You should not retry for more than 24 hours.
6711
+
6712
+ Total time spent waiting can be calculated with interval * (backoffRate ^ maxAttempts) / (backoffRate - 1).
6713
+
6714
+ ---
6715
+
6558
6716
  ##### `securityGroup`<sup>Optional</sup> <a name="securityGroup" id="@cloudsnorkel/cdk-github-runners.GitHubRunnersProps.property.securityGroup"></a>
6559
6717
 
6560
6718
  ```typescript
@@ -6607,9 +6765,16 @@ public readonly vpc: IVpc;
6607
6765
 
6608
6766
  - *Type:* aws-cdk-lib.aws_ec2.IVpc
6609
6767
 
6610
- VPC used for all management functions.
6768
+ VPC used for all management functions. Use this with GitHub Enterprise Server hosted that's inaccessible from outside the VPC.
6611
6769
 
6612
- Use this with GitHub Enterprise Server hosted that's inaccessible from outside the VPC.
6770
+ Make sure the selected VPC and subnets have access to the following with either NAT Gateway or VPC Endpoints:
6771
+ * GitHub Enterprise Server
6772
+ * Secrets Manager
6773
+ * SQS
6774
+ * Step Functions
6775
+ * CloudFormation (status function only)
6776
+ * EC2 (status function only)
6777
+ * ECR (status function only)
6613
6778
 
6614
6779
  ---
6615
6780
 
@@ -6640,7 +6805,7 @@ Access configuration for the webhook function.
6640
6805
 
6641
6806
  This function is called by GitHub when a new workflow job is scheduled. For an extra layer of security, you can set this to `LambdaAccess.apiGateway({ allowedIps: LambdaAccess.githubWebhookIps() })`.
6642
6807
 
6643
- You can also set this to `LambdaAccess.privateApiGateway()` if your GitHub Enterprise Server is hosted in a VPC. This will create an API Gateway endpoint that's only accessible from within the VPC.
6808
+ You can also set this to `LambdaAccess.apiGateway({allowedVpc: vpc, allowedIps: ['GHES.IP.ADDRESS/32']})` if your GitHub Enterprise Server is hosted in a VPC. This will create an API Gateway endpoint that's only accessible from within the VPC.
6644
6809
 
6645
6810
  *WARNING*: changing access type may change the URL. When the URL changes, you must update GitHub as well.
6646
6811
 
@@ -6808,7 +6973,7 @@ const lambdaRunnerProviderProps: LambdaRunnerProviderProps = { ... }
6808
6973
  | **Name** | **Type** | **Description** |
6809
6974
  | --- | --- | --- |
6810
6975
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
6811
- | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
6976
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
6812
6977
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.ephemeralStorageSize">ephemeralStorageSize</a></code> | <code>aws-cdk-lib.Size</code> | The size of the function’s /tmp directory in MiB. |
6813
6978
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.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. |
6814
6979
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
@@ -6839,16 +7004,15 @@ remove the retention policy, set the value to `INFINITE`.
6839
7004
 
6840
7005
  ---
6841
7006
 
6842
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.retryOptions"></a>
7007
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.LambdaRunnerProviderProps.property.retryOptions"></a>
7008
+
7009
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
6843
7010
 
6844
7011
  ```typescript
6845
7012
  public readonly retryOptions: ProviderRetryOptions;
6846
7013
  ```
6847
7014
 
6848
7015
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
6849
- - *Default:* retry 10 times up to about 45 minutes
6850
-
6851
- Options to retry operation in case of failure like missing capacity, or API quota issues.
6852
7016
 
6853
7017
  ---
6854
7018
 
@@ -7083,7 +7247,7 @@ remove the retention policy, set the value to `INFINITE`.
7083
7247
 
7084
7248
  Retry options for providers.
7085
7249
 
7086
- The default is to retry 10 times for about 45 minutes with increasing interval.
7250
+ The default is to retry 23 times for about 24 hours with increasing interval.
7087
7251
 
7088
7252
  #### Initializer <a name="Initializer" id="@cloudsnorkel/cdk-github-runners.ProviderRetryOptions.Initializer"></a>
7089
7253
 
@@ -7139,7 +7303,7 @@ public readonly maxAttempts: number;
7139
7303
  ```
7140
7304
 
7141
7305
  - *Type:* number
7142
- - *Default:* 10
7306
+ - *Default:* 23
7143
7307
 
7144
7308
  How many times to retry.
7145
7309
 
@@ -7724,7 +7888,7 @@ const runnerProviderProps: RunnerProviderProps = { ... }
7724
7888
  | **Name** | **Type** | **Description** |
7725
7889
  | --- | --- | --- |
7726
7890
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerProviderProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
7727
- | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | Options to retry operation in case of failure like missing capacity, or API quota issues. |
7891
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerProviderProps.property.retryOptions">retryOptions</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a></code> | *No description.* |
7728
7892
 
7729
7893
  ---
7730
7894
 
@@ -7745,16 +7909,15 @@ remove the retention policy, set the value to `INFINITE`.
7745
7909
 
7746
7910
  ---
7747
7911
 
7748
- ##### `retryOptions`<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.RunnerProviderProps.property.retryOptions"></a>
7912
+ ##### ~~`retryOptions`~~<sup>Optional</sup> <a name="retryOptions" id="@cloudsnorkel/cdk-github-runners.RunnerProviderProps.property.retryOptions"></a>
7913
+
7914
+ - *Deprecated:* use {@link retryOptions } on {@link GitHubRunners } instead
7749
7915
 
7750
7916
  ```typescript
7751
7917
  public readonly retryOptions: ProviderRetryOptions;
7752
7918
  ```
7753
7919
 
7754
7920
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.ProviderRetryOptions">ProviderRetryOptions</a>
7755
- - *Default:* retry 10 times up to about 45 minutes
7756
-
7757
- Options to retry operation in case of failure like missing capacity, or API quota issues.
7758
7921
 
7759
7922
  ---
7760
7923
 
@@ -9398,6 +9561,7 @@ grantable for the status function.
9398
9561
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
9399
9562
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
9400
9563
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.ILogGroup</code> | Log group where provided runners will save their logs. |
9564
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.retryableErrors">retryableErrors</a></code> | <code>string[]</code> | List of step functions errors that should be retried. |
9401
9565
 
9402
9566
  ---
9403
9567
 
@@ -9467,6 +9631,18 @@ Note that this is not the job log, but the runner itself. It will not contain ou
9467
9631
 
9468
9632
  ---
9469
9633
 
9634
+ ##### `retryableErrors`<sup>Required</sup> <a name="retryableErrors" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.retryableErrors"></a>
9635
+
9636
+ ```typescript
9637
+ public readonly retryableErrors: string[];
9638
+ ```
9639
+
9640
+ - *Type:* string[]
9641
+
9642
+ List of step functions errors that should be retried.
9643
+
9644
+ ---
9645
+
9470
9646
  ### IRunnerProviderStatus <a name="IRunnerProviderStatus" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus"></a>
9471
9647
 
9472
9648
  - *Implemented By:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus">IRunnerProviderStatus</a>
package/README.md CHANGED
@@ -267,17 +267,18 @@ new GitHubRunners(this, 'runners', {
267
267
 
268
268
  ## Troubleshooting
269
269
 
270
+ Runners are started in response to a webhook coming in from GitHub. If there are any issues starting the runner like missing capacity or transient API issues, the provider will keep retrying for 24 hours. Configuration issue related errors like pointing to a missing AMI will not be retried. GitHub itself will cancel the job if it can't find a runner for 24 hours. If your jobs don't start, follow the steps below to examine all parts of this workflow.
271
+
270
272
  1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK
271
- 2. If jobs are stuck on pending:
272
- 1. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider
273
- 2. If jobs get stuck often and take a long time to start, cancel the pending jobs and start them again
273
+ 2. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider
274
+ 3. Diagnose relevant executions of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`
275
+ 1. If the execution failed, check your runner provider configuration for errors
276
+ 2. If the execution is still running for a long time, check the execution events to see why runner starting is being retried
277
+ 3. If there are no relevant executions, move to the next step
274
278
  4. Confirm the webhook Lambda was called by visiting the URL in `troubleshooting.webhookHandlerUrl` from `status.json`
275
279
  1. If it's not called or logs errors, confirm the webhook settings on the GitHub side
276
280
  2. If you see too many errors, make sure you're only sending `workflow_job` events
277
- 5. When using GitHub app, make sure there are active installation in `github.auth.app.installations`
278
- 6. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`
279
- 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)
280
- 2. Every step function execution should be successful, even if the runner action inside it failed
281
+ 5. When using GitHub app, make sure there are active installations in `github.auth.app.installations`
281
282
 
282
283
  ## Monitoring
283
284