@cloudsnorkel/cdk-github-runners 0.5.7 → 0.6.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 (40) hide show
  1. package/.jsii +1501 -327
  2. package/API.md +836 -186
  3. package/README.md +11 -11
  4. package/lib/index.d.ts +5 -2
  5. package/lib/index.js +7 -2
  6. package/lib/lambdas/delete-ami/index.js +130 -0
  7. package/lib/lambdas/setup/index.html +1 -1
  8. package/lib/lambdas/status/index.js +11 -1
  9. package/lib/lambdas/update-lambda/index.js +2420 -429
  10. package/lib/providers/codebuild.d.ts +6 -4
  11. package/lib/providers/codebuild.js +20 -3
  12. package/lib/providers/common.d.ts +137 -9
  13. package/lib/providers/common.js +53 -4
  14. package/lib/providers/docker-images/codebuild/linux-arm64/Dockerfile +1 -0
  15. package/lib/providers/docker-images/codebuild/linux-x64/Dockerfile +1 -0
  16. package/lib/providers/docker-images/fargate/linux-arm64/Dockerfile +1 -0
  17. package/lib/providers/docker-images/fargate/linux-x64/Dockerfile +1 -0
  18. package/lib/providers/docker-images/lambda/linux-arm64/runner.sh +2 -0
  19. package/lib/providers/docker-images/lambda/linux-x64/runner.sh +2 -0
  20. package/lib/providers/ec2.d.ts +106 -0
  21. package/lib/providers/ec2.js +252 -0
  22. package/lib/providers/fargate.d.ts +5 -3
  23. package/lib/providers/fargate.js +26 -5
  24. package/lib/providers/image-builders/ami.d.ts +131 -0
  25. package/lib/providers/image-builders/ami.js +274 -0
  26. package/lib/providers/image-builders/codebuild.js +3 -2
  27. package/lib/providers/image-builders/common.d.ts +196 -0
  28. package/lib/providers/image-builders/common.js +288 -0
  29. package/lib/providers/image-builders/container.d.ts +6 -100
  30. package/lib/providers/image-builders/container.js +41 -304
  31. package/lib/providers/image-builders/linux-components.d.ts +15 -0
  32. package/lib/providers/image-builders/linux-components.js +156 -0
  33. package/lib/providers/image-builders/static.js +3 -2
  34. package/lib/providers/image-builders/windows-components.d.ts +14 -0
  35. package/lib/providers/image-builders/windows-components.js +119 -0
  36. package/lib/providers/lambda.d.ts +5 -3
  37. package/lib/providers/lambda.js +20 -3
  38. package/lib/runner.js +8 -18
  39. package/lib/secrets.js +1 -1
  40. package/package.json +13 -13
package/API.md CHANGED
@@ -272,7 +272,7 @@ public readonly props: CodeBuildImageBuilderProps;
272
272
 
273
273
  - *Implements:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>
274
274
 
275
- GitHub Actions runner provider using CodeBuild to execute the actions.
275
+ GitHub Actions runner provider using CodeBuild to execute jobs.
276
276
 
277
277
  Creates a project that gets started for each job.
278
278
 
@@ -318,6 +318,8 @@ new CodeBuildRunner(scope: Construct, id: string, props: CodeBuildRunnerProps)
318
318
  | --- | --- |
319
319
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.toString">toString</a></code> | Returns a string representation of this construct. |
320
320
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.getStepFunctionTask">getStepFunctionTask</a></code> | Generate step function task(s) to start a new runner. |
321
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.grantStateMachine">grantStateMachine</a></code> | An optional method that modifies the role of the state machine after all the tasks have been generated. |
322
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.status">status</a></code> | Return status of the runner provider to be used in the main status function. |
321
323
 
322
324
  ---
323
325
 
@@ -347,6 +349,39 @@ workflow job details.
347
349
 
348
350
  ---
349
351
 
352
+ ##### `grantStateMachine` <a name="grantStateMachine" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.grantStateMachine"></a>
353
+
354
+ ```typescript
355
+ public grantStateMachine(_: IGrantable): void
356
+ ```
357
+
358
+ An optional method that modifies the role of the state machine after all the tasks have been generated.
359
+
360
+ This can be used to add additional policy
361
+ statements to the state machine role that are not automatically added by the task returned from {@link getStepFunctionTask}.
362
+
363
+ ###### `_`<sup>Required</sup> <a name="_" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.grantStateMachine.parameter._"></a>
364
+
365
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
366
+
367
+ ---
368
+
369
+ ##### `status` <a name="status" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.status"></a>
370
+
371
+ ```typescript
372
+ public status(statusFunctionRole: IGrantable): IRunnerProviderStatus
373
+ ```
374
+
375
+ Return status of the runner provider to be used in the main status function.
376
+
377
+ Also gives the status function any needed permissions to query the Docker image or AMI.
378
+
379
+ ###### `statusFunctionRole`<sup>Required</sup> <a name="statusFunctionRole" id="@cloudsnorkel/cdk-github-runners.CodeBuildRunner.status.parameter.statusFunctionRole"></a>
380
+
381
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
382
+
383
+ ---
384
+
350
385
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
351
386
 
352
387
  | **Name** | **Description** |
@@ -380,7 +415,7 @@ Any object.
380
415
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
381
416
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
382
417
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
383
- | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Docker image in CodeBuild project. |
418
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.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. |
384
419
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
385
420
  | <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. |
386
421
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunner.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security group attached to the task. |
@@ -432,7 +467,9 @@ public readonly image: RunnerImage;
432
467
 
433
468
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a>
434
469
 
435
- Docker image in CodeBuild project.
470
+ Docker image loaded with GitHub Actions Runner and its prerequisites.
471
+
472
+ The image is built by an image builder and is specific to CodeBuild.
436
473
 
437
474
  ---
438
475
 
@@ -541,7 +578,7 @@ Available build arguments that can be set in the image builder:
541
578
 
542
579
  - *Implements:* <a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder">IImageBuilder</a>
543
580
 
544
- An image builder that uses Image Builder to build Docker images pre-baked with all the GitHub Actions runner requirements.
581
+ An image builder that uses AWS Image Builder to build Docker images pre-baked with all the GitHub Actions runner requirements.
545
582
 
546
583
  Builders can be used with runner providers.
547
584
 
@@ -559,7 +596,7 @@ const builder = new ContainerImageBuilder(this, 'Builder', {
559
596
  rebuildInterval: Duration.days(14),
560
597
  });
561
598
  new CodeBuildRunner(this, 'CodeBuild provider', {
562
- label: 'windows-codebuild',
599
+ label: 'custom-codebuild',
563
600
  imageBuilder: builder,
564
601
  });
565
602
  ```
@@ -705,18 +742,7 @@ Any object.
705
742
  | **Name** | **Type** | **Description** |
706
743
  | --- | --- | --- |
707
744
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.node">node</a></code> | <code>constructs.Node</code> | The tree node. |
708
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.architecture">architecture</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a></code> | *No description.* |
709
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.description">description</a></code> | <code>string</code> | *No description.* |
710
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.instanceTypes">instanceTypes</a></code> | <code>string[]</code> | *No description.* |
711
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.logRemovalPolicy">logRemovalPolicy</a></code> | <code>aws-cdk-lib.RemovalPolicy</code> | *No description.* |
712
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | *No description.* |
713
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.os">os</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | *No description.* |
714
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.platform">platform</a></code> | <code>string</code> | *No description.* |
715
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.rebuildInterval">rebuildInterval</a></code> | <code>aws-cdk-lib.Duration</code> | *No description.* |
716
745
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.repository">repository</a></code> | <code>aws-cdk-lib.aws_ecr.IRepository</code> | *No description.* |
717
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.runnerVersion">runnerVersion</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a></code> | *No description.* |
718
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.securityGroupIds">securityGroupIds</a></code> | <code>string[]</code> | *No description.* |
719
- | <code><a href="#@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.subnetId">subnetId</a></code> | <code>string</code> | *No description.* |
720
746
 
721
747
  ---
722
748
 
@@ -732,86 +758,6 @@ The tree node.
732
758
 
733
759
  ---
734
760
 
735
- ##### `architecture`<sup>Required</sup> <a name="architecture" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.architecture"></a>
736
-
737
- ```typescript
738
- public readonly architecture: Architecture;
739
- ```
740
-
741
- - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
742
-
743
- ---
744
-
745
- ##### `description`<sup>Required</sup> <a name="description" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.description"></a>
746
-
747
- ```typescript
748
- public readonly description: string;
749
- ```
750
-
751
- - *Type:* string
752
-
753
- ---
754
-
755
- ##### `instanceTypes`<sup>Required</sup> <a name="instanceTypes" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.instanceTypes"></a>
756
-
757
- ```typescript
758
- public readonly instanceTypes: string[];
759
- ```
760
-
761
- - *Type:* string[]
762
-
763
- ---
764
-
765
- ##### `logRemovalPolicy`<sup>Required</sup> <a name="logRemovalPolicy" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.logRemovalPolicy"></a>
766
-
767
- ```typescript
768
- public readonly logRemovalPolicy: RemovalPolicy;
769
- ```
770
-
771
- - *Type:* aws-cdk-lib.RemovalPolicy
772
-
773
- ---
774
-
775
- ##### `logRetention`<sup>Required</sup> <a name="logRetention" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.logRetention"></a>
776
-
777
- ```typescript
778
- public readonly logRetention: RetentionDays;
779
- ```
780
-
781
- - *Type:* aws-cdk-lib.aws_logs.RetentionDays
782
-
783
- ---
784
-
785
- ##### `os`<sup>Required</sup> <a name="os" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.os"></a>
786
-
787
- ```typescript
788
- public readonly os: Os;
789
- ```
790
-
791
- - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a>
792
-
793
- ---
794
-
795
- ##### `platform`<sup>Required</sup> <a name="platform" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.platform"></a>
796
-
797
- ```typescript
798
- public readonly platform: string;
799
- ```
800
-
801
- - *Type:* string
802
-
803
- ---
804
-
805
- ##### `rebuildInterval`<sup>Required</sup> <a name="rebuildInterval" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.rebuildInterval"></a>
806
-
807
- ```typescript
808
- public readonly rebuildInterval: Duration;
809
- ```
810
-
811
- - *Type:* aws-cdk-lib.Duration
812
-
813
- ---
814
-
815
761
  ##### `repository`<sup>Required</sup> <a name="repository" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.repository"></a>
816
762
 
817
763
  ```typescript
@@ -822,42 +768,12 @@ public readonly repository: IRepository;
822
768
 
823
769
  ---
824
770
 
825
- ##### `runnerVersion`<sup>Required</sup> <a name="runnerVersion" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.runnerVersion"></a>
826
-
827
- ```typescript
828
- public readonly runnerVersion: RunnerVersion;
829
- ```
830
-
831
- - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a>
832
-
833
- ---
834
-
835
- ##### `securityGroupIds`<sup>Optional</sup> <a name="securityGroupIds" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.securityGroupIds"></a>
836
-
837
- ```typescript
838
- public readonly securityGroupIds: string[];
839
- ```
840
-
841
- - *Type:* string[]
842
-
843
- ---
844
-
845
- ##### `subnetId`<sup>Optional</sup> <a name="subnetId" id="@cloudsnorkel/cdk-github-runners.ContainerImageBuilder.property.subnetId"></a>
846
-
847
- ```typescript
848
- public readonly subnetId: string;
849
- ```
850
-
851
- - *Type:* string
852
-
853
- ---
854
-
855
771
 
856
772
  ### FargateRunner <a name="FargateRunner" id="@cloudsnorkel/cdk-github-runners.FargateRunner"></a>
857
773
 
858
774
  - *Implements:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>
859
775
 
860
- GitHub Actions runner provider using Fargate to execute the actions.
776
+ GitHub Actions runner provider using Fargate to execute jobs.
861
777
 
862
778
  Creates a task definition with a single container that gets started for each job.
863
779
 
@@ -903,6 +819,8 @@ new FargateRunner(scope: Construct, id: string, props: FargateRunnerProps)
903
819
  | --- | --- |
904
820
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.toString">toString</a></code> | Returns a string representation of this construct. |
905
821
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.getStepFunctionTask">getStepFunctionTask</a></code> | Generate step function task(s) to start a new runner. |
822
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.grantStateMachine">grantStateMachine</a></code> | An optional method that modifies the role of the state machine after all the tasks have been generated. |
823
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.status">status</a></code> | Return status of the runner provider to be used in the main status function. |
906
824
 
907
825
  ---
908
826
 
@@ -932,6 +850,39 @@ workflow job details.
932
850
 
933
851
  ---
934
852
 
853
+ ##### `grantStateMachine` <a name="grantStateMachine" id="@cloudsnorkel/cdk-github-runners.FargateRunner.grantStateMachine"></a>
854
+
855
+ ```typescript
856
+ public grantStateMachine(_: IGrantable): void
857
+ ```
858
+
859
+ An optional method that modifies the role of the state machine after all the tasks have been generated.
860
+
861
+ This can be used to add additional policy
862
+ statements to the state machine role that are not automatically added by the task returned from {@link getStepFunctionTask}.
863
+
864
+ ###### `_`<sup>Required</sup> <a name="_" id="@cloudsnorkel/cdk-github-runners.FargateRunner.grantStateMachine.parameter._"></a>
865
+
866
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
867
+
868
+ ---
869
+
870
+ ##### `status` <a name="status" id="@cloudsnorkel/cdk-github-runners.FargateRunner.status"></a>
871
+
872
+ ```typescript
873
+ public status(statusFunctionRole: IGrantable): IRunnerProviderStatus
874
+ ```
875
+
876
+ Return status of the runner provider to be used in the main status function.
877
+
878
+ Also gives the status function any needed permissions to query the Docker image or AMI.
879
+
880
+ ###### `statusFunctionRole`<sup>Required</sup> <a name="statusFunctionRole" id="@cloudsnorkel/cdk-github-runners.FargateRunner.status.parameter.statusFunctionRole"></a>
881
+
882
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
883
+
884
+ ---
885
+
935
886
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
936
887
 
937
888
  | **Name** | **Description** |
@@ -968,7 +919,7 @@ Any object.
968
919
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
969
920
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.container">container</a></code> | <code>aws-cdk-lib.aws_ecs.ContainerDefinition</code> | Container definition hosting the runner. |
970
921
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
971
- | <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 used to start a new Fargate task. |
922
+ | <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. |
972
923
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
973
924
  | <code><a href="#@cloudsnorkel/cdk-github-runners.FargateRunner.property.spot">spot</a></code> | <code>boolean</code> | Use spot pricing for Fargate tasks. |
974
925
  | <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. |
@@ -1058,7 +1009,9 @@ public readonly image: RunnerImage;
1058
1009
 
1059
1010
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a>
1060
1011
 
1061
- Docker image used to start a new Fargate task.
1012
+ Docker image loaded with GitHub Actions Runner and its prerequisites.
1013
+
1014
+ The image is built by an image builder and is specific to Fargate tasks.
1062
1015
 
1063
1016
  ---
1064
1017
 
@@ -1458,6 +1411,7 @@ Grants read permissions to the principal on the assets buckets.
1458
1411
  | **Name** | **Description** |
1459
1412
  | --- | --- |
1460
1413
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isConstruct">isConstruct</a></code> | Checks if `x` is a construct. |
1414
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isOwnedResource">isOwnedResource</a></code> | Returns true if the construct was created by CDK, and false otherwise. |
1461
1415
  | <code><a href="#@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isResource">isResource</a></code> | Check whether the given construct is a Resource. |
1462
1416
 
1463
1417
  ---
@@ -1480,6 +1434,22 @@ Any object.
1480
1434
 
1481
1435
  ---
1482
1436
 
1437
+ ##### `isOwnedResource` <a name="isOwnedResource" id="@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isOwnedResource"></a>
1438
+
1439
+ ```typescript
1440
+ import { ImageBuilderComponent } from '@cloudsnorkel/cdk-github-runners'
1441
+
1442
+ ImageBuilderComponent.isOwnedResource(construct: IConstruct)
1443
+ ```
1444
+
1445
+ Returns true if the construct was created by CDK, and false otherwise.
1446
+
1447
+ ###### `construct`<sup>Required</sup> <a name="construct" id="@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isOwnedResource.parameter.construct"></a>
1448
+
1449
+ - *Type:* constructs.IConstruct
1450
+
1451
+ ---
1452
+
1483
1453
  ##### `isResource` <a name="isResource" id="@cloudsnorkel/cdk-github-runners.ImageBuilderComponent.isResource"></a>
1484
1454
 
1485
1455
  ```typescript
@@ -1580,7 +1550,7 @@ Supported platform for the component.
1580
1550
 
1581
1551
  - *Implements:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider">IRunnerProvider</a>
1582
1552
 
1583
- GitHub Actions runner provider using Lambda to execute the actions.
1553
+ GitHub Actions runner provider using Lambda to execute jobs.
1584
1554
 
1585
1555
  Creates a Docker-based function that gets executed for each job.
1586
1556
 
@@ -1626,6 +1596,8 @@ new LambdaRunner(scope: Construct, id: string, props: LambdaRunnerProps)
1626
1596
  | --- | --- |
1627
1597
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.toString">toString</a></code> | Returns a string representation of this construct. |
1628
1598
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.getStepFunctionTask">getStepFunctionTask</a></code> | Generate step function task(s) to start a new runner. |
1599
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.grantStateMachine">grantStateMachine</a></code> | An optional method that modifies the role of the state machine after all the tasks have been generated. |
1600
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.status">status</a></code> | Return status of the runner provider to be used in the main status function. |
1629
1601
 
1630
1602
  ---
1631
1603
 
@@ -1655,6 +1627,39 @@ workflow job details.
1655
1627
 
1656
1628
  ---
1657
1629
 
1630
+ ##### `grantStateMachine` <a name="grantStateMachine" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.grantStateMachine"></a>
1631
+
1632
+ ```typescript
1633
+ public grantStateMachine(_: IGrantable): void
1634
+ ```
1635
+
1636
+ An optional method that modifies the role of the state machine after all the tasks have been generated.
1637
+
1638
+ This can be used to add additional policy
1639
+ statements to the state machine role that are not automatically added by the task returned from {@link getStepFunctionTask}.
1640
+
1641
+ ###### `_`<sup>Required</sup> <a name="_" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.grantStateMachine.parameter._"></a>
1642
+
1643
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1644
+
1645
+ ---
1646
+
1647
+ ##### `status` <a name="status" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.status"></a>
1648
+
1649
+ ```typescript
1650
+ public status(statusFunctionRole: IGrantable): IRunnerProviderStatus
1651
+ ```
1652
+
1653
+ Return status of the runner provider to be used in the main status function.
1654
+
1655
+ Also gives the status function any needed permissions to query the Docker image or AMI.
1656
+
1657
+ ###### `statusFunctionRole`<sup>Required</sup> <a name="statusFunctionRole" id="@cloudsnorkel/cdk-github-runners.LambdaRunner.status.parameter.statusFunctionRole"></a>
1658
+
1659
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
1660
+
1661
+ ---
1662
+
1658
1663
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
1659
1664
 
1660
1665
  | **Name** | **Description** |
@@ -1689,7 +1694,7 @@ Any object.
1689
1694
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
1690
1695
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.function">function</a></code> | <code>aws-cdk-lib.aws_lambda.Function</code> | The function hosting the GitHub runner. |
1691
1696
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | Grant principal used to add permissions to the runner role. |
1692
- | <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 used to start Lambda function. |
1697
+ | <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. |
1693
1698
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with this provider. |
1694
1699
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security group attached to the function. |
1695
1700
  | <code><a href="#@cloudsnorkel/cdk-github-runners.LambdaRunner.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC used for hosting the function. |
@@ -1752,7 +1757,9 @@ public readonly image: RunnerImage;
1752
1757
 
1753
1758
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a>
1754
1759
 
1755
- Docker image used to start Lambda function.
1760
+ Docker image loaded with GitHub Actions Runner and its prerequisites.
1761
+
1762
+ The image is built by an image builder and is specific to Lambda.
1756
1763
 
1757
1764
  ---
1758
1765
 
@@ -2215,7 +2222,7 @@ const codeBuildRunnerProps: CodeBuildRunnerProps = { ... }
2215
2222
  | --- | --- | --- |
2216
2223
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.logRetention">logRetention</a></code> | <code>aws-cdk-lib.aws_logs.RetentionDays</code> | The number of days log events are kept in CloudWatch Logs. |
2217
2224
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.computeType">computeType</a></code> | <code>aws-cdk-lib.aws_codebuild.ComputeType</code> | The type of compute to use for this build. |
2218
- | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder">IImageBuilder</a></code> | Provider running an image to run inside CodeBuild with GitHub runner pre-configured. |
2225
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.imageBuilder">imageBuilder</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder">IImageBuilder</a></code> | Image builder for CodeBuild image with GitHub runner pre-configured. |
2219
2226
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.label">label</a></code> | <code>string</code> | GitHub Actions label used for this provider. |
2220
2227
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
2221
2228
  | <code><a href="#@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProps.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security Group to assign to this instance. |
@@ -2266,7 +2273,7 @@ public readonly imageBuilder: IImageBuilder;
2266
2273
  - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder">IImageBuilder</a>
2267
2274
  - *Default:* image builder with `CodeBuildRunner.LINUX_X64_DOCKERFILE_PATH` as Dockerfile
2268
2275
 
2269
- Provider running an image to run inside CodeBuild with GitHub runner pre-configured.
2276
+ Image builder for CodeBuild image with GitHub runner pre-configured.
2270
2277
 
2271
2278
  A user named `runner` is expected to exist with access to Docker-in-Docker.
2272
2279
 
@@ -3255,6 +3262,8 @@ VPC to launch the runners in.
3255
3262
 
3256
3263
  ### RunnerImage <a name="RunnerImage" id="@cloudsnorkel/cdk-github-runners.RunnerImage"></a>
3257
3264
 
3265
+ Description of a Docker image built by {@link IImageBuilder}.
3266
+
3258
3267
  #### Initializer <a name="Initializer" id="@cloudsnorkel/cdk-github-runners.RunnerImage.Initializer"></a>
3259
3268
 
3260
3269
  ```typescript
@@ -3271,6 +3280,7 @@ const runnerImage: RunnerImage = { ... }
3271
3280
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage.property.imageRepository">imageRepository</a></code> | <code>aws-cdk-lib.aws_ecr.IRepository</code> | ECR repository containing the image. |
3272
3281
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage.property.imageTag">imageTag</a></code> | <code>string</code> | Static image tag where the image will be pushed. |
3273
3282
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage.property.os">os</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | OS type of the image. |
3283
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage.property.runnerVersion">runnerVersion</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a></code> | Installed runner version. |
3274
3284
  | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage.property.logGroup">logGroup</a></code> | <code>aws-cdk-lib.aws_logs.LogGroup</code> | Log group where image builds are logged. |
3275
3285
 
3276
3286
  ---
@@ -3323,6 +3333,18 @@ OS type of the image.
3323
3333
 
3324
3334
  ---
3325
3335
 
3336
+ ##### `runnerVersion`<sup>Required</sup> <a name="runnerVersion" id="@cloudsnorkel/cdk-github-runners.RunnerImage.property.runnerVersion"></a>
3337
+
3338
+ ```typescript
3339
+ public readonly runnerVersion: RunnerVersion;
3340
+ ```
3341
+
3342
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a>
3343
+
3344
+ Installed runner version.
3345
+
3346
+ ---
3347
+
3326
3348
  ##### `logGroup`<sup>Optional</sup> <a name="logGroup" id="@cloudsnorkel/cdk-github-runners.RunnerImage.property.logGroup"></a>
3327
3349
 
3328
3350
  ```typescript
@@ -3476,7 +3498,25 @@ CPU architecture enum for an image.
3476
3498
 
3477
3499
  | **Name** | **Description** |
3478
3500
  | --- | --- |
3501
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Architecture.instanceTypeMatch">instanceTypeMatch</a></code> | Checks if a given EC2 instance type matches this architecture. |
3479
3502
  | <code><a href="#@cloudsnorkel/cdk-github-runners.Architecture.is">is</a></code> | Checks if the given architecture is the same as this one. |
3503
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Architecture.isIn">isIn</a></code> | Checks if this architecture is in a given list. |
3504
+
3505
+ ---
3506
+
3507
+ ##### `instanceTypeMatch` <a name="instanceTypeMatch" id="@cloudsnorkel/cdk-github-runners.Architecture.instanceTypeMatch"></a>
3508
+
3509
+ ```typescript
3510
+ public instanceTypeMatch(instanceType: InstanceType): boolean
3511
+ ```
3512
+
3513
+ Checks if a given EC2 instance type matches this architecture.
3514
+
3515
+ ###### `instanceType`<sup>Required</sup> <a name="instanceType" id="@cloudsnorkel/cdk-github-runners.Architecture.instanceTypeMatch.parameter.instanceType"></a>
3516
+
3517
+ - *Type:* aws-cdk-lib.aws_ec2.InstanceType
3518
+
3519
+ instance type to check.
3480
3520
 
3481
3521
  ---
3482
3522
 
@@ -3496,6 +3536,22 @@ architecture to compare.
3496
3536
 
3497
3537
  ---
3498
3538
 
3539
+ ##### `isIn` <a name="isIn" id="@cloudsnorkel/cdk-github-runners.Architecture.isIn"></a>
3540
+
3541
+ ```typescript
3542
+ public isIn(arches: Architecture[]): boolean
3543
+ ```
3544
+
3545
+ Checks if this architecture is in a given list.
3546
+
3547
+ ###### `arches`<sup>Required</sup> <a name="arches" id="@cloudsnorkel/cdk-github-runners.Architecture.isIn.parameter.arches"></a>
3548
+
3549
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>[]
3550
+
3551
+ architectures to check.
3552
+
3553
+ ---
3554
+
3499
3555
 
3500
3556
  #### Properties <a name="Properties" id="Properties"></a>
3501
3557
 
@@ -3548,59 +3604,300 @@ X86_64.
3548
3604
 
3549
3605
  ---
3550
3606
 
3551
- ### Os <a name="Os" id="@cloudsnorkel/cdk-github-runners.Os"></a>
3607
+ ### LinuxUbuntuComponents <a name="LinuxUbuntuComponents" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents"></a>
3552
3608
 
3553
- OS enum for an image.
3609
+ Components for Ubuntu Linux that can be used with AWS Image Builder based builders.
3610
+
3611
+ These cannot be used by {@link CodeBuildImageBuilder}.
3612
+
3613
+ #### Initializers <a name="Initializers" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.Initializer"></a>
3614
+
3615
+ ```typescript
3616
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3617
+
3618
+ new LinuxUbuntuComponents()
3619
+ ```
3620
+
3621
+ | **Name** | **Type** | **Description** |
3622
+ | --- | --- | --- |
3623
+
3624
+ ---
3554
3625
 
3555
- #### Methods <a name="Methods" id="Methods"></a>
3626
+
3627
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
3556
3628
 
3557
3629
  | **Name** | **Description** |
3558
3630
  | --- | --- |
3559
- | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.is">is</a></code> | Checks if the given OS is the same as this one. |
3631
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.awsCli">awsCli</a></code> | *No description.* |
3632
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.docker">docker</a></code> | *No description.* |
3633
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.git">git</a></code> | *No description.* |
3634
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubCli">githubCli</a></code> | *No description.* |
3635
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner">githubRunner</a></code> | *No description.* |
3636
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.requiredPackages">requiredPackages</a></code> | *No description.* |
3637
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.runnerUser">runnerUser</a></code> | *No description.* |
3560
3638
 
3561
3639
  ---
3562
3640
 
3563
- ##### `is` <a name="is" id="@cloudsnorkel/cdk-github-runners.Os.is"></a>
3641
+ ##### `awsCli` <a name="awsCli" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.awsCli"></a>
3564
3642
 
3565
3643
  ```typescript
3566
- public is(os: Os): boolean
3644
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3645
+
3646
+ LinuxUbuntuComponents.awsCli(scope: Construct, id: string, architecture: Architecture)
3567
3647
  ```
3568
3648
 
3569
- Checks if the given OS is the same as this one.
3649
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.awsCli.parameter.scope"></a>
3570
3650
 
3571
- ###### `os`<sup>Required</sup> <a name="os" id="@cloudsnorkel/cdk-github-runners.Os.is.parameter.os"></a>
3651
+ - *Type:* constructs.Construct
3572
3652
 
3573
- - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a>
3653
+ ---
3574
3654
 
3575
- OS to compare.
3655
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.awsCli.parameter.id"></a>
3576
3656
 
3577
- ---
3657
+ - *Type:* string
3578
3658
 
3659
+ ---
3579
3660
 
3580
- #### Properties <a name="Properties" id="Properties"></a>
3661
+ ###### `architecture`<sup>Required</sup> <a name="architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.awsCli.parameter.architecture"></a>
3581
3662
 
3582
- | **Name** | **Type** | **Description** |
3583
- | --- | --- | --- |
3584
- | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.name">name</a></code> | <code>string</code> | *No description.* |
3663
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3585
3664
 
3586
3665
  ---
3587
3666
 
3588
- ##### `name`<sup>Required</sup> <a name="name" id="@cloudsnorkel/cdk-github-runners.Os.property.name"></a>
3667
+ ##### `docker` <a name="docker" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.docker"></a>
3589
3668
 
3590
3669
  ```typescript
3591
- public readonly name: string;
3670
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3671
+
3672
+ LinuxUbuntuComponents.docker(scope: Construct, id: string, _architecture: Architecture)
3592
3673
  ```
3593
3674
 
3594
- - *Type:* string
3675
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.docker.parameter.scope"></a>
3676
+
3677
+ - *Type:* constructs.Construct
3595
3678
 
3596
3679
  ---
3597
3680
 
3598
- #### Constants <a name="Constants" id="Constants"></a>
3681
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.docker.parameter.id"></a>
3599
3682
 
3600
- | **Name** | **Type** | **Description** |
3601
- | --- | --- | --- |
3602
- | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.LINUX">LINUX</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | Linux. |
3603
- | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.WINDOWS">WINDOWS</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | Windows. |
3683
+ - *Type:* string
3684
+
3685
+ ---
3686
+
3687
+ ###### `_architecture`<sup>Required</sup> <a name="_architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.docker.parameter._architecture"></a>
3688
+
3689
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3690
+
3691
+ ---
3692
+
3693
+ ##### `git` <a name="git" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.git"></a>
3694
+
3695
+ ```typescript
3696
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3697
+
3698
+ LinuxUbuntuComponents.git(scope: Construct, id: string, _architecture: Architecture)
3699
+ ```
3700
+
3701
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.git.parameter.scope"></a>
3702
+
3703
+ - *Type:* constructs.Construct
3704
+
3705
+ ---
3706
+
3707
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.git.parameter.id"></a>
3708
+
3709
+ - *Type:* string
3710
+
3711
+ ---
3712
+
3713
+ ###### `_architecture`<sup>Required</sup> <a name="_architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.git.parameter._architecture"></a>
3714
+
3715
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3716
+
3717
+ ---
3718
+
3719
+ ##### `githubCli` <a name="githubCli" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubCli"></a>
3720
+
3721
+ ```typescript
3722
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3723
+
3724
+ LinuxUbuntuComponents.githubCli(scope: Construct, id: string, _architecture: Architecture)
3725
+ ```
3726
+
3727
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubCli.parameter.scope"></a>
3728
+
3729
+ - *Type:* constructs.Construct
3730
+
3731
+ ---
3732
+
3733
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubCli.parameter.id"></a>
3734
+
3735
+ - *Type:* string
3736
+
3737
+ ---
3738
+
3739
+ ###### `_architecture`<sup>Required</sup> <a name="_architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubCli.parameter._architecture"></a>
3740
+
3741
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3742
+
3743
+ ---
3744
+
3745
+ ##### `githubRunner` <a name="githubRunner" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner"></a>
3746
+
3747
+ ```typescript
3748
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3749
+
3750
+ LinuxUbuntuComponents.githubRunner(scope: Construct, id: string, runnerVersion: RunnerVersion, architecture: Architecture)
3751
+ ```
3752
+
3753
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner.parameter.scope"></a>
3754
+
3755
+ - *Type:* constructs.Construct
3756
+
3757
+ ---
3758
+
3759
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner.parameter.id"></a>
3760
+
3761
+ - *Type:* string
3762
+
3763
+ ---
3764
+
3765
+ ###### `runnerVersion`<sup>Required</sup> <a name="runnerVersion" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner.parameter.runnerVersion"></a>
3766
+
3767
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a>
3768
+
3769
+ ---
3770
+
3771
+ ###### `architecture`<sup>Required</sup> <a name="architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.githubRunner.parameter.architecture"></a>
3772
+
3773
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3774
+
3775
+ ---
3776
+
3777
+ ##### `requiredPackages` <a name="requiredPackages" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.requiredPackages"></a>
3778
+
3779
+ ```typescript
3780
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3781
+
3782
+ LinuxUbuntuComponents.requiredPackages(scope: Construct, id: string, architecture: Architecture)
3783
+ ```
3784
+
3785
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.requiredPackages.parameter.scope"></a>
3786
+
3787
+ - *Type:* constructs.Construct
3788
+
3789
+ ---
3790
+
3791
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.requiredPackages.parameter.id"></a>
3792
+
3793
+ - *Type:* string
3794
+
3795
+ ---
3796
+
3797
+ ###### `architecture`<sup>Required</sup> <a name="architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.requiredPackages.parameter.architecture"></a>
3798
+
3799
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3800
+
3801
+ ---
3802
+
3803
+ ##### `runnerUser` <a name="runnerUser" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.runnerUser"></a>
3804
+
3805
+ ```typescript
3806
+ import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
3807
+
3808
+ LinuxUbuntuComponents.runnerUser(scope: Construct, id: string, _architecture: Architecture)
3809
+ ```
3810
+
3811
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.runnerUser.parameter.scope"></a>
3812
+
3813
+ - *Type:* constructs.Construct
3814
+
3815
+ ---
3816
+
3817
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.runnerUser.parameter.id"></a>
3818
+
3819
+ - *Type:* string
3820
+
3821
+ ---
3822
+
3823
+ ###### `_architecture`<sup>Required</sup> <a name="_architecture" id="@cloudsnorkel/cdk-github-runners.LinuxUbuntuComponents.runnerUser.parameter._architecture"></a>
3824
+
3825
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Architecture">Architecture</a>
3826
+
3827
+ ---
3828
+
3829
+
3830
+
3831
+ ### Os <a name="Os" id="@cloudsnorkel/cdk-github-runners.Os"></a>
3832
+
3833
+ OS enum for an image.
3834
+
3835
+ #### Methods <a name="Methods" id="Methods"></a>
3836
+
3837
+ | **Name** | **Description** |
3838
+ | --- | --- |
3839
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.is">is</a></code> | Checks if the given OS is the same as this one. |
3840
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.isIn">isIn</a></code> | Checks if this OS is in a given list. |
3841
+
3842
+ ---
3843
+
3844
+ ##### `is` <a name="is" id="@cloudsnorkel/cdk-github-runners.Os.is"></a>
3845
+
3846
+ ```typescript
3847
+ public is(os: Os): boolean
3848
+ ```
3849
+
3850
+ Checks if the given OS is the same as this one.
3851
+
3852
+ ###### `os`<sup>Required</sup> <a name="os" id="@cloudsnorkel/cdk-github-runners.Os.is.parameter.os"></a>
3853
+
3854
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a>
3855
+
3856
+ OS to compare.
3857
+
3858
+ ---
3859
+
3860
+ ##### `isIn` <a name="isIn" id="@cloudsnorkel/cdk-github-runners.Os.isIn"></a>
3861
+
3862
+ ```typescript
3863
+ public isIn(oses: Os[]): boolean
3864
+ ```
3865
+
3866
+ Checks if this OS is in a given list.
3867
+
3868
+ ###### `oses`<sup>Required</sup> <a name="oses" id="@cloudsnorkel/cdk-github-runners.Os.isIn.parameter.oses"></a>
3869
+
3870
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a>[]
3871
+
3872
+ list of OS to check.
3873
+
3874
+ ---
3875
+
3876
+
3877
+ #### Properties <a name="Properties" id="Properties"></a>
3878
+
3879
+ | **Name** | **Type** | **Description** |
3880
+ | --- | --- | --- |
3881
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.name">name</a></code> | <code>string</code> | *No description.* |
3882
+
3883
+ ---
3884
+
3885
+ ##### `name`<sup>Required</sup> <a name="name" id="@cloudsnorkel/cdk-github-runners.Os.property.name"></a>
3886
+
3887
+ ```typescript
3888
+ public readonly name: string;
3889
+ ```
3890
+
3891
+ - *Type:* string
3892
+
3893
+ ---
3894
+
3895
+ #### Constants <a name="Constants" id="Constants"></a>
3896
+
3897
+ | **Name** | **Type** | **Description** |
3898
+ | --- | --- | --- |
3899
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.LINUX">LINUX</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | Linux. |
3900
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.Os.property.WINDOWS">WINDOWS</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.Os">Os</a></code> | Windows. |
3604
3901
 
3605
3902
  ---
3606
3903
 
@@ -3652,6 +3949,29 @@ new RunnerVersion(version: string)
3652
3949
 
3653
3950
  ---
3654
3951
 
3952
+ #### Methods <a name="Methods" id="Methods"></a>
3953
+
3954
+ | **Name** | **Description** |
3955
+ | --- | --- |
3956
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion.is">is</a></code> | Check if two versions are the same. |
3957
+
3958
+ ---
3959
+
3960
+ ##### `is` <a name="is" id="@cloudsnorkel/cdk-github-runners.RunnerVersion.is"></a>
3961
+
3962
+ ```typescript
3963
+ public is(other: RunnerVersion): boolean
3964
+ ```
3965
+
3966
+ Check if two versions are the same.
3967
+
3968
+ ###### `other`<sup>Required</sup> <a name="other" id="@cloudsnorkel/cdk-github-runners.RunnerVersion.is.parameter.other"></a>
3969
+
3970
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a>
3971
+
3972
+ version to compare.
3973
+
3974
+ ---
3655
3975
 
3656
3976
  #### Static Functions <a name="Static Functions" id="Static Functions"></a>
3657
3977
 
@@ -3834,6 +4154,167 @@ image OS.
3834
4154
 
3835
4155
 
3836
4156
 
4157
+ ### WindowsComponents <a name="WindowsComponents" id="@cloudsnorkel/cdk-github-runners.WindowsComponents"></a>
4158
+
4159
+ Components for Windows that can be used with AWS Image Builder based builders.
4160
+
4161
+ These cannot be used by {@link CodeBuildImageBuilder}.
4162
+
4163
+ #### Initializers <a name="Initializers" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.Initializer"></a>
4164
+
4165
+ ```typescript
4166
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4167
+
4168
+ new WindowsComponents()
4169
+ ```
4170
+
4171
+ | **Name** | **Type** | **Description** |
4172
+ | --- | --- | --- |
4173
+
4174
+ ---
4175
+
4176
+
4177
+ #### Static Functions <a name="Static Functions" id="Static Functions"></a>
4178
+
4179
+ | **Name** | **Description** |
4180
+ | --- | --- |
4181
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.awsCli">awsCli</a></code> | *No description.* |
4182
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.cloudwatchAgent">cloudwatchAgent</a></code> | *No description.* |
4183
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.docker">docker</a></code> | *No description.* |
4184
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.git">git</a></code> | *No description.* |
4185
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.githubCli">githubCli</a></code> | *No description.* |
4186
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.WindowsComponents.githubRunner">githubRunner</a></code> | *No description.* |
4187
+
4188
+ ---
4189
+
4190
+ ##### `awsCli` <a name="awsCli" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.awsCli"></a>
4191
+
4192
+ ```typescript
4193
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4194
+
4195
+ WindowsComponents.awsCli(scope: Construct, id: string)
4196
+ ```
4197
+
4198
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.awsCli.parameter.scope"></a>
4199
+
4200
+ - *Type:* constructs.Construct
4201
+
4202
+ ---
4203
+
4204
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.awsCli.parameter.id"></a>
4205
+
4206
+ - *Type:* string
4207
+
4208
+ ---
4209
+
4210
+ ##### `cloudwatchAgent` <a name="cloudwatchAgent" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.cloudwatchAgent"></a>
4211
+
4212
+ ```typescript
4213
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4214
+
4215
+ WindowsComponents.cloudwatchAgent(scope: Construct, id: string)
4216
+ ```
4217
+
4218
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.cloudwatchAgent.parameter.scope"></a>
4219
+
4220
+ - *Type:* constructs.Construct
4221
+
4222
+ ---
4223
+
4224
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.cloudwatchAgent.parameter.id"></a>
4225
+
4226
+ - *Type:* string
4227
+
4228
+ ---
4229
+
4230
+ ##### `docker` <a name="docker" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.docker"></a>
4231
+
4232
+ ```typescript
4233
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4234
+
4235
+ WindowsComponents.docker(scope: Construct, id: string)
4236
+ ```
4237
+
4238
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.docker.parameter.scope"></a>
4239
+
4240
+ - *Type:* constructs.Construct
4241
+
4242
+ ---
4243
+
4244
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.docker.parameter.id"></a>
4245
+
4246
+ - *Type:* string
4247
+
4248
+ ---
4249
+
4250
+ ##### `git` <a name="git" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.git"></a>
4251
+
4252
+ ```typescript
4253
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4254
+
4255
+ WindowsComponents.git(scope: Construct, id: string)
4256
+ ```
4257
+
4258
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.git.parameter.scope"></a>
4259
+
4260
+ - *Type:* constructs.Construct
4261
+
4262
+ ---
4263
+
4264
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.git.parameter.id"></a>
4265
+
4266
+ - *Type:* string
4267
+
4268
+ ---
4269
+
4270
+ ##### `githubCli` <a name="githubCli" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubCli"></a>
4271
+
4272
+ ```typescript
4273
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4274
+
4275
+ WindowsComponents.githubCli(scope: Construct, id: string)
4276
+ ```
4277
+
4278
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubCli.parameter.scope"></a>
4279
+
4280
+ - *Type:* constructs.Construct
4281
+
4282
+ ---
4283
+
4284
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubCli.parameter.id"></a>
4285
+
4286
+ - *Type:* string
4287
+
4288
+ ---
4289
+
4290
+ ##### `githubRunner` <a name="githubRunner" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubRunner"></a>
4291
+
4292
+ ```typescript
4293
+ import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
4294
+
4295
+ WindowsComponents.githubRunner(scope: Construct, id: string, runnerVersion: RunnerVersion)
4296
+ ```
4297
+
4298
+ ###### `scope`<sup>Required</sup> <a name="scope" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubRunner.parameter.scope"></a>
4299
+
4300
+ - *Type:* constructs.Construct
4301
+
4302
+ ---
4303
+
4304
+ ###### `id`<sup>Required</sup> <a name="id" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubRunner.parameter.id"></a>
4305
+
4306
+ - *Type:* string
4307
+
4308
+ ---
4309
+
4310
+ ###### `runnerVersion`<sup>Required</sup> <a name="runnerVersion" id="@cloudsnorkel/cdk-github-runners.WindowsComponents.githubRunner.parameter.runnerVersion"></a>
4311
+
4312
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerVersion">RunnerVersion</a>
4313
+
4314
+ ---
4315
+
4316
+
4317
+
3837
4318
  ## Protocols <a name="Protocols" id="Protocols"></a>
3838
4319
 
3839
4320
  ### IImageBuilder <a name="IImageBuilder" id="@cloudsnorkel/cdk-github-runners.IImageBuilder"></a>
@@ -3852,7 +4333,7 @@ The image can be further updated over time manually or using a schedule as long
3852
4333
 
3853
4334
  | **Name** | **Description** |
3854
4335
  | --- | --- |
3855
- | <code><a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder.bind">bind</a></code> | ECR repository containing the image. |
4336
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IImageBuilder.bind">bind</a></code> | Finalize and return all required information about the Docker image built by this builder. |
3856
4337
 
3857
4338
  ---
3858
4339
 
@@ -3862,41 +4343,69 @@ The image can be further updated over time manually or using a schedule as long
3862
4343
  public bind(): RunnerImage
3863
4344
  ```
3864
4345
 
3865
- ECR repository containing the image.
4346
+ Finalize and return all required information about the Docker image built by this builder.
3866
4347
 
3867
4348
  This method can be called multiple times if the image is bound to multiple providers. Make sure you cache the image when implementing or return an error if this builder doesn't support reusing images.
3868
4349
 
3869
4350
 
3870
- ### IRunnerImageStatus <a name="IRunnerImageStatus" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus"></a>
4351
+ ### IRunnerAmiStatus <a name="IRunnerAmiStatus" id="@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus"></a>
3871
4352
 
3872
- - *Implemented By:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus">IRunnerImageStatus</a>
4353
+ - *Implemented By:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus">IRunnerAmiStatus</a>
3873
4354
 
3874
- Interface for runner image status used by status.json.
4355
+ AMI status returned from runner providers to be displayed as output of status function.
3875
4356
 
3876
4357
 
3877
4358
  #### Properties <a name="Properties" id="Properties"></a>
3878
4359
 
3879
4360
  | **Name** | **Type** | **Description** |
3880
4361
  | --- | --- | --- |
3881
- | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageBuilderLogGroup">imageBuilderLogGroup</a></code> | <code>string</code> | Log group name for the image builder where history of image builds can be analyzed. |
3882
- | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageRepository">imageRepository</a></code> | <code>string</code> | Image repository where runner image is pushed. |
3883
- | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageTag">imageTag</a></code> | <code>string</code> | Tag of image that should be used. |
4362
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus.property.launchTemplate">launchTemplate</a></code> | <code>string</code> | Id of launch template pointing to the latest AMI built by the AMI builder. |
4363
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus.property.amiBuilderLogGroup">amiBuilderLogGroup</a></code> | <code>string</code> | Log group name for the AMI builder where history of builds can be analyzed. |
3884
4364
 
3885
4365
  ---
3886
4366
 
3887
- ##### `imageBuilderLogGroup`<sup>Optional</sup> <a name="imageBuilderLogGroup" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageBuilderLogGroup"></a>
4367
+ ##### `launchTemplate`<sup>Required</sup> <a name="launchTemplate" id="@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus.property.launchTemplate"></a>
3888
4368
 
3889
4369
  ```typescript
3890
- public readonly imageBuilderLogGroup: string;
4370
+ public readonly launchTemplate: string;
3891
4371
  ```
3892
4372
 
3893
4373
  - *Type:* string
3894
4374
 
3895
- Log group name for the image builder where history of image builds can be analyzed.
4375
+ Id of launch template pointing to the latest AMI built by the AMI builder.
3896
4376
 
3897
4377
  ---
3898
4378
 
3899
- ##### `imageRepository`<sup>Optional</sup> <a name="imageRepository" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageRepository"></a>
4379
+ ##### `amiBuilderLogGroup`<sup>Optional</sup> <a name="amiBuilderLogGroup" id="@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus.property.amiBuilderLogGroup"></a>
4380
+
4381
+ ```typescript
4382
+ public readonly amiBuilderLogGroup: string;
4383
+ ```
4384
+
4385
+ - *Type:* string
4386
+
4387
+ Log group name for the AMI builder where history of builds can be analyzed.
4388
+
4389
+ ---
4390
+
4391
+ ### IRunnerImageStatus <a name="IRunnerImageStatus" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus"></a>
4392
+
4393
+ - *Implemented By:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus">IRunnerImageStatus</a>
4394
+
4395
+ Image status returned from runner providers to be displayed in status.json.
4396
+
4397
+
4398
+ #### Properties <a name="Properties" id="Properties"></a>
4399
+
4400
+ | **Name** | **Type** | **Description** |
4401
+ | --- | --- | --- |
4402
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageRepository">imageRepository</a></code> | <code>string</code> | Image repository where image builder pushes runner images. |
4403
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageTag">imageTag</a></code> | <code>string</code> | Tag of image that should be used. |
4404
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageBuilderLogGroup">imageBuilderLogGroup</a></code> | <code>string</code> | Log group name for the image builder where history of image builds can be analyzed. |
4405
+
4406
+ ---
4407
+
4408
+ ##### `imageRepository`<sup>Required</sup> <a name="imageRepository" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageRepository"></a>
3900
4409
 
3901
4410
  ```typescript
3902
4411
  public readonly imageRepository: string;
@@ -3904,11 +4413,11 @@ public readonly imageRepository: string;
3904
4413
 
3905
4414
  - *Type:* string
3906
4415
 
3907
- Image repository where runner image is pushed.
4416
+ Image repository where image builder pushes runner images.
3908
4417
 
3909
4418
  ---
3910
4419
 
3911
- ##### `imageTag`<sup>Optional</sup> <a name="imageTag" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageTag"></a>
4420
+ ##### `imageTag`<sup>Required</sup> <a name="imageTag" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageTag"></a>
3912
4421
 
3913
4422
  ```typescript
3914
4423
  public readonly imageTag: string;
@@ -3920,6 +4429,18 @@ Tag of image that should be used.
3920
4429
 
3921
4430
  ---
3922
4431
 
4432
+ ##### `imageBuilderLogGroup`<sup>Optional</sup> <a name="imageBuilderLogGroup" id="@cloudsnorkel/cdk-github-runners.IRunnerImageStatus.property.imageBuilderLogGroup"></a>
4433
+
4434
+ ```typescript
4435
+ public readonly imageBuilderLogGroup: string;
4436
+ ```
4437
+
4438
+ - *Type:* string
4439
+
4440
+ Log group name for the image builder where history of image builds can be analyzed.
4441
+
4442
+ ---
4443
+
3923
4444
  ### IRunnerProvider <a name="IRunnerProvider" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider"></a>
3924
4445
 
3925
4446
  - *Extends:* aws-cdk-lib.aws_ec2.IConnectable, aws-cdk-lib.aws_iam.IGrantable
@@ -3935,6 +4456,8 @@ Implementations create all required resources and return a step function task th
3935
4456
  | **Name** | **Description** |
3936
4457
  | --- | --- |
3937
4458
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.getStepFunctionTask">getStepFunctionTask</a></code> | Generate step function tasks that execute the runner. |
4459
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.grantStateMachine">grantStateMachine</a></code> | An optional method that modifies the role of the state machine after all the tasks have been generated. |
4460
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.status">status</a></code> | Return status of the runner provider to be used in the main status function. |
3938
4461
 
3939
4462
  ---
3940
4463
 
@@ -3956,13 +4479,49 @@ specific build parameters.
3956
4479
 
3957
4480
  ---
3958
4481
 
4482
+ ##### `grantStateMachine` <a name="grantStateMachine" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.grantStateMachine"></a>
4483
+
4484
+ ```typescript
4485
+ public grantStateMachine(stateMachineRole: IGrantable): void
4486
+ ```
4487
+
4488
+ An optional method that modifies the role of the state machine after all the tasks have been generated.
4489
+
4490
+ This can be used to add additional policy
4491
+ statements to the state machine role that are not automatically added by the task returned from {@link getStepFunctionTask}.
4492
+
4493
+ ###### `stateMachineRole`<sup>Required</sup> <a name="stateMachineRole" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.grantStateMachine.parameter.stateMachineRole"></a>
4494
+
4495
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
4496
+
4497
+ role for the state machine that executes the task returned from {@link getStepFunctionTask}.
4498
+
4499
+ ---
4500
+
4501
+ ##### `status` <a name="status" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.status"></a>
4502
+
4503
+ ```typescript
4504
+ public status(statusFunctionRole: IGrantable): IRunnerProviderStatus
4505
+ ```
4506
+
4507
+ Return status of the runner provider to be used in the main status function.
4508
+
4509
+ Also gives the status function any needed permissions to query the Docker image or AMI.
4510
+
4511
+ ###### `statusFunctionRole`<sup>Required</sup> <a name="statusFunctionRole" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.status.parameter.statusFunctionRole"></a>
4512
+
4513
+ - *Type:* aws-cdk-lib.aws_iam.IGrantable
4514
+
4515
+ grantable for the status function.
4516
+
4517
+ ---
4518
+
3959
4519
  #### Properties <a name="Properties" id="Properties"></a>
3960
4520
 
3961
4521
  | **Name** | **Type** | **Description** |
3962
4522
  | --- | --- | --- |
3963
4523
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.connections">connections</a></code> | <code>aws-cdk-lib.aws_ec2.Connections</code> | The network connections associated with this resource. |
3964
4524
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.grantPrincipal">grantPrincipal</a></code> | <code>aws-cdk-lib.aws_iam.IPrincipal</code> | The principal to grant permissions to. |
3965
- | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a></code> | Image used to create a new resource compute. |
3966
4525
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.labels">labels</a></code> | <code>string[]</code> | GitHub Actions labels used for this provider. |
3967
4526
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.securityGroup">securityGroup</a></code> | <code>aws-cdk-lib.aws_ec2.ISecurityGroup</code> | Security group associated with runners. |
3968
4527
  | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.vpc">vpc</a></code> | <code>aws-cdk-lib.aws_ec2.IVpc</code> | VPC network in which runners will be placed. |
@@ -3993,20 +4552,6 @@ The principal to grant permissions to.
3993
4552
 
3994
4553
  ---
3995
4554
 
3996
- ##### `image`<sup>Required</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.image"></a>
3997
-
3998
- ```typescript
3999
- public readonly image: RunnerImage;
4000
- ```
4001
-
4002
- - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.RunnerImage">RunnerImage</a>
4003
-
4004
- Image used to create a new resource compute.
4005
-
4006
- Can be Docker image, AMI, or something else.
4007
-
4008
- ---
4009
-
4010
4555
  ##### `labels`<sup>Required</sup> <a name="labels" id="@cloudsnorkel/cdk-github-runners.IRunnerProvider.property.labels"></a>
4011
4556
 
4012
4557
  ```typescript
@@ -4047,3 +4592,108 @@ VPC network in which runners will be placed.
4047
4592
 
4048
4593
  ---
4049
4594
 
4595
+ ### IRunnerProviderStatus <a name="IRunnerProviderStatus" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus"></a>
4596
+
4597
+ - *Implemented By:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus">IRunnerProviderStatus</a>
4598
+
4599
+ Interface for runner image status used by status.json.
4600
+
4601
+
4602
+ #### Properties <a name="Properties" id="Properties"></a>
4603
+
4604
+ | **Name** | **Type** | **Description** |
4605
+ | --- | --- | --- |
4606
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.labels">labels</a></code> | <code>string[]</code> | Labels associated with provider. |
4607
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.type">type</a></code> | <code>string</code> | Runner provider type. |
4608
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.ami">ami</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus">IRunnerAmiStatus</a></code> | Details about AMI used by this runner provider. |
4609
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.image">image</a></code> | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus">IRunnerImageStatus</a></code> | Details about Docker image used by this runner provider. |
4610
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.roleArn">roleArn</a></code> | <code>string</code> | Role attached to runners. |
4611
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.securityGroup">securityGroup</a></code> | <code>string</code> | Security group attached to runners. |
4612
+ | <code><a href="#@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.vpcArn">vpcArn</a></code> | <code>string</code> | VPC where runners will be launched. |
4613
+
4614
+ ---
4615
+
4616
+ ##### `labels`<sup>Required</sup> <a name="labels" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.labels"></a>
4617
+
4618
+ ```typescript
4619
+ public readonly labels: string[];
4620
+ ```
4621
+
4622
+ - *Type:* string[]
4623
+
4624
+ Labels associated with provider.
4625
+
4626
+ ---
4627
+
4628
+ ##### `type`<sup>Required</sup> <a name="type" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.type"></a>
4629
+
4630
+ ```typescript
4631
+ public readonly type: string;
4632
+ ```
4633
+
4634
+ - *Type:* string
4635
+
4636
+ Runner provider type.
4637
+
4638
+ ---
4639
+
4640
+ ##### `ami`<sup>Optional</sup> <a name="ami" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.ami"></a>
4641
+
4642
+ ```typescript
4643
+ public readonly ami: IRunnerAmiStatus;
4644
+ ```
4645
+
4646
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerAmiStatus">IRunnerAmiStatus</a>
4647
+
4648
+ Details about AMI used by this runner provider.
4649
+
4650
+ ---
4651
+
4652
+ ##### `image`<sup>Optional</sup> <a name="image" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.image"></a>
4653
+
4654
+ ```typescript
4655
+ public readonly image: IRunnerImageStatus;
4656
+ ```
4657
+
4658
+ - *Type:* <a href="#@cloudsnorkel/cdk-github-runners.IRunnerImageStatus">IRunnerImageStatus</a>
4659
+
4660
+ Details about Docker image used by this runner provider.
4661
+
4662
+ ---
4663
+
4664
+ ##### `roleArn`<sup>Optional</sup> <a name="roleArn" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.roleArn"></a>
4665
+
4666
+ ```typescript
4667
+ public readonly roleArn: string;
4668
+ ```
4669
+
4670
+ - *Type:* string
4671
+
4672
+ Role attached to runners.
4673
+
4674
+ ---
4675
+
4676
+ ##### `securityGroup`<sup>Optional</sup> <a name="securityGroup" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.securityGroup"></a>
4677
+
4678
+ ```typescript
4679
+ public readonly securityGroup: string;
4680
+ ```
4681
+
4682
+ - *Type:* string
4683
+
4684
+ Security group attached to runners.
4685
+
4686
+ ---
4687
+
4688
+ ##### `vpcArn`<sup>Optional</sup> <a name="vpcArn" id="@cloudsnorkel/cdk-github-runners.IRunnerProviderStatus.property.vpcArn"></a>
4689
+
4690
+ ```typescript
4691
+ public readonly vpcArn: string;
4692
+ ```
4693
+
4694
+ - *Type:* string
4695
+
4696
+ VPC where runners will be launched.
4697
+
4698
+ ---
4699
+