@cloudsnorkel/cdk-github-runners 0.9.3 → 0.9.5

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 (151) hide show
  1. package/.gitattributes +10 -9
  2. package/.jsii +397 -332
  3. package/API.md +56 -9
  4. package/README.md +15 -2
  5. package/assets/{lambdas/delete-runner.lambda → delete-runner.lambda}/index.js +96 -56
  6. package/assets/{lambdas → image-builders/aws-image-builder}/delete-ami.lambda/index.js +3 -3
  7. package/assets/image-builders/aws-image-builder/filter-failed-builds.lambda/index.js +39 -0
  8. package/assets/{lambdas/aws-image-builder-versioner.lambda → image-builders/aws-image-builder/versioner.lambda}/index.js +98 -58
  9. package/assets/{lambdas → providers}/build-image.lambda/index.js +3 -3
  10. package/assets/{lambdas → providers}/update-lambda.lambda/index.js +1 -1
  11. package/assets/{lambdas/setup.lambda → setup.lambda}/index.js +4 -4
  12. package/assets/{lambdas/status.lambda → status.lambda}/index.js +96 -56
  13. package/assets/{lambdas/token-retriever.lambda → token-retriever.lambda}/index.js +96 -56
  14. package/assets/{lambdas/webhook-handler.lambda → webhook-handler.lambda}/index.js +3 -3
  15. package/lib/access.js +1 -1
  16. package/lib/{lambdas/delete-runner-function.d.ts → delete-runner-function.d.ts} +1 -1
  17. package/lib/delete-runner-function.js +23 -0
  18. package/lib/delete-runner.lambda.js +69 -0
  19. package/lib/github.js +50 -0
  20. package/lib/image-builders/api.js +47 -0
  21. package/lib/{providers/image-builders → image-builders}/aws-image-builder/ami.d.ts +2 -3
  22. package/lib/image-builders/aws-image-builder/ami.js +93 -0
  23. package/lib/{providers/image-builders → image-builders}/aws-image-builder/builder.d.ts +21 -5
  24. package/lib/image-builders/aws-image-builder/builder.js +529 -0
  25. package/lib/image-builders/aws-image-builder/common.js +46 -0
  26. package/lib/{providers/image-builders → image-builders}/aws-image-builder/container.d.ts +1 -1
  27. package/lib/image-builders/aws-image-builder/container.js +63 -0
  28. package/lib/{lambdas → image-builders/aws-image-builder}/delete-ami-function.d.ts +1 -1
  29. package/lib/image-builders/aws-image-builder/delete-ami-function.js +23 -0
  30. package/lib/image-builders/aws-image-builder/delete-ami.lambda.js +87 -0
  31. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/ami.d.ts +2 -3
  32. package/lib/image-builders/aws-image-builder/deprecated/ami.js +240 -0
  33. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/common.d.ts +1 -1
  34. package/lib/image-builders/aws-image-builder/deprecated/common.js +144 -0
  35. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/container.d.ts +1 -1
  36. package/lib/image-builders/aws-image-builder/deprecated/container.js +222 -0
  37. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.js +1 -1
  38. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/linux-components.d.ts +1 -1
  39. package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +172 -0
  40. package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/windows-components.d.ts +1 -1
  41. package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +126 -0
  42. package/lib/image-builders/aws-image-builder/filter-failed-builds-function.d.ts +13 -0
  43. package/lib/image-builders/aws-image-builder/filter-failed-builds-function.js +23 -0
  44. package/lib/image-builders/aws-image-builder/filter-failed-builds.lambda.js +18 -0
  45. package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.js +1 -1
  46. package/lib/image-builders/aws-image-builder/versioner-function.d.ts +13 -0
  47. package/lib/image-builders/aws-image-builder/versioner-function.js +23 -0
  48. package/lib/image-builders/aws-image-builder/versioner.lambda.js +96 -0
  49. package/lib/{providers/image-builders → image-builders}/codebuild-deprecated.d.ts +2 -2
  50. package/lib/image-builders/codebuild-deprecated.js +373 -0
  51. package/lib/{providers/image-builders → image-builders}/codebuild.d.ts +13 -4
  52. package/lib/image-builders/codebuild.js +287 -0
  53. package/lib/{providers/image-builders → image-builders}/common.d.ts +4 -2
  54. package/lib/image-builders/common.js +61 -0
  55. package/lib/{providers/image-builders → image-builders}/components.d.ts +8 -2
  56. package/lib/image-builders/components.js +568 -0
  57. package/lib/{providers/image-builders → image-builders}/index.js +1 -1
  58. package/lib/{providers/image-builders → image-builders}/static.d.ts +1 -1
  59. package/lib/image-builders/static.js +58 -0
  60. package/lib/lambda-helpers.js +66 -0
  61. package/lib/{lambdas → providers}/build-image-function.d.ts +1 -1
  62. package/lib/providers/build-image-function.js +23 -0
  63. package/lib/providers/build-image.lambda.js +92 -0
  64. package/lib/providers/codebuild.d.ts +1 -1
  65. package/lib/providers/codebuild.js +4 -4
  66. package/lib/providers/common.js +3 -3
  67. package/lib/providers/ec2.d.ts +1 -1
  68. package/lib/providers/ec2.js +4 -4
  69. package/lib/providers/ecs.d.ts +1 -1
  70. package/lib/providers/ecs.js +8 -4
  71. package/lib/providers/fargate.d.ts +1 -1
  72. package/lib/providers/fargate.js +4 -4
  73. package/lib/providers/index.d.ts +1 -1
  74. package/lib/providers/index.js +2 -2
  75. package/lib/providers/lambda.d.ts +1 -1
  76. package/lib/providers/lambda.js +5 -5
  77. package/lib/{lambdas → providers}/update-lambda-function.d.ts +1 -1
  78. package/lib/providers/update-lambda-function.js +23 -0
  79. package/lib/providers/update-lambda.lambda.js +34 -0
  80. package/lib/runner.d.ts +9 -1
  81. package/lib/runner.js +24 -12
  82. package/lib/secrets.js +1 -1
  83. package/lib/{lambdas/setup-function.d.ts → setup-function.d.ts} +1 -1
  84. package/lib/setup-function.js +23 -0
  85. package/lib/setup.lambda.js +152 -0
  86. package/lib/{lambdas/status-function.d.ts → status-function.d.ts} +1 -1
  87. package/lib/status-function.js +23 -0
  88. package/lib/status.lambda.js +298 -0
  89. package/lib/{lambdas/token-retriever-function.d.ts → token-retriever-function.d.ts} +1 -1
  90. package/lib/token-retriever-function.js +23 -0
  91. package/lib/token-retriever.lambda.js +15 -0
  92. package/lib/{lambdas/webhook-handler-function.d.ts → webhook-handler-function.d.ts} +1 -1
  93. package/lib/webhook-handler-function.js +23 -0
  94. package/lib/webhook-handler.lambda.d.ts +1 -0
  95. package/lib/webhook-handler.lambda.js +116 -0
  96. package/lib/webhook.d.ts +1 -1
  97. package/lib/webhook.js +2 -2
  98. package/package.json +28 -26
  99. package/lib/lambdas/aws-image-builder-versioner-function.d.ts +0 -13
  100. package/lib/lambdas/aws-image-builder-versioner-function.js +0 -23
  101. package/lib/lambdas/aws-image-builder-versioner.lambda.js +0 -96
  102. package/lib/lambdas/build-image-function.js +0 -23
  103. package/lib/lambdas/build-image.lambda.js +0 -92
  104. package/lib/lambdas/delete-ami-function.js +0 -23
  105. package/lib/lambdas/delete-ami.lambda.js +0 -87
  106. package/lib/lambdas/delete-runner-function.js +0 -23
  107. package/lib/lambdas/delete-runner.lambda.js +0 -69
  108. package/lib/lambdas/github.js +0 -50
  109. package/lib/lambdas/helpers.js +0 -66
  110. package/lib/lambdas/setup-function.js +0 -23
  111. package/lib/lambdas/setup.lambda.js +0 -152
  112. package/lib/lambdas/status-function.js +0 -23
  113. package/lib/lambdas/status.lambda.js +0 -298
  114. package/lib/lambdas/token-retriever-function.js +0 -23
  115. package/lib/lambdas/token-retriever.lambda.js +0 -15
  116. package/lib/lambdas/update-lambda-function.js +0 -23
  117. package/lib/lambdas/update-lambda.lambda.js +0 -34
  118. package/lib/lambdas/webhook-handler-function.js +0 -23
  119. package/lib/lambdas/webhook-handler.lambda.js +0 -116
  120. package/lib/providers/image-builders/api.js +0 -47
  121. package/lib/providers/image-builders/aws-image-builder/ami.js +0 -81
  122. package/lib/providers/image-builders/aws-image-builder/builder.js +0 -488
  123. package/lib/providers/image-builders/aws-image-builder/common.js +0 -46
  124. package/lib/providers/image-builders/aws-image-builder/container.js +0 -63
  125. package/lib/providers/image-builders/aws-image-builder/deprecated/ami.js +0 -239
  126. package/lib/providers/image-builders/aws-image-builder/deprecated/common.js +0 -139
  127. package/lib/providers/image-builders/aws-image-builder/deprecated/container.js +0 -222
  128. package/lib/providers/image-builders/aws-image-builder/deprecated/linux-components.js +0 -180
  129. package/lib/providers/image-builders/aws-image-builder/deprecated/windows-components.js +0 -142
  130. package/lib/providers/image-builders/codebuild-deprecated.js +0 -373
  131. package/lib/providers/image-builders/codebuild.js +0 -271
  132. package/lib/providers/image-builders/common.js +0 -61
  133. package/lib/providers/image-builders/components.js +0 -535
  134. package/lib/providers/image-builders/static.js +0 -58
  135. /package/assets/{lambdas/setup.lambda → setup.lambda}/index.html +0 -0
  136. /package/lib/{lambdas/delete-runner.lambda.d.ts → delete-runner.lambda.d.ts} +0 -0
  137. /package/lib/{lambdas/github.d.ts → github.d.ts} +0 -0
  138. /package/lib/{providers/image-builders → image-builders}/api.d.ts +0 -0
  139. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/common.d.ts +0 -0
  140. /package/lib/{lambdas → image-builders/aws-image-builder}/delete-ami.lambda.d.ts +0 -0
  141. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/deprecated/index.d.ts +0 -0
  142. /package/lib/{lambdas/setup.lambda.d.ts → image-builders/aws-image-builder/filter-failed-builds.lambda.d.ts} +0 -0
  143. /package/lib/{providers/image-builders → image-builders}/aws-image-builder/index.d.ts +0 -0
  144. /package/lib/{lambdas/aws-image-builder-versioner.lambda.d.ts → image-builders/aws-image-builder/versioner.lambda.d.ts} +0 -0
  145. /package/lib/{providers/image-builders → image-builders}/index.d.ts +0 -0
  146. /package/lib/{lambdas/helpers.d.ts → lambda-helpers.d.ts} +0 -0
  147. /package/lib/{lambdas → providers}/build-image.lambda.d.ts +0 -0
  148. /package/lib/{lambdas → providers}/update-lambda.lambda.d.ts +0 -0
  149. /package/lib/{lambdas/status.lambda.d.ts → setup.lambda.d.ts} +0 -0
  150. /package/lib/{lambdas/token-retriever.lambda.d.ts → status.lambda.d.ts} +0 -0
  151. /package/lib/{lambdas/webhook-handler.lambda.d.ts → token-retriever.lambda.d.ts} +0 -0
package/.jsii CHANGED
@@ -3114,7 +3114,7 @@
3114
3114
  "stability": "experimental"
3115
3115
  },
3116
3116
  "homepage": "https://github.com/CloudSnorkel/cdk-github-runners.git",
3117
- "jsiiVersion": "5.0.2 (build fc559a8)",
3117
+ "jsiiVersion": "5.0.5 (build ba9b985)",
3118
3118
  "keywords": [
3119
3119
  "aws",
3120
3120
  "aws-cdk",
@@ -3138,7 +3138,7 @@
3138
3138
  },
3139
3139
  "name": "@cloudsnorkel/cdk-github-runners",
3140
3140
  "readme": {
3141
- "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][7]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][6]\n[![Maven Central](https://img.shields.io/maven-central/v/com.cloudsnorkel/cdk.github.runners.svg?label=Maven%20Central&logo=java)][8]\n[![Go](https://img.shields.io/github/v/tag/CloudSnorkel/cdk-github-runners?color=red&label=go&logo=go)][11]\n[![Nuget](https://img.shields.io/nuget/v/CloudSnorkel.Cdk.Github.Runners?color=red&&logo=nuget)][12]\n[![Release](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml/badge.svg)](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* Automatically updated build environment with latest runner version\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | EC2 | CodeBuild | Fargate | ECS | Lambda |\n|------------------|-------------------|----------------------------|----------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | Unlimited | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | Unlimited | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Unlimited | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 |\n| **sudo** | ✔ | ✔ | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ✔ (Linux only) | ❌ | ✔ | ❌ |\n| **Spot pricing** | ✔ | ❌ | ✔ | ✔ | ❌ |\n| **OS** | Linux, Windows | Linux, Windows | Linux, Windows | Linux, Windows | Linux |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\n* EC2 is useful when you want runners to have complete access to the host\n* ECS is useful when you want to control the infrastructure, like leaving the runner host running for faster startups\n* Lambda is useful for short jobs that can work within time, size and readonly system constraints\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[![Demo](demo-thumbnail.jpg)](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\nlet vpc: ec2.Vpc;\nlet runnerSg: ec2.SecurityGroup;\nlet dbSg: ec2.SecurityGroup;\nlet bucket: s3.Bucket;\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunnerProvider(this, 'codebuild runner', {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n});\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nAnother way to customize runners is by modifying the image used to spin them up. The image contains the [runner][5], any required dependencies, and integration code with the provider. You may choose to customize this image by adding more packages, for example.\n\n```typescript\nconst myBuilder = CodeBuildRunnerProvider.imageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.addComponent(\n RunnerImageComponent.custom({ commands: ['apt install -y nginx xz-utils'] })\n);\n\nconst myProvider = new FargateRunnerProvider(this, 'fargate runner', {\n label: 'customized-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuilder: myBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nYour workflow will then look like:\n\n```yaml\nname: self-hosted example\non: push\njobs:\n self-hosted:\n runs-on: [self-hosted, customized-fargate]\n steps:\n - run: echo hello world\n```\n\nWindows images can also be customized the same way.\n\n```typescript\nconst myWindowsBuilder = FargateRunnerProvider.imageBuilder(this, 'Windows image builder', {\n architecture: Architecture.X86_64,\n os: Os.WINDOWS,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyWindowsBuilder.addComponent(\n RunnerImageComponent.custom({\n name: 'Ninja',\n commands: [\n 'Invoke-WebRequest -UseBasicParsing -Uri \"https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip\" -OutFile ninja.zip',\n 'Expand-Archive ninja.zip -DestinationPath C:\\\\actions',\n 'del ninja.zip',\n ],\n })\n);\n\nconst myProvider = new FargateRunnerProvider(this, 'fargate runner', {\n label: 'customized-windows-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuidler: myWindowsBuilder,\n});\n\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nThe runner OS and architecture is determined by the image it is set to use. For example, to create a Fargate runner provider for ARM64 set the `architecture` property for the image builder to `Architecture.ARM64` in the image builder properties.\n\n```typescript\nnew GitHubRunners(this, 'runners', {\n providers: [\n new FargateRunnerProvider(this, 'fargate runner', {\n labels: ['arm64', 'fargate'],\n imageBuidler: FargateRunnerProvider.imageBuilder(this, 'image builder', {\n architecture: Architecture.ARM64,\n os: Os.LINUX,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n![Architecture diagram](architecture.svg)\n\n## Troubleshooting\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. If jobs are stuck on pending:\n 1. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider\n 2. If it happens every time, cancel the job and start it again\n4. Confirm the webhook Lambda was called by visiting the URL in `troubleshooting.webhookHandlerUrl` from `status.json`\n 1. If it's not called or logs errors, confirm the webhook settings on the GitHub side\n 2. If you see too many errors, make sure you're only sending `workflow_job` events\n5. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n6. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)\n 2. Every step function execution should be successful, even if the runner action inside it failed\n\n## Other Options\n\n1. [philips-labs/terraform-aws-github-runner][3] if you're using Terraform\n2. [actions/actions-runner-controller][4] if you're using Kubernetes\n\n\n[1]: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[2]: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions\n[3]: https://github.com/philips-labs/terraform-aws-github-runner\n[4]: https://github.com/actions/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[7]: https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners\n[8]: https://search.maven.org/search?q=g:%22com.cloudsnorkel%22%20AND%20a:%22cdk.github.runners%22\n[9]: https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps\n[10]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[11]: https://pkg.go.dev/github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n[12]: https://www.nuget.org/packages/CloudSnorkel.Cdk.Github.Runners/\n[13]: https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/\n[14]: https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling\n"
3141
+ "markdown": "# GitHub Self-Hosted Runners CDK Constructs\n\n[![NPM](https://img.shields.io/npm/v/@cloudsnorkel/cdk-github-runners?label=npm&logo=npm)][7]\n[![PyPI](https://img.shields.io/pypi/v/cloudsnorkel.cdk-github-runners?label=pypi&logo=pypi)][6]\n[![Maven Central](https://img.shields.io/maven-central/v/com.cloudsnorkel/cdk.github.runners.svg?label=Maven%20Central&logo=apachemaven)][8]\n[![Go](https://img.shields.io/github/v/tag/CloudSnorkel/cdk-github-runners?color=red&label=go&logo=go)][11]\n[![Nuget](https://img.shields.io/nuget/v/CloudSnorkel.Cdk.Github.Runners?color=red&&logo=nuget)][12]\n[![Release](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml/badge.svg)](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue)](https://github.com/CloudSnorkel/cdk-github-runners/blob/main/LICENSE)\n\nUse this CDK construct to create ephemeral [self-hosted GitHub runners][1] on-demand inside your AWS account.\n\n* Easy to configure GitHub integration with a web-based interface\n* Customizable runners with decent defaults\n* Multiple runner configurations controlled by labels\n* Everything fully hosted in your account\n* Automatically updated build environment with latest runner version\n\nSelf-hosted runners in AWS are useful when:\n\n* You need easy access to internal resources in your actions\n* You want to pre-install some software for your actions\n* You want to provide some basic AWS API access (but [aws-actions/configure-aws-credentials][2] has more security controls)\n* You are using GitHub Enterprise Server\n\nEphemeral (or on-demand) runners are the [recommended way by GitHub][14] for auto-scaling, and they make sure all jobs run with a clean image. Runners are started on-demand. You don't pay unless a job is running.\n\n## API\n\nThe best way to browse API documentation is on [Constructs Hub][13]. It is available in all supported programming languages.\n\n## Providers\n\nA runner provider creates compute resources on-demand and uses [actions/runner][5] to start a runner.\n\n| | EC2 | CodeBuild | Fargate | ECS | Lambda |\n|------------------|-------------------|----------------------------|----------------|----------------|---------------|\n| **Time limit** | Unlimited | 8 hours | Unlimited | Unlimited | 15 minutes |\n| **vCPUs** | Unlimited | 2, 4, 8, or 72 | 0.25 to 4 | Unlimited | 1 to 6 |\n| **RAM** | Unlimited | 3gb, 7gb, 15gb, or 145gb | 512mb to 30gb | Unlimited | 128mb to 10gb |\n| **Storage** | Unlimited | 50gb to 824gb | 20gb to 200gb | Unlimited | Up to 10gb |\n| **Architecture** | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 | x86_64, ARM64 |\n| **sudo** | ✔ | ✔ | ✔ | ✔ | ❌ |\n| **Docker** | ✔ | ✔ (Linux only) | ❌ | ✔ | ❌ |\n| **Spot pricing** | ✔ | ❌ | ✔ | ✔ | ❌ |\n| **OS** | Linux, Windows | Linux, Windows | Linux, Windows | Linux, Windows | Linux |\n\nThe best provider to use mostly depends on your current infrastructure. When in doubt, CodeBuild is always a good choice. Execution history and logs are easy to view, and it has no restrictive limits unless you need to run for more than 8 hours.\n\n* EC2 is useful when you want runners to have complete access to the host\n* ECS is useful when you want to control the infrastructure, like leaving the runner host running for faster startups\n* Lambda is useful for short jobs that can work within time, size and readonly system constraints\n\nYou can also create your own provider by implementing `IRunnerProvider`.\n\n## Installation\n\n1. Confirm you're using CDK v2\n2. Install the appropriate package\n 1. [Python][6]\n ```\n pip install cloudsnorkel.cdk-github-runners\n ```\n 2. [TypeScript or JavaScript][7]\n ```\n npm i @cloudsnorkel/cdk-github-runners\n ```\n 3. [Java][8]\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n 4. [Go][11]\n ```\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n 5. [.NET][12]\n ```\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n3. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n4. Deploy your stack\n5. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n6. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n7. Open the URL in `github.setup.url` from `status.json` or [manually setup GitHub](SETUP_GITHUB.md) integration as an app or with personal access token\n8. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n9. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n10. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[![Demo](demo-thumbnail.jpg)](https://youtu.be/wlyv_3V8lIw)\n\n## Customizing\n\nThe default providers configured by `GitHubRunners` are useful for testing but probably not too much for actual production work. They run in the default VPC or no VPC and have no added IAM permissions. You would usually want to configure the providers yourself.\n\nFor example:\n\n```typescript\nlet vpc: ec2.Vpc;\nlet runnerSg: ec2.SecurityGroup;\nlet dbSg: ec2.SecurityGroup;\nlet bucket: s3.Bucket;\n\n// create a custom CodeBuild provider\nconst myProvider = new CodeBuildRunnerProvider(this, 'codebuild runner', {\n label: 'my-codebuild',\n vpc: vpc,\n securityGroup: runnerSg,\n});\n// grant some permissions to the provider\nbucket.grantReadWrite(myProvider);\ndbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');\n\n// create the runner infrastructure\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nAnother way to customize runners is by modifying the image used to spin them up. The image contains the [runner][5], any required dependencies, and integration code with the provider. You may choose to customize this image by adding more packages, for example.\n\n```typescript\nconst myBuilder = CodeBuildRunnerProvider.imageBuilder(this, 'image builder', {\n dockerfilePath: FargateRunner.LINUX_X64_DOCKERFILE_PATH,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyBuilder.addComponent(\n RunnerImageComponent.custom({ commands: ['apt install -y nginx xz-utils'] })\n);\n\nconst myProvider = new FargateRunnerProvider(this, 'fargate runner', {\n label: 'customized-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuilder: myBuilder,\n});\n\n// create the runner infrastructure\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nYour workflow will then look like:\n\n```yaml\nname: self-hosted example\non: push\njobs:\n self-hosted:\n runs-on: [self-hosted, customized-fargate]\n steps:\n - run: echo hello world\n```\n\nWindows images can also be customized the same way.\n\n```typescript\nconst myWindowsBuilder = FargateRunnerProvider.imageBuilder(this, 'Windows image builder', {\n architecture: Architecture.X86_64,\n os: Os.WINDOWS,\n runnerVersion: RunnerVersion.specific('2.291.0'),\n rebuildInterval: Duration.days(14),\n});\nmyWindowsBuilder.addComponent(\n RunnerImageComponent.custom({\n name: 'Ninja',\n commands: [\n 'Invoke-WebRequest -UseBasicParsing -Uri \"https://github.com/ninja-build/ninja/releases/download/v1.11.1/ninja-win.zip\" -OutFile ninja.zip',\n 'Expand-Archive ninja.zip -DestinationPath C:\\\\actions',\n 'del ninja.zip',\n ],\n })\n);\n\nconst myProvider = new FargateRunnerProvider(this, 'fargate runner', {\n label: 'customized-windows-fargate',\n vpc: vpc,\n securityGroup: runnerSg,\n imageBuidler: myWindowsBuilder,\n});\n\nnew GitHubRunners(this, 'runners', {\n providers: [myProvider],\n});\n```\n\nThe runner OS and architecture is determined by the image it is set to use. For example, to create a Fargate runner provider for ARM64 set the `architecture` property for the image builder to `Architecture.ARM64` in the image builder properties.\n\n```typescript\nnew GitHubRunners(this, 'runners', {\n providers: [\n new FargateRunnerProvider(this, 'fargate runner', {\n labels: ['arm64', 'fargate'],\n imageBuidler: FargateRunnerProvider.imageBuilder(this, 'image builder', {\n architecture: Architecture.ARM64,\n os: Os.LINUX,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n![Architecture diagram](architecture.svg)\n\n## Troubleshooting\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. If jobs are stuck on pending:\n 1. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider\n 2. If jobs get stuck often and take a long time to start, cancel the pending jobs and start them again\n4. Confirm the webhook Lambda was called by visiting the URL in `troubleshooting.webhookHandlerUrl` from `status.json`\n 1. If it's not called or logs errors, confirm the webhook settings on the GitHub side\n 2. If you see too many errors, make sure you're only sending `workflow_job` events\n5. When using GitHub app, make sure there are active installation in `github.auth.app.installations`\n6. Check execution details of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. Use the details tab to find the specific execution of the provider (Lambda, CodeBuild, Fargate, etc.)\n 2. Every step function execution should be successful, even if the runner action inside it failed\n\n## Monitoring\n\nThere are two important ways to monitor your runners:\n\n1. Make sure runners don't fail to start. When that happens, jobs may sit and wait. Use `GitHubRunners.metricFailed()` to get a metric for the number of failed runner starts. You should use this metric to trigger an alarm.\n2. Make sure runner images don't fail to build. Failed runner image builds mean you will get stuck with out-of-date software on your runners. It may lead to security vulnerabilities, or it may lead to slower runner start-ups as the runner software itself needs to be updated. Use `GitHubRunners.failedImageBuildsTopic()` to get SNS topic that gets notified of failed runner image builds. You should subscribe to this topic.\n\nOther useful metrics to track:\n\n1. Use `GitHubRunners.metricJobCompleted()` to get a metric for the number of completed jobs broken down by labels and job success.\n2. Use `GitHubRunners.metricTime()` to get a metric for the total time a runner is running. This includes the overhead of starting the runner.\n\n## Other Options\n\n1. [philips-labs/terraform-aws-github-runner][3] if you're using Terraform\n2. [actions/actions-runner-controller][4] if you're using Kubernetes\n\n\n[1]: https://docs.github.com/en/actions/hosting-your-own-runners/about-self-hosted-runners\n[2]: https://github.com/marketplace/actions/configure-aws-credentials-action-for-github-actions\n[3]: https://github.com/philips-labs/terraform-aws-github-runner\n[4]: https://github.com/actions/actions-runner-controller\n[5]: https://github.com/actions/runner\n[6]: https://pypi.org/project/cloudsnorkel.cdk-github-runners\n[7]: https://www.npmjs.com/package/@cloudsnorkel/cdk-github-runners\n[8]: https://search.maven.org/search?q=g:%22com.cloudsnorkel%22%20AND%20a:%22cdk.github.runners%22\n[9]: https://docs.github.com/en/developers/apps/getting-started-with-apps/about-apps\n[10]: https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/creating-a-personal-access-token\n[11]: https://pkg.go.dev/github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n[12]: https://www.nuget.org/packages/CloudSnorkel.Cdk.Github.Runners/\n[13]: https://constructs.dev/packages/@cloudsnorkel/cdk-github-runners/\n[14]: https://docs.github.com/en/actions/hosting-your-own-runners/autoscaling-with-self-hosted-runners#using-ephemeral-runners-for-autoscaling\n"
3142
3142
  },
3143
3143
  "repository": {
3144
3144
  "type": "git",
@@ -3174,7 +3174,7 @@
3174
3174
  "base": "constructs.Construct",
3175
3175
  "docs": {
3176
3176
  "deprecated": "use RunnerImageBuilder",
3177
- "remarks": "Builders can be used with {@link Ec2Runner }.\n\nEach builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.\n\nYou can create an instance of this construct to customize the AMI used to spin-up runners. Some runner providers may require custom components. Check the runner provider documentation.\n\nFor example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the EC2 provider, use:\n\n```\nconst builder = new AmiBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nbuilder.addComponent(new ImageBuilderComponent(scope, id, {\n platform: 'Linux',\n displayName: 'p7zip',\n description: 'Install some more packages',\n commands: [\n 'set -ex',\n 'apt-get install p7zip',\n ],\n}));\nnew Ec2Runner(this, 'EC2 provider', {\n label: 'custom-ec2',\n amiBuilder: builder,\n});\n```",
3177
+ "remarks": "Builders can be used with {@link Ec2Runner }.\n\nEach builder re-runs automatically at a set interval to make sure the AMIs contain the latest versions of everything.\n\nYou can create an instance of this construct to customize the AMI used to spin-up runners. Some runner providers may require custom components. Check the runner provider documentation.\n\nFor example, to set a specific runner version, rebuild the image every 2 weeks, and add a few packages for the EC2 provider, use:\n\n```\nconst builder = new AmiBuilder(this, 'Builder', {\n runnerVersion: RunnerVersion.specific('2.293.0'),\n rebuildInterval: Duration.days(14),\n});\nbuilder.addComponent(new ImageBuilderComponent(scope, id, {\n platform: 'Linux',\n displayName: 'p7zip',\n description: 'Install some more packages',\n commands: [\n 'apt-get install p7zip',\n ],\n}));\nnew Ec2Runner(this, 'EC2 provider', {\n label: 'custom-ec2',\n amiBuilder: builder,\n});\n```",
3178
3178
  "stability": "deprecated",
3179
3179
  "summary": "An AMI builder that uses AWS Image Builder to build AMIs pre-baked with all the GitHub Actions runner requirements."
3180
3180
  },
@@ -3184,8 +3184,8 @@
3184
3184
  "stability": "deprecated"
3185
3185
  },
3186
3186
  "locationInModule": {
3187
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3188
- "line": 156
3187
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3188
+ "line": 155
3189
3189
  },
3190
3190
  "parameters": [
3191
3191
  {
@@ -3214,8 +3214,8 @@
3214
3214
  ],
3215
3215
  "kind": "class",
3216
3216
  "locationInModule": {
3217
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3218
- "line": 153
3217
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3218
+ "line": 152
3219
3219
  },
3220
3220
  "methods": [
3221
3221
  {
@@ -3224,8 +3224,8 @@
3224
3224
  "summary": "Add a component to be installed."
3225
3225
  },
3226
3226
  "locationInModule": {
3227
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3228
- "line": 224
3227
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3228
+ "line": 223
3229
3229
  },
3230
3230
  "name": "addComponent",
3231
3231
  "parameters": [
@@ -3244,8 +3244,8 @@
3244
3244
  "summary": "Add extra trusted certificates."
3245
3245
  },
3246
3246
  "locationInModule": {
3247
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3248
- "line": 239
3247
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3248
+ "line": 238
3249
3249
  },
3250
3250
  "name": "addExtraCertificates",
3251
3251
  "parameters": [
@@ -3266,8 +3266,8 @@
3266
3266
  "summary": "Called by IRunnerProvider to finalize settings and create the AMI builder."
3267
3267
  },
3268
3268
  "locationInModule": {
3269
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3270
- "line": 252
3269
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3270
+ "line": 251
3271
3271
  },
3272
3272
  "name": "bindAmi",
3273
3273
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
@@ -3284,8 +3284,8 @@
3284
3284
  "summary": "Build and return a Docker image with GitHub Runner installed in it."
3285
3285
  },
3286
3286
  "locationInModule": {
3287
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3288
- "line": 355
3287
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3288
+ "line": 356
3289
3289
  },
3290
3290
  "name": "bindDockerImage",
3291
3291
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
@@ -3300,8 +3300,8 @@
3300
3300
  "stability": "deprecated"
3301
3301
  },
3302
3302
  "locationInModule": {
3303
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3304
- "line": 121
3303
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3304
+ "line": 126
3305
3305
  },
3306
3306
  "name": "createImage",
3307
3307
  "parameters": [
@@ -3350,7 +3350,7 @@
3350
3350
  "stability": "deprecated"
3351
3351
  },
3352
3352
  "locationInModule": {
3353
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3353
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3354
3354
  "line": 97
3355
3355
  },
3356
3356
  "name": "createInfrastructure",
@@ -3379,7 +3379,7 @@
3379
3379
  "stability": "deprecated"
3380
3380
  },
3381
3381
  "locationInModule": {
3382
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3382
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3383
3383
  "line": 89
3384
3384
  },
3385
3385
  "name": "createLog",
@@ -3403,8 +3403,8 @@
3403
3403
  "stability": "deprecated"
3404
3404
  },
3405
3405
  "locationInModule": {
3406
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3407
- "line": 138
3406
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3407
+ "line": 143
3408
3408
  },
3409
3409
  "name": "createPipeline",
3410
3410
  "parameters": [
@@ -3455,8 +3455,8 @@
3455
3455
  "summary": "Add a component to be installed before any other components."
3456
3456
  },
3457
3457
  "locationInModule": {
3458
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3459
- "line": 210
3458
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3459
+ "line": 209
3460
3460
  },
3461
3461
  "name": "prependComponent",
3462
3462
  "parameters": [
@@ -3477,7 +3477,7 @@
3477
3477
  },
3478
3478
  "immutable": true,
3479
3479
  "locationInModule": {
3480
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3480
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3481
3481
  "line": 12
3482
3482
  },
3483
3483
  "name": "architecture",
@@ -3493,8 +3493,8 @@
3493
3493
  },
3494
3494
  "immutable": true,
3495
3495
  "locationInModule": {
3496
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3497
- "line": 168
3496
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3497
+ "line": 173
3498
3498
  },
3499
3499
  "name": "connections",
3500
3500
  "type": {
@@ -3507,7 +3507,7 @@
3507
3507
  },
3508
3508
  "immutable": true,
3509
3509
  "locationInModule": {
3510
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3510
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3511
3511
  "line": 16
3512
3512
  },
3513
3513
  "name": "description",
@@ -3522,7 +3522,7 @@
3522
3522
  },
3523
3523
  "immutable": true,
3524
3524
  "locationInModule": {
3525
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3525
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3526
3526
  "line": 13
3527
3527
  },
3528
3528
  "name": "os",
@@ -3537,7 +3537,7 @@
3537
3537
  },
3538
3538
  "immutable": true,
3539
3539
  "locationInModule": {
3540
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3540
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3541
3541
  "line": 14
3542
3542
  },
3543
3543
  "name": "platform",
@@ -3552,7 +3552,7 @@
3552
3552
  },
3553
3553
  "immutable": true,
3554
3554
  "locationInModule": {
3555
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3555
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3556
3556
  "line": 18
3557
3557
  },
3558
3558
  "name": "runnerVersion",
@@ -3566,7 +3566,7 @@
3566
3566
  "stability": "deprecated"
3567
3567
  },
3568
3568
  "locationInModule": {
3569
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
3569
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
3570
3570
  "line": 20
3571
3571
  },
3572
3572
  "name": "components",
@@ -3581,7 +3581,7 @@
3581
3581
  }
3582
3582
  }
3583
3583
  ],
3584
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/ami:AmiBuilder"
3584
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/ami:AmiBuilder"
3585
3585
  },
3586
3586
  "@cloudsnorkel/cdk-github-runners.AmiBuilderProps": {
3587
3587
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -3593,7 +3593,7 @@
3593
3593
  "fqn": "@cloudsnorkel/cdk-github-runners.AmiBuilderProps",
3594
3594
  "kind": "interface",
3595
3595
  "locationInModule": {
3596
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3596
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3597
3597
  "line": 28
3598
3598
  },
3599
3599
  "name": "AmiBuilderProps",
@@ -3607,7 +3607,7 @@
3607
3607
  },
3608
3608
  "immutable": true,
3609
3609
  "locationInModule": {
3610
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3610
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3611
3611
  "line": 34
3612
3612
  },
3613
3613
  "name": "architecture",
@@ -3620,13 +3620,12 @@
3620
3620
  "abstract": true,
3621
3621
  "docs": {
3622
3622
  "default": "true",
3623
- "remarks": "You may want to disable this if you are building a Windows image and don't have a Docker Desktop license.",
3624
3623
  "stability": "experimental",
3625
3624
  "summary": "Install Docker inside the image, so it can be used by the runner."
3626
3625
  },
3627
3626
  "immutable": true,
3628
3627
  "locationInModule": {
3629
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3628
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3630
3629
  "line": 119
3631
3630
  },
3632
3631
  "name": "installDocker",
@@ -3644,7 +3643,7 @@
3644
3643
  },
3645
3644
  "immutable": true,
3646
3645
  "locationInModule": {
3647
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3646
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3648
3647
  "line": 94
3649
3648
  },
3650
3649
  "name": "instanceType",
@@ -3663,7 +3662,7 @@
3663
3662
  },
3664
3663
  "immutable": true,
3665
3664
  "locationInModule": {
3666
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3665
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3667
3666
  "line": 112
3668
3667
  },
3669
3668
  "name": "logRemovalPolicy",
@@ -3682,7 +3681,7 @@
3682
3681
  },
3683
3682
  "immutable": true,
3684
3683
  "locationInModule": {
3685
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3684
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3686
3685
  "line": 103
3687
3686
  },
3688
3687
  "name": "logRetention",
@@ -3700,7 +3699,7 @@
3700
3699
  },
3701
3700
  "immutable": true,
3702
3701
  "locationInModule": {
3703
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3702
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3704
3703
  "line": 41
3705
3704
  },
3706
3705
  "name": "os",
@@ -3719,7 +3718,7 @@
3719
3718
  },
3720
3719
  "immutable": true,
3721
3720
  "locationInModule": {
3722
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3721
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3723
3722
  "line": 57
3724
3723
  },
3725
3724
  "name": "rebuildInterval",
@@ -3737,7 +3736,7 @@
3737
3736
  },
3738
3737
  "immutable": true,
3739
3738
  "locationInModule": {
3740
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3739
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3741
3740
  "line": 48
3742
3741
  },
3743
3742
  "name": "runnerVersion",
@@ -3756,7 +3755,7 @@
3756
3755
  },
3757
3756
  "immutable": true,
3758
3757
  "locationInModule": {
3759
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3758
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3760
3759
  "line": 73
3761
3760
  },
3762
3761
  "name": "securityGroup",
@@ -3774,7 +3773,7 @@
3774
3773
  },
3775
3774
  "immutable": true,
3776
3775
  "locationInModule": {
3777
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3776
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3778
3777
  "line": 80
3779
3778
  },
3780
3779
  "name": "securityGroups",
@@ -3798,7 +3797,7 @@
3798
3797
  },
3799
3798
  "immutable": true,
3800
3799
  "locationInModule": {
3801
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3800
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3802
3801
  "line": 87
3803
3802
  },
3804
3803
  "name": "subnetSelection",
@@ -3816,7 +3815,7 @@
3816
3815
  },
3817
3816
  "immutable": true,
3818
3817
  "locationInModule": {
3819
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/ami.ts",
3818
+ "filename": "src/image-builders/aws-image-builder/deprecated/ami.ts",
3820
3819
  "line": 64
3821
3820
  },
3822
3821
  "name": "vpc",
@@ -3826,7 +3825,7 @@
3826
3825
  }
3827
3826
  }
3828
3827
  ],
3829
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/ami:AmiBuilderProps"
3828
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/ami:AmiBuilderProps"
3830
3829
  },
3831
3830
  "@cloudsnorkel/cdk-github-runners.ApiGatewayAccessProps": {
3832
3831
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -4070,8 +4069,8 @@
4070
4069
  "fqn": "@cloudsnorkel/cdk-github-runners.AwsImageBuilderRunnerImageBuilderProps",
4071
4070
  "kind": "interface",
4072
4071
  "locationInModule": {
4073
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
4074
- "line": 29
4072
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
4073
+ "line": 32
4075
4074
  },
4076
4075
  "name": "AwsImageBuilderRunnerImageBuilderProps",
4077
4076
  "properties": [
@@ -4084,8 +4083,8 @@
4084
4083
  },
4085
4084
  "immutable": true,
4086
4085
  "locationInModule": {
4087
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
4088
- "line": 35
4086
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
4087
+ "line": 38
4089
4088
  },
4090
4089
  "name": "instanceType",
4091
4090
  "optional": true,
@@ -4094,7 +4093,7 @@
4094
4093
  }
4095
4094
  }
4096
4095
  ],
4097
- "symbolId": "src/providers/image-builders/aws-image-builder/builder:AwsImageBuilderRunnerImageBuilderProps"
4096
+ "symbolId": "src/image-builders/aws-image-builder/builder:AwsImageBuilderRunnerImageBuilderProps"
4098
4097
  },
4099
4098
  "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilder": {
4100
4099
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -4111,7 +4110,7 @@
4111
4110
  "stability": "deprecated"
4112
4111
  },
4113
4112
  "locationInModule": {
4114
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4113
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4115
4114
  "line": 181
4116
4115
  },
4117
4116
  "parameters": [
@@ -4140,7 +4139,7 @@
4140
4139
  ],
4141
4140
  "kind": "class",
4142
4141
  "locationInModule": {
4143
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4142
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4144
4143
  "line": 162
4145
4144
  },
4146
4145
  "methods": [
@@ -4151,7 +4150,7 @@
4151
4150
  "summary": "Add extra trusted certificates. This helps deal with self-signed certificates for GitHub Enterprise Server."
4152
4151
  },
4153
4152
  "locationInModule": {
4154
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4153
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4155
4154
  "line": 288
4156
4155
  },
4157
4156
  "name": "addExtraCertificates",
@@ -4173,7 +4172,7 @@
4173
4172
  "summary": "Uploads a folder to the build server at a given folder name."
4174
4173
  },
4175
4174
  "locationInModule": {
4176
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4175
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4177
4176
  "line": 222
4178
4177
  },
4179
4178
  "name": "addFiles",
@@ -4204,7 +4203,7 @@
4204
4203
  "summary": "Add a policy statement to the builder to access resources required to the image build."
4205
4204
  },
4206
4205
  "locationInModule": {
4207
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4206
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4208
4207
  "line": 274
4209
4208
  },
4210
4209
  "name": "addPolicyStatement",
@@ -4226,7 +4225,7 @@
4226
4225
  "summary": "Adds a command that runs after `docker build` and `docker push`."
4227
4226
  },
4228
4227
  "locationInModule": {
4229
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4228
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4230
4229
  "line": 249
4231
4230
  },
4232
4231
  "name": "addPostBuildCommand",
@@ -4248,7 +4247,7 @@
4248
4247
  "summary": "Adds a command that runs before `docker build`."
4249
4248
  },
4250
4249
  "locationInModule": {
4251
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4250
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4252
4251
  "line": 237
4253
4252
  },
4254
4253
  "name": "addPreBuildCommand",
@@ -4271,7 +4270,7 @@
4271
4270
  "summary": "Build and return an AMI with GitHub Runner installed in it."
4272
4271
  },
4273
4272
  "locationInModule": {
4274
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4273
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4275
4274
  "line": 533
4276
4275
  },
4277
4276
  "name": "bindAmi",
@@ -4288,7 +4287,7 @@
4288
4287
  "summary": "Called by IRunnerProvider to finalize settings and create the image builder."
4289
4288
  },
4290
4289
  "locationInModule": {
4291
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4290
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4292
4291
  "line": 298
4293
4292
  },
4294
4293
  "name": "bindDockerImage",
@@ -4306,7 +4305,7 @@
4306
4305
  "summary": "Adds a build argument for Docker."
4307
4306
  },
4308
4307
  "locationInModule": {
4309
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4308
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4310
4309
  "line": 262
4311
4310
  },
4312
4311
  "name": "setBuildArg",
@@ -4340,7 +4339,7 @@
4340
4339
  },
4341
4340
  "immutable": true,
4342
4341
  "locationInModule": {
4343
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4342
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4344
4343
  "line": 527
4345
4344
  },
4346
4345
  "name": "connections",
@@ -4354,7 +4353,7 @@
4354
4353
  },
4355
4354
  "immutable": true,
4356
4355
  "locationInModule": {
4357
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4356
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4358
4357
  "line": 181
4359
4358
  },
4360
4359
  "name": "props",
@@ -4363,7 +4362,7 @@
4363
4362
  }
4364
4363
  }
4365
4364
  ],
4366
- "symbolId": "src/providers/image-builders/codebuild-deprecated:CodeBuildImageBuilder"
4365
+ "symbolId": "src/image-builders/codebuild-deprecated:CodeBuildImageBuilder"
4367
4366
  },
4368
4367
  "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps": {
4369
4368
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -4375,7 +4374,7 @@
4375
4374
  "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildImageBuilderProps",
4376
4375
  "kind": "interface",
4377
4376
  "locationInModule": {
4378
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4377
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4379
4378
  "line": 36
4380
4379
  },
4381
4380
  "name": "CodeBuildImageBuilderProps",
@@ -4389,7 +4388,7 @@
4389
4388
  },
4390
4389
  "immutable": true,
4391
4390
  "locationInModule": {
4392
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4391
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4393
4392
  "line": 54
4394
4393
  },
4395
4394
  "name": "dockerfilePath",
@@ -4406,7 +4405,7 @@
4406
4405
  },
4407
4406
  "immutable": true,
4408
4407
  "locationInModule": {
4409
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4408
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4410
4409
  "line": 42
4411
4410
  },
4412
4411
  "name": "architecture",
@@ -4418,14 +4417,14 @@
4418
4417
  {
4419
4418
  "abstract": true,
4420
4419
  "docs": {
4421
- "default": "Ubuntu 20.04 for x64 and Amazon Linux 2 for ARM64",
4420
+ "default": "Ubuntu 22.04 for x64 and Amazon Linux 2 for ARM64",
4422
4421
  "remarks": "This is the image that's going to run the code that builds the runner image.\n\nThe only action taken in CodeBuild is running `docker build`. You would therefore not need to change this setting often.",
4423
4422
  "stability": "experimental",
4424
4423
  "summary": "Build image to use in CodeBuild."
4425
4424
  },
4426
4425
  "immutable": true,
4427
4426
  "locationInModule": {
4428
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4427
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4429
4428
  "line": 108
4430
4429
  },
4431
4430
  "name": "buildImage",
@@ -4444,7 +4443,7 @@
4444
4443
  },
4445
4444
  "immutable": true,
4446
4445
  "locationInModule": {
4447
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4446
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4448
4447
  "line": 99
4449
4448
  },
4450
4449
  "name": "computeType",
@@ -4463,7 +4462,7 @@
4463
4462
  },
4464
4463
  "immutable": true,
4465
4464
  "locationInModule": {
4466
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4465
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4467
4466
  "line": 135
4468
4467
  },
4469
4468
  "name": "logRemovalPolicy",
@@ -4482,7 +4481,7 @@
4482
4481
  },
4483
4482
  "immutable": true,
4484
4483
  "locationInModule": {
4485
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4484
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4486
4485
  "line": 126
4487
4486
  },
4488
4487
  "name": "logRetention",
@@ -4500,7 +4499,7 @@
4500
4499
  },
4501
4500
  "immutable": true,
4502
4501
  "locationInModule": {
4503
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4502
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4504
4503
  "line": 49
4505
4504
  },
4506
4505
  "name": "os",
@@ -4519,7 +4518,7 @@
4519
4518
  },
4520
4519
  "immutable": true,
4521
4520
  "locationInModule": {
4522
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4521
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4523
4522
  "line": 70
4524
4523
  },
4525
4524
  "name": "rebuildInterval",
@@ -4537,7 +4536,7 @@
4537
4536
  },
4538
4537
  "immutable": true,
4539
4538
  "locationInModule": {
4540
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4539
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4541
4540
  "line": 61
4542
4541
  },
4543
4542
  "name": "runnerVersion",
@@ -4555,7 +4554,7 @@
4555
4554
  },
4556
4555
  "immutable": true,
4557
4556
  "locationInModule": {
4558
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4557
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4559
4558
  "line": 84
4560
4559
  },
4561
4560
  "name": "securityGroup",
@@ -4573,7 +4572,7 @@
4573
4572
  },
4574
4573
  "immutable": true,
4575
4574
  "locationInModule": {
4576
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4575
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4577
4576
  "line": 91
4578
4577
  },
4579
4578
  "name": "subnetSelection",
@@ -4592,7 +4591,7 @@
4592
4591
  },
4593
4592
  "immutable": true,
4594
4593
  "locationInModule": {
4595
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4594
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4596
4595
  "line": 117
4597
4596
  },
4598
4597
  "name": "timeout",
@@ -4610,7 +4609,7 @@
4610
4609
  },
4611
4610
  "immutable": true,
4612
4611
  "locationInModule": {
4613
- "filename": "src/providers/image-builders/codebuild-deprecated.ts",
4612
+ "filename": "src/image-builders/codebuild-deprecated.ts",
4614
4613
  "line": 77
4615
4614
  },
4616
4615
  "name": "vpc",
@@ -4620,7 +4619,7 @@
4620
4619
  }
4621
4620
  }
4622
4621
  ],
4623
- "symbolId": "src/providers/image-builders/codebuild-deprecated:CodeBuildImageBuilderProps"
4622
+ "symbolId": "src/image-builders/codebuild-deprecated:CodeBuildImageBuilderProps"
4624
4623
  },
4625
4624
  "@cloudsnorkel/cdk-github-runners.CodeBuildRunner": {
4626
4625
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -4677,23 +4676,23 @@
4677
4676
  "fqn": "@cloudsnorkel/cdk-github-runners.CodeBuildRunnerImageBuilderProps",
4678
4677
  "kind": "interface",
4679
4678
  "locationInModule": {
4680
- "filename": "src/providers/image-builders/codebuild.ts",
4681
- "line": 27
4679
+ "filename": "src/image-builders/codebuild.ts",
4680
+ "line": 28
4682
4681
  },
4683
4682
  "name": "CodeBuildRunnerImageBuilderProps",
4684
4683
  "properties": [
4685
4684
  {
4686
4685
  "abstract": true,
4687
4686
  "docs": {
4688
- "default": "Ubuntu 20.04 for x64 and Amazon Linux 2 for ARM64",
4687
+ "default": "Ubuntu 22.04 for x64 and Amazon Linux 2 for ARM64",
4689
4688
  "remarks": "This is the image that's going to run the code that builds the runner image.\n\nThe only action taken in CodeBuild is running `docker build`. You would therefore not need to change this setting often.",
4690
4689
  "stability": "experimental",
4691
4690
  "summary": "Build image to use in CodeBuild."
4692
4691
  },
4693
4692
  "immutable": true,
4694
4693
  "locationInModule": {
4695
- "filename": "src/providers/image-builders/codebuild.ts",
4696
- "line": 43
4694
+ "filename": "src/image-builders/codebuild.ts",
4695
+ "line": 44
4697
4696
  },
4698
4697
  "name": "buildImage",
4699
4698
  "optional": true,
@@ -4711,8 +4710,8 @@
4711
4710
  },
4712
4711
  "immutable": true,
4713
4712
  "locationInModule": {
4714
- "filename": "src/providers/image-builders/codebuild.ts",
4715
- "line": 34
4713
+ "filename": "src/image-builders/codebuild.ts",
4714
+ "line": 35
4716
4715
  },
4717
4716
  "name": "computeType",
4718
4717
  "optional": true,
@@ -4730,8 +4729,8 @@
4730
4729
  },
4731
4730
  "immutable": true,
4732
4731
  "locationInModule": {
4733
- "filename": "src/providers/image-builders/codebuild.ts",
4734
- "line": 52
4732
+ "filename": "src/image-builders/codebuild.ts",
4733
+ "line": 53
4735
4734
  },
4736
4735
  "name": "timeout",
4737
4736
  "optional": true,
@@ -4740,7 +4739,7 @@
4740
4739
  }
4741
4740
  }
4742
4741
  ],
4743
- "symbolId": "src/providers/image-builders/codebuild:CodeBuildRunnerImageBuilderProps"
4742
+ "symbolId": "src/image-builders/codebuild:CodeBuildRunnerImageBuilderProps"
4744
4743
  },
4745
4744
  "@cloudsnorkel/cdk-github-runners.CodeBuildRunnerProvider": {
4746
4745
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -5369,7 +5368,7 @@
5369
5368
  "stability": "deprecated"
5370
5369
  },
5371
5370
  "locationInModule": {
5372
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5371
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5373
5372
  "line": 156
5374
5373
  },
5375
5374
  "parameters": [
@@ -5399,7 +5398,7 @@
5399
5398
  ],
5400
5399
  "kind": "class",
5401
5400
  "locationInModule": {
5402
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5401
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5403
5402
  "line": 151
5404
5403
  },
5405
5404
  "methods": [
@@ -5409,7 +5408,7 @@
5409
5408
  "summary": "Add a component to be installed."
5410
5409
  },
5411
5410
  "locationInModule": {
5412
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5411
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5413
5412
  "line": 218
5414
5413
  },
5415
5414
  "name": "addComponent",
@@ -5429,7 +5428,7 @@
5429
5428
  "summary": "Add extra trusted certificates. This helps deal with self-signed certificates for GitHub Enterprise Server."
5430
5429
  },
5431
5430
  "locationInModule": {
5432
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5431
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5433
5432
  "line": 235
5434
5433
  },
5435
5434
  "name": "addExtraCertificates",
@@ -5452,7 +5451,7 @@
5452
5451
  "summary": "Build and return an AMI with GitHub Runner installed in it."
5453
5452
  },
5454
5453
  "locationInModule": {
5455
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5454
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5456
5455
  "line": 345
5457
5456
  },
5458
5457
  "name": "bindAmi",
@@ -5469,7 +5468,7 @@
5469
5468
  "summary": "Called by IRunnerProvider to finalize settings and create the image builder."
5470
5469
  },
5471
5470
  "locationInModule": {
5472
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5471
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5473
5472
  "line": 248
5474
5473
  },
5475
5474
  "name": "bindDockerImage",
@@ -5485,8 +5484,8 @@
5485
5484
  "stability": "deprecated"
5486
5485
  },
5487
5486
  "locationInModule": {
5488
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5489
- "line": 121
5487
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5488
+ "line": 126
5490
5489
  },
5491
5490
  "name": "createImage",
5492
5491
  "parameters": [
@@ -5535,7 +5534,7 @@
5535
5534
  "stability": "deprecated"
5536
5535
  },
5537
5536
  "locationInModule": {
5538
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5537
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5539
5538
  "line": 97
5540
5539
  },
5541
5540
  "name": "createInfrastructure",
@@ -5564,7 +5563,7 @@
5564
5563
  "stability": "deprecated"
5565
5564
  },
5566
5565
  "locationInModule": {
5567
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5566
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5568
5567
  "line": 89
5569
5568
  },
5570
5569
  "name": "createLog",
@@ -5588,8 +5587,8 @@
5588
5587
  "stability": "deprecated"
5589
5588
  },
5590
5589
  "locationInModule": {
5591
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5592
- "line": 138
5590
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5591
+ "line": 143
5593
5592
  },
5594
5593
  "name": "createPipeline",
5595
5594
  "parameters": [
@@ -5640,7 +5639,7 @@
5640
5639
  "summary": "Add a component to be installed before any other components."
5641
5640
  },
5642
5641
  "locationInModule": {
5643
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5642
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5644
5643
  "line": 204
5645
5644
  },
5646
5645
  "name": "prependComponent",
@@ -5662,7 +5661,7 @@
5662
5661
  },
5663
5662
  "immutable": true,
5664
5663
  "locationInModule": {
5665
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5664
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5666
5665
  "line": 12
5667
5666
  },
5668
5667
  "name": "architecture",
@@ -5678,8 +5677,8 @@
5678
5677
  },
5679
5678
  "immutable": true,
5680
5679
  "locationInModule": {
5681
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5682
- "line": 168
5680
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5681
+ "line": 173
5683
5682
  },
5684
5683
  "name": "connections",
5685
5684
  "type": {
@@ -5692,7 +5691,7 @@
5692
5691
  },
5693
5692
  "immutable": true,
5694
5693
  "locationInModule": {
5695
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5694
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5696
5695
  "line": 16
5697
5696
  },
5698
5697
  "name": "description",
@@ -5707,7 +5706,7 @@
5707
5706
  },
5708
5707
  "immutable": true,
5709
5708
  "locationInModule": {
5710
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5709
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5711
5710
  "line": 13
5712
5711
  },
5713
5712
  "name": "os",
@@ -5722,7 +5721,7 @@
5722
5721
  },
5723
5722
  "immutable": true,
5724
5723
  "locationInModule": {
5725
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5724
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5726
5725
  "line": 14
5727
5726
  },
5728
5727
  "name": "platform",
@@ -5737,7 +5736,7 @@
5737
5736
  },
5738
5737
  "immutable": true,
5739
5738
  "locationInModule": {
5740
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5739
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5741
5740
  "line": 152
5742
5741
  },
5743
5742
  "name": "repository",
@@ -5751,7 +5750,7 @@
5751
5750
  },
5752
5751
  "immutable": true,
5753
5752
  "locationInModule": {
5754
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5753
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5755
5754
  "line": 18
5756
5755
  },
5757
5756
  "name": "runnerVersion",
@@ -5765,7 +5764,7 @@
5765
5764
  "stability": "deprecated"
5766
5765
  },
5767
5766
  "locationInModule": {
5768
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/common.ts",
5767
+ "filename": "src/image-builders/aws-image-builder/deprecated/common.ts",
5769
5768
  "line": 20
5770
5769
  },
5771
5770
  "name": "components",
@@ -5780,7 +5779,7 @@
5780
5779
  }
5781
5780
  }
5782
5781
  ],
5783
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/container:ContainerImageBuilder"
5782
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/container:ContainerImageBuilder"
5784
5783
  },
5785
5784
  "@cloudsnorkel/cdk-github-runners.ContainerImageBuilderProps": {
5786
5785
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -5792,7 +5791,7 @@
5792
5791
  "fqn": "@cloudsnorkel/cdk-github-runners.ContainerImageBuilderProps",
5793
5792
  "kind": "interface",
5794
5793
  "locationInModule": {
5795
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5794
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5796
5795
  "line": 33
5797
5796
  },
5798
5797
  "name": "ContainerImageBuilderProps",
@@ -5806,7 +5805,7 @@
5806
5805
  },
5807
5806
  "immutable": true,
5808
5807
  "locationInModule": {
5809
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5808
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5810
5809
  "line": 39
5811
5810
  },
5812
5811
  "name": "architecture",
@@ -5824,7 +5823,7 @@
5824
5823
  },
5825
5824
  "immutable": true,
5826
5825
  "locationInModule": {
5827
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5826
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5828
5827
  "line": 106
5829
5828
  },
5830
5829
  "name": "instanceType",
@@ -5843,7 +5842,7 @@
5843
5842
  },
5844
5843
  "immutable": true,
5845
5844
  "locationInModule": {
5846
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5845
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5847
5846
  "line": 124
5848
5847
  },
5849
5848
  "name": "logRemovalPolicy",
@@ -5862,7 +5861,7 @@
5862
5861
  },
5863
5862
  "immutable": true,
5864
5863
  "locationInModule": {
5865
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5864
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5866
5865
  "line": 115
5867
5866
  },
5868
5867
  "name": "logRetention",
@@ -5880,7 +5879,7 @@
5880
5879
  },
5881
5880
  "immutable": true,
5882
5881
  "locationInModule": {
5883
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5882
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5884
5883
  "line": 46
5885
5884
  },
5886
5885
  "name": "os",
@@ -5899,7 +5898,7 @@
5899
5898
  },
5900
5899
  "immutable": true,
5901
5900
  "locationInModule": {
5902
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5901
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5903
5902
  "line": 53
5904
5903
  },
5905
5904
  "name": "parentImage",
@@ -5918,7 +5917,7 @@
5918
5917
  },
5919
5918
  "immutable": true,
5920
5919
  "locationInModule": {
5921
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5920
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5922
5921
  "line": 69
5923
5922
  },
5924
5923
  "name": "rebuildInterval",
@@ -5936,7 +5935,7 @@
5936
5935
  },
5937
5936
  "immutable": true,
5938
5937
  "locationInModule": {
5939
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5938
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5940
5939
  "line": 60
5941
5940
  },
5942
5941
  "name": "runnerVersion",
@@ -5955,7 +5954,7 @@
5955
5954
  },
5956
5955
  "immutable": true,
5957
5956
  "locationInModule": {
5958
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5957
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5959
5958
  "line": 85
5960
5959
  },
5961
5960
  "name": "securityGroup",
@@ -5973,7 +5972,7 @@
5973
5972
  },
5974
5973
  "immutable": true,
5975
5974
  "locationInModule": {
5976
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5975
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
5977
5976
  "line": 92
5978
5977
  },
5979
5978
  "name": "securityGroups",
@@ -5996,7 +5995,7 @@
5996
5995
  },
5997
5996
  "immutable": true,
5998
5997
  "locationInModule": {
5999
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
5998
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
6000
5999
  "line": 99
6001
6000
  },
6002
6001
  "name": "subnetSelection",
@@ -6014,7 +6013,7 @@
6014
6013
  },
6015
6014
  "immutable": true,
6016
6015
  "locationInModule": {
6017
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/container.ts",
6016
+ "filename": "src/image-builders/aws-image-builder/deprecated/container.ts",
6018
6017
  "line": 76
6019
6018
  },
6020
6019
  "name": "vpc",
@@ -6024,7 +6023,7 @@
6024
6023
  }
6025
6024
  }
6026
6025
  ],
6027
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/container:ContainerImageBuilderProps"
6026
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/container:ContainerImageBuilderProps"
6028
6027
  },
6029
6028
  "@cloudsnorkel/cdk-github-runners.Ec2Runner": {
6030
6029
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -6785,7 +6784,7 @@
6785
6784
  },
6786
6785
  "locationInModule": {
6787
6786
  "filename": "src/providers/ecs.ts",
6788
- "line": 449
6787
+ "line": 453
6789
6788
  },
6790
6789
  "name": "getStepFunctionTask",
6791
6790
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -6814,7 +6813,7 @@
6814
6813
  },
6815
6814
  "locationInModule": {
6816
6815
  "filename": "src/providers/ecs.ts",
6817
- "line": 498
6816
+ "line": 502
6818
6817
  },
6819
6818
  "name": "grantStateMachine",
6820
6819
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -6883,7 +6882,7 @@
6883
6882
  },
6884
6883
  "locationInModule": {
6885
6884
  "filename": "src/providers/ecs.ts",
6886
- "line": 501
6885
+ "line": 505
6887
6886
  },
6888
6887
  "name": "status",
6889
6888
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
@@ -8127,7 +8126,7 @@
8127
8126
  },
8128
8127
  "locationInModule": {
8129
8128
  "filename": "src/runner.ts",
8130
- "line": 218
8129
+ "line": 223
8131
8130
  },
8132
8131
  "parameters": [
8133
8132
  {
@@ -8154,9 +8153,26 @@
8154
8153
  "kind": "class",
8155
8154
  "locationInModule": {
8156
8155
  "filename": "src/runner.ts",
8157
- "line": 199
8156
+ "line": 204
8158
8157
  },
8159
8158
  "methods": [
8159
+ {
8160
+ "docs": {
8161
+ "remarks": "Runner images are rebuilt every week by default. This provides the latest GitHub Runner version and software updates.\n\nIf you want to be sure you are using the latest runner version, you can use this topic to be notified when a build fails.",
8162
+ "stability": "experimental",
8163
+ "summary": "Creates a topic for notifications when a runner image build fails."
8164
+ },
8165
+ "locationInModule": {
8166
+ "filename": "src/runner.ts",
8167
+ "line": 630
8168
+ },
8169
+ "name": "failedImageBuildsTopic",
8170
+ "returns": {
8171
+ "type": {
8172
+ "fqn": "aws-cdk-lib.aws_sns.Topic"
8173
+ }
8174
+ }
8175
+ },
8160
8176
  {
8161
8177
  "docs": {
8162
8178
  "remarks": "A failed runner usually means the runner failed to start and so a job was never executed. It doesn't necessarily mean the job was executed and failed. For that, see {@link metricJobCompleted}.",
@@ -8165,7 +8181,7 @@
8165
8181
  },
8166
8182
  "locationInModule": {
8167
8183
  "filename": "src/runner.ts",
8168
- "line": 607
8184
+ "line": 612
8169
8185
  },
8170
8186
  "name": "metricFailed",
8171
8187
  "parameters": [
@@ -8191,7 +8207,7 @@
8191
8207
  },
8192
8208
  "locationInModule": {
8193
8209
  "filename": "src/runner.ts",
8194
- "line": 552
8210
+ "line": 557
8195
8211
  },
8196
8212
  "name": "metricJobCompleted",
8197
8213
  "parameters": [
@@ -8217,7 +8233,7 @@
8217
8233
  },
8218
8234
  "locationInModule": {
8219
8235
  "filename": "src/runner.ts",
8220
- "line": 598
8236
+ "line": 603
8221
8237
  },
8222
8238
  "name": "metricSucceeded",
8223
8239
  "parameters": [
@@ -8243,7 +8259,7 @@
8243
8259
  },
8244
8260
  "locationInModule": {
8245
8261
  "filename": "src/runner.ts",
8246
- "line": 614
8262
+ "line": 619
8247
8263
  },
8248
8264
  "name": "metricTime",
8249
8265
  "parameters": [
@@ -8272,7 +8288,7 @@
8272
8288
  "immutable": true,
8273
8289
  "locationInModule": {
8274
8290
  "filename": "src/runner.ts",
8275
- "line": 203
8291
+ "line": 208
8276
8292
  },
8277
8293
  "name": "providers",
8278
8294
  "type": {
@@ -8292,7 +8308,7 @@
8292
8308
  "immutable": true,
8293
8309
  "locationInModule": {
8294
8310
  "filename": "src/runner.ts",
8295
- "line": 208
8311
+ "line": 213
8296
8312
  },
8297
8313
  "name": "secrets",
8298
8314
  "type": {
@@ -8306,7 +8322,7 @@
8306
8322
  "immutable": true,
8307
8323
  "locationInModule": {
8308
8324
  "filename": "src/runner.ts",
8309
- "line": 218
8325
+ "line": 223
8310
8326
  },
8311
8327
  "name": "props",
8312
8328
  "optional": true,
@@ -8328,7 +8344,7 @@
8328
8344
  "kind": "interface",
8329
8345
  "locationInModule": {
8330
8346
  "filename": "src/runner.ts",
8331
- "line": 30
8347
+ "line": 35
8332
8348
  },
8333
8349
  "name": "GitHubRunnersProps",
8334
8350
  "properties": [
@@ -8343,7 +8359,7 @@
8343
8359
  "immutable": true,
8344
8360
  "locationInModule": {
8345
8361
  "filename": "src/runner.ts",
8346
- "line": 53
8362
+ "line": 58
8347
8363
  },
8348
8364
  "name": "allowPublicSubnet",
8349
8365
  "optional": true,
@@ -8361,7 +8377,7 @@
8361
8377
  "immutable": true,
8362
8378
  "locationInModule": {
8363
8379
  "filename": "src/runner.ts",
8364
- "line": 83
8380
+ "line": 88
8365
8381
  },
8366
8382
  "name": "extraCertificates",
8367
8383
  "optional": true,
@@ -8380,7 +8396,7 @@
8380
8396
  "immutable": true,
8381
8397
  "locationInModule": {
8382
8398
  "filename": "src/runner.ts",
8383
- "line": 90
8399
+ "line": 95
8384
8400
  },
8385
8401
  "name": "idleTimeout",
8386
8402
  "optional": true,
@@ -8398,7 +8414,7 @@
8398
8414
  "immutable": true,
8399
8415
  "locationInModule": {
8400
8416
  "filename": "src/runner.ts",
8401
- "line": 97
8417
+ "line": 102
8402
8418
  },
8403
8419
  "name": "logOptions",
8404
8420
  "optional": true,
@@ -8417,7 +8433,7 @@
8417
8433
  "immutable": true,
8418
8434
  "locationInModule": {
8419
8435
  "filename": "src/runner.ts",
8420
- "line": 36
8436
+ "line": 41
8421
8437
  },
8422
8438
  "name": "providers",
8423
8439
  "optional": true,
@@ -8440,7 +8456,7 @@
8440
8456
  "immutable": true,
8441
8457
  "locationInModule": {
8442
8458
  "filename": "src/runner.ts",
8443
- "line": 58
8459
+ "line": 63
8444
8460
  },
8445
8461
  "name": "securityGroup",
8446
8462
  "optional": true,
@@ -8459,7 +8475,7 @@
8459
8475
  "immutable": true,
8460
8476
  "locationInModule": {
8461
8477
  "filename": "src/runner.ts",
8462
- "line": 104
8478
+ "line": 109
8463
8479
  },
8464
8480
  "name": "setupAccess",
8465
8481
  "optional": true,
@@ -8478,7 +8494,7 @@
8478
8494
  "immutable": true,
8479
8495
  "locationInModule": {
8480
8496
  "filename": "src/runner.ts",
8481
- "line": 123
8497
+ "line": 128
8482
8498
  },
8483
8499
  "name": "statusAccess",
8484
8500
  "optional": true,
@@ -8496,7 +8512,7 @@
8496
8512
  "immutable": true,
8497
8513
  "locationInModule": {
8498
8514
  "filename": "src/runner.ts",
8499
- "line": 41
8515
+ "line": 46
8500
8516
  },
8501
8517
  "name": "vpc",
8502
8518
  "optional": true,
@@ -8514,7 +8530,7 @@
8514
8530
  "immutable": true,
8515
8531
  "locationInModule": {
8516
8532
  "filename": "src/runner.ts",
8517
- "line": 46
8533
+ "line": 51
8518
8534
  },
8519
8535
  "name": "vpcSubnets",
8520
8536
  "optional": true,
@@ -8533,7 +8549,7 @@
8533
8549
  "immutable": true,
8534
8550
  "locationInModule": {
8535
8551
  "filename": "src/runner.ts",
8536
- "line": 116
8552
+ "line": 121
8537
8553
  },
8538
8554
  "name": "webhookAccess",
8539
8555
  "optional": true,
@@ -8604,8 +8620,8 @@
8604
8620
  "fqn": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
8605
8621
  "kind": "interface",
8606
8622
  "locationInModule": {
8607
- "filename": "src/providers/image-builders/common.ts",
8608
- "line": 257
8623
+ "filename": "src/image-builders/common.ts",
8624
+ "line": 259
8609
8625
  },
8610
8626
  "methods": [
8611
8627
  {
@@ -8616,8 +8632,8 @@
8616
8632
  "summary": "Build and return an AMI with GitHub Runner installed in it."
8617
8633
  },
8618
8634
  "locationInModule": {
8619
- "filename": "src/providers/image-builders/common.ts",
8620
- "line": 276
8635
+ "filename": "src/image-builders/common.ts",
8636
+ "line": 278
8621
8637
  },
8622
8638
  "name": "bindAmi",
8623
8639
  "returns": {
@@ -8634,8 +8650,8 @@
8634
8650
  "summary": "Build and return a Docker image with GitHub Runner installed in it."
8635
8651
  },
8636
8652
  "locationInModule": {
8637
- "filename": "src/providers/image-builders/common.ts",
8638
- "line": 267
8653
+ "filename": "src/image-builders/common.ts",
8654
+ "line": 269
8639
8655
  },
8640
8656
  "name": "bindDockerImage",
8641
8657
  "returns": {
@@ -8646,7 +8662,7 @@
8646
8662
  }
8647
8663
  ],
8648
8664
  "name": "IRunnerImageBuilder",
8649
- "symbolId": "src/providers/image-builders/common:IRunnerImageBuilder"
8665
+ "symbolId": "src/image-builders/common:IRunnerImageBuilder"
8650
8666
  },
8651
8667
  "@cloudsnorkel/cdk-github-runners.IRunnerImageStatus": {
8652
8668
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -9031,8 +9047,8 @@
9031
9047
  "fqn": "@cloudsnorkel/cdk-github-runners.ImageBuilderAsset",
9032
9048
  "kind": "interface",
9033
9049
  "locationInModule": {
9034
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9035
- "line": 41
9050
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9051
+ "line": 44
9036
9052
  },
9037
9053
  "name": "ImageBuilderAsset",
9038
9054
  "properties": [
@@ -9044,8 +9060,8 @@
9044
9060
  },
9045
9061
  "immutable": true,
9046
9062
  "locationInModule": {
9047
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9048
- "line": 50
9063
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9064
+ "line": 53
9049
9065
  },
9050
9066
  "name": "asset",
9051
9067
  "type": {
@@ -9060,8 +9076,8 @@
9060
9076
  },
9061
9077
  "immutable": true,
9062
9078
  "locationInModule": {
9063
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9064
- "line": 45
9079
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9080
+ "line": 48
9065
9081
  },
9066
9082
  "name": "path",
9067
9083
  "type": {
@@ -9069,14 +9085,14 @@
9069
9085
  }
9070
9086
  }
9071
9087
  ],
9072
- "symbolId": "src/providers/image-builders/aws-image-builder/builder:ImageBuilderAsset"
9088
+ "symbolId": "src/image-builders/aws-image-builder/builder:ImageBuilderAsset"
9073
9089
  },
9074
9090
  "@cloudsnorkel/cdk-github-runners.ImageBuilderComponent": {
9075
9091
  "assembly": "@cloudsnorkel/cdk-github-runners",
9076
9092
  "base": "aws-cdk-lib.Resource",
9077
9093
  "docs": {
9078
9094
  "deprecated": "Use `RunnerImageComponent` instead as this be internal soon.",
9079
- "remarks": "Components are the building blocks of images built by Image Builder.\n\nExample:\n\n```\nnew ImageBuilderComponent(this, 'AWS CLI', {\n platform: 'Windows',\n displayName: 'AWS CLI',\n description: 'Install latest version of AWS CLI',\n commands: [\n '$ErrorActionPreference = \\'Stop\\'',\n 'Start-Process msiexec.exe -Wait -ArgumentList \\'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\\'',\n ],\n}\n```",
9095
+ "remarks": "Components are the building blocks of images built by Image Builder.\n\nExample:\n\n```\nnew ImageBuilderComponent(this, 'AWS CLI', {\n platform: 'Windows',\n displayName: 'AWS CLI',\n description: 'Install latest version of AWS CLI',\n commands: [\n '$p = Start-Process msiexec.exe -PassThru -Wait -ArgumentList \\'/i https://awscli.amazonaws.com/AWSCLIV2.msi /qn\\'',\n 'if ($p.ExitCode -ne 0) { throw \"Exit code is $p.ExitCode\" }',\n ],\n}\n```",
9080
9096
  "stability": "deprecated",
9081
9097
  "summary": "Components are a set of commands to run and optional files to add to an image."
9082
9098
  },
@@ -9086,8 +9102,8 @@
9086
9102
  "stability": "deprecated"
9087
9103
  },
9088
9104
  "locationInModule": {
9089
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9090
- "line": 117
9105
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9106
+ "line": 127
9091
9107
  },
9092
9108
  "parameters": [
9093
9109
  {
@@ -9112,8 +9128,8 @@
9112
9128
  },
9113
9129
  "kind": "class",
9114
9130
  "locationInModule": {
9115
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9116
- "line": 104
9131
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9132
+ "line": 114
9117
9133
  },
9118
9134
  "methods": [
9119
9135
  {
@@ -9122,8 +9138,8 @@
9122
9138
  "summary": "Grants read permissions to the principal on the assets buckets."
9123
9139
  },
9124
9140
  "locationInModule": {
9125
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9126
- "line": 211
9141
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9142
+ "line": 229
9127
9143
  },
9128
9144
  "name": "grantAssetsRead",
9129
9145
  "parameters": [
@@ -9140,8 +9156,8 @@
9140
9156
  "stability": "deprecated"
9141
9157
  },
9142
9158
  "locationInModule": {
9143
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9144
- "line": 217
9159
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9160
+ "line": 235
9145
9161
  },
9146
9162
  "name": "prefixCommandsWithErrorHandling",
9147
9163
  "parameters": [
@@ -9179,7 +9195,7 @@
9179
9195
  "stability": "deprecated"
9180
9196
  },
9181
9197
  "locationInModule": {
9182
- "filename": "src/providers/image-builders/aws-image-builder/common.ts",
9198
+ "filename": "src/image-builders/aws-image-builder/common.ts",
9183
9199
  "line": 15
9184
9200
  },
9185
9201
  "name": "version",
@@ -9220,8 +9236,8 @@
9220
9236
  },
9221
9237
  "immutable": true,
9222
9238
  "locationInModule": {
9223
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9224
- "line": 108
9239
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9240
+ "line": 118
9225
9241
  },
9226
9242
  "name": "arn",
9227
9243
  "type": {
@@ -9235,8 +9251,8 @@
9235
9251
  },
9236
9252
  "immutable": true,
9237
9253
  "locationInModule": {
9238
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9239
- "line": 113
9254
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9255
+ "line": 123
9240
9256
  },
9241
9257
  "name": "platform",
9242
9258
  "type": {
@@ -9244,7 +9260,7 @@
9244
9260
  }
9245
9261
  }
9246
9262
  ],
9247
- "symbolId": "src/providers/image-builders/aws-image-builder/builder:ImageBuilderComponent"
9263
+ "symbolId": "src/image-builders/aws-image-builder/builder:ImageBuilderComponent"
9248
9264
  },
9249
9265
  "@cloudsnorkel/cdk-github-runners.ImageBuilderComponentProperties": {
9250
9266
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -9256,8 +9272,8 @@
9256
9272
  "fqn": "@cloudsnorkel/cdk-github-runners.ImageBuilderComponentProperties",
9257
9273
  "kind": "interface",
9258
9274
  "locationInModule": {
9259
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9260
- "line": 56
9275
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9276
+ "line": 59
9261
9277
  },
9262
9278
  "name": "ImageBuilderComponentProperties",
9263
9279
  "properties": [
@@ -9270,8 +9286,8 @@
9270
9286
  },
9271
9287
  "immutable": true,
9272
9288
  "locationInModule": {
9273
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9274
- "line": 77
9289
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9290
+ "line": 80
9275
9291
  },
9276
9292
  "name": "commands",
9277
9293
  "type": {
@@ -9291,8 +9307,8 @@
9291
9307
  },
9292
9308
  "immutable": true,
9293
9309
  "locationInModule": {
9294
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9295
- "line": 70
9310
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9311
+ "line": 73
9296
9312
  },
9297
9313
  "name": "description",
9298
9314
  "type": {
@@ -9307,8 +9323,8 @@
9307
9323
  },
9308
9324
  "immutable": true,
9309
9325
  "locationInModule": {
9310
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9311
- "line": 65
9326
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9327
+ "line": 68
9312
9328
  },
9313
9329
  "name": "displayName",
9314
9330
  "type": {
@@ -9324,8 +9340,8 @@
9324
9340
  },
9325
9341
  "immutable": true,
9326
9342
  "locationInModule": {
9327
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9328
- "line": 60
9343
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9344
+ "line": 63
9329
9345
  },
9330
9346
  "name": "platform",
9331
9347
  "type": {
@@ -9340,8 +9356,8 @@
9340
9356
  },
9341
9357
  "immutable": true,
9342
9358
  "locationInModule": {
9343
- "filename": "src/providers/image-builders/aws-image-builder/builder.ts",
9344
- "line": 82
9359
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9360
+ "line": 85
9345
9361
  },
9346
9362
  "name": "assets",
9347
9363
  "optional": true,
@@ -9353,9 +9369,27 @@
9353
9369
  "kind": "array"
9354
9370
  }
9355
9371
  }
9372
+ },
9373
+ {
9374
+ "abstract": true,
9375
+ "docs": {
9376
+ "default": "false",
9377
+ "stability": "experimental",
9378
+ "summary": "Require a reboot after installing this component."
9379
+ },
9380
+ "immutable": true,
9381
+ "locationInModule": {
9382
+ "filename": "src/image-builders/aws-image-builder/builder.ts",
9383
+ "line": 92
9384
+ },
9385
+ "name": "reboot",
9386
+ "optional": true,
9387
+ "type": {
9388
+ "primitive": "boolean"
9389
+ }
9356
9390
  }
9357
9391
  ],
9358
- "symbolId": "src/providers/image-builders/aws-image-builder/builder:ImageBuilderComponentProperties"
9392
+ "symbolId": "src/image-builders/aws-image-builder/builder:ImageBuilderComponentProperties"
9359
9393
  },
9360
9394
  "@cloudsnorkel/cdk-github-runners.LambdaAccess": {
9361
9395
  "abstract": true,
@@ -10140,7 +10174,7 @@
10140
10174
  },
10141
10175
  "kind": "class",
10142
10176
  "locationInModule": {
10143
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10177
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10144
10178
  "line": 11
10145
10179
  },
10146
10180
  "methods": [
@@ -10149,8 +10183,8 @@
10149
10183
  "stability": "deprecated"
10150
10184
  },
10151
10185
  "locationInModule": {
10152
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10153
- "line": 53
10186
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10187
+ "line": 51
10154
10188
  },
10155
10189
  "name": "awsCli",
10156
10190
  "parameters": [
@@ -10185,8 +10219,8 @@
10185
10219
  "stability": "deprecated"
10186
10220
  },
10187
10221
  "locationInModule": {
10188
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10189
- "line": 140
10222
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10223
+ "line": 134
10190
10224
  },
10191
10225
  "name": "docker",
10192
10226
  "parameters": [
@@ -10221,8 +10255,8 @@
10221
10255
  "stability": "deprecated"
10222
10256
  },
10223
10257
  "locationInModule": {
10224
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10225
- "line": 159
10258
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10259
+ "line": 152
10226
10260
  },
10227
10261
  "name": "extraCertificates",
10228
10262
  "parameters": [
@@ -10257,8 +10291,8 @@
10257
10291
  "stability": "deprecated"
10258
10292
  },
10259
10293
  "locationInModule": {
10260
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10261
- "line": 93
10294
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10295
+ "line": 89
10262
10296
  },
10263
10297
  "name": "git",
10264
10298
  "parameters": [
@@ -10293,8 +10327,8 @@
10293
10327
  "stability": "deprecated"
10294
10328
  },
10295
10329
  "locationInModule": {
10296
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10297
- "line": 77
10330
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10331
+ "line": 74
10298
10332
  },
10299
10333
  "name": "githubCli",
10300
10334
  "parameters": [
@@ -10329,8 +10363,8 @@
10329
10363
  "stability": "deprecated"
10330
10364
  },
10331
10365
  "locationInModule": {
10332
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10333
- "line": 107
10366
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10367
+ "line": 102
10334
10368
  },
10335
10369
  "name": "githubRunner",
10336
10370
  "parameters": [
@@ -10371,7 +10405,7 @@
10371
10405
  "stability": "deprecated"
10372
10406
  },
10373
10407
  "locationInModule": {
10374
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10408
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10375
10409
  "line": 12
10376
10410
  },
10377
10411
  "name": "requiredPackages",
@@ -10407,8 +10441,8 @@
10407
10441
  "stability": "deprecated"
10408
10442
  },
10409
10443
  "locationInModule": {
10410
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/linux-components.ts",
10411
- "line": 38
10444
+ "filename": "src/image-builders/aws-image-builder/deprecated/linux-components.ts",
10445
+ "line": 37
10412
10446
  },
10413
10447
  "name": "runnerUser",
10414
10448
  "parameters": [
@@ -10440,7 +10474,7 @@
10440
10474
  }
10441
10475
  ],
10442
10476
  "name": "LinuxUbuntuComponents",
10443
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/linux-components:LinuxUbuntuComponents"
10477
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/linux-components:LinuxUbuntuComponents"
10444
10478
  },
10445
10479
  "@cloudsnorkel/cdk-github-runners.LogOptions": {
10446
10480
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -10453,7 +10487,7 @@
10453
10487
  "kind": "interface",
10454
10488
  "locationInModule": {
10455
10489
  "filename": "src/runner.ts",
10456
- "line": 129
10490
+ "line": 134
10457
10491
  },
10458
10492
  "name": "LogOptions",
10459
10493
  "properties": [
@@ -10467,7 +10501,7 @@
10467
10501
  "immutable": true,
10468
10502
  "locationInModule": {
10469
10503
  "filename": "src/runner.ts",
10470
- "line": 140
10504
+ "line": 145
10471
10505
  },
10472
10506
  "name": "includeExecutionData",
10473
10507
  "optional": true,
@@ -10485,7 +10519,7 @@
10485
10519
  "immutable": true,
10486
10520
  "locationInModule": {
10487
10521
  "filename": "src/runner.ts",
10488
- "line": 147
10522
+ "line": 152
10489
10523
  },
10490
10524
  "name": "level",
10491
10525
  "optional": true,
@@ -10502,7 +10536,7 @@
10502
10536
  "immutable": true,
10503
10537
  "locationInModule": {
10504
10538
  "filename": "src/runner.ts",
10505
- "line": 133
10539
+ "line": 138
10506
10540
  },
10507
10541
  "name": "logGroupName",
10508
10542
  "optional": true,
@@ -10521,7 +10555,7 @@
10521
10555
  "immutable": true,
10522
10556
  "locationInModule": {
10523
10557
  "filename": "src/runner.ts",
10524
- "line": 156
10558
+ "line": 161
10525
10559
  },
10526
10560
  "name": "logRetention",
10527
10561
  "optional": true,
@@ -11012,7 +11046,7 @@
11012
11046
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImageAsset",
11013
11047
  "kind": "interface",
11014
11048
  "locationInModule": {
11015
- "filename": "src/providers/image-builders/common.ts",
11049
+ "filename": "src/image-builders/common.ts",
11016
11050
  "line": 119
11017
11051
  },
11018
11052
  "name": "RunnerImageAsset",
@@ -11026,7 +11060,7 @@
11026
11060
  },
11027
11061
  "immutable": true,
11028
11062
  "locationInModule": {
11029
- "filename": "src/providers/image-builders/common.ts",
11063
+ "filename": "src/image-builders/common.ts",
11030
11064
  "line": 123
11031
11065
  },
11032
11066
  "name": "source",
@@ -11042,7 +11076,7 @@
11042
11076
  },
11043
11077
  "immutable": true,
11044
11078
  "locationInModule": {
11045
- "filename": "src/providers/image-builders/common.ts",
11079
+ "filename": "src/image-builders/common.ts",
11046
11080
  "line": 128
11047
11081
  },
11048
11082
  "name": "target",
@@ -11051,7 +11085,7 @@
11051
11085
  }
11052
11086
  }
11053
11087
  ],
11054
- "symbolId": "src/providers/image-builders/common:RunnerImageAsset"
11088
+ "symbolId": "src/image-builders/common:RunnerImageAsset"
11055
11089
  },
11056
11090
  "@cloudsnorkel/cdk-github-runners.RunnerImageBuilder": {
11057
11091
  "abstract": true,
@@ -11068,8 +11102,8 @@
11068
11102
  "stability": "experimental"
11069
11103
  },
11070
11104
  "locationInModule": {
11071
- "filename": "src/providers/image-builders/common.ts",
11072
- "line": 285
11105
+ "filename": "src/image-builders/common.ts",
11106
+ "line": 287
11073
11107
  },
11074
11108
  "parameters": [
11075
11109
  {
@@ -11101,7 +11135,7 @@
11101
11135
  ],
11102
11136
  "kind": "class",
11103
11137
  "locationInModule": {
11104
- "filename": "src/providers/image-builders/api.ts",
11138
+ "filename": "src/image-builders/api.ts",
11105
11139
  "line": 15
11106
11140
  },
11107
11141
  "methods": [
@@ -11112,7 +11146,7 @@
11112
11146
  "summary": "Create a new image builder based on the provided properties."
11113
11147
  },
11114
11148
  "locationInModule": {
11115
- "filename": "src/providers/image-builders/api.ts",
11149
+ "filename": "src/image-builders/api.ts",
11116
11150
  "line": 19
11117
11151
  },
11118
11152
  "name": "new",
@@ -11151,8 +11185,8 @@
11151
11185
  "summary": "Add a component to the image builder."
11152
11186
  },
11153
11187
  "locationInModule": {
11154
- "filename": "src/providers/image-builders/common.ts",
11155
- "line": 305
11188
+ "filename": "src/image-builders/common.ts",
11189
+ "line": 307
11156
11190
  },
11157
11191
  "name": "addComponent",
11158
11192
  "parameters": [
@@ -11175,8 +11209,8 @@
11175
11209
  "summary": "Build and return an AMI with GitHub Runner installed in it."
11176
11210
  },
11177
11211
  "locationInModule": {
11178
- "filename": "src/providers/image-builders/common.ts",
11179
- "line": 295
11212
+ "filename": "src/image-builders/common.ts",
11213
+ "line": 297
11180
11214
  },
11181
11215
  "name": "bindAmi",
11182
11216
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
@@ -11194,8 +11228,8 @@
11194
11228
  "summary": "Build and return a Docker image with GitHub Runner installed in it."
11195
11229
  },
11196
11230
  "locationInModule": {
11197
- "filename": "src/providers/image-builders/common.ts",
11198
- "line": 293
11231
+ "filename": "src/image-builders/common.ts",
11232
+ "line": 295
11199
11233
  },
11200
11234
  "name": "bindDockerImage",
11201
11235
  "overrides": "@cloudsnorkel/cdk-github-runners.IRunnerImageBuilder",
@@ -11212,8 +11246,8 @@
11212
11246
  "summary": "Remove a component from the image builder."
11213
11247
  },
11214
11248
  "locationInModule": {
11215
- "filename": "src/providers/image-builders/common.ts",
11216
- "line": 314
11249
+ "filename": "src/image-builders/common.ts",
11250
+ "line": 316
11217
11251
  },
11218
11252
  "name": "removeComponent",
11219
11253
  "parameters": [
@@ -11239,8 +11273,8 @@
11239
11273
  },
11240
11274
  "immutable": true,
11241
11275
  "locationInModule": {
11242
- "filename": "src/providers/image-builders/common.ts",
11243
- "line": 297
11276
+ "filename": "src/image-builders/common.ts",
11277
+ "line": 299
11244
11278
  },
11245
11279
  "name": "connections",
11246
11280
  "overrides": "aws-cdk-lib.aws_ec2.IConnectable",
@@ -11256,8 +11290,8 @@
11256
11290
  },
11257
11291
  "immutable": true,
11258
11292
  "locationInModule": {
11259
- "filename": "src/providers/image-builders/common.ts",
11260
- "line": 298
11293
+ "filename": "src/image-builders/common.ts",
11294
+ "line": 300
11261
11295
  },
11262
11296
  "name": "grantPrincipal",
11263
11297
  "overrides": "aws-cdk-lib.aws_iam.IGrantable",
@@ -11270,8 +11304,8 @@
11270
11304
  "stability": "experimental"
11271
11305
  },
11272
11306
  "locationInModule": {
11273
- "filename": "src/providers/image-builders/common.ts",
11274
- "line": 283
11307
+ "filename": "src/image-builders/common.ts",
11308
+ "line": 285
11275
11309
  },
11276
11310
  "name": "components",
11277
11311
  "protected": true,
@@ -11285,7 +11319,7 @@
11285
11319
  }
11286
11320
  }
11287
11321
  ],
11288
- "symbolId": "src/providers/image-builders/api:RunnerImageBuilder"
11322
+ "symbolId": "src/image-builders/api:RunnerImageBuilder"
11289
11323
  },
11290
11324
  "@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps": {
11291
11325
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -11296,7 +11330,7 @@
11296
11330
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImageBuilderProps",
11297
11331
  "kind": "interface",
11298
11332
  "locationInModule": {
11299
- "filename": "src/providers/image-builders/common.ts",
11333
+ "filename": "src/image-builders/common.ts",
11300
11334
  "line": 131
11301
11335
  },
11302
11336
  "name": "RunnerImageBuilderProps",
@@ -11310,7 +11344,7 @@
11310
11344
  },
11311
11345
  "immutable": true,
11312
11346
  "locationInModule": {
11313
- "filename": "src/providers/image-builders/common.ts",
11347
+ "filename": "src/image-builders/common.ts",
11314
11348
  "line": 137
11315
11349
  },
11316
11350
  "name": "architecture",
@@ -11328,8 +11362,8 @@
11328
11362
  },
11329
11363
  "immutable": true,
11330
11364
  "locationInModule": {
11331
- "filename": "src/providers/image-builders/common.ts",
11332
- "line": 233
11365
+ "filename": "src/image-builders/common.ts",
11366
+ "line": 235
11333
11367
  },
11334
11368
  "name": "awsImageBuilderOptions",
11335
11369
  "optional": true,
@@ -11340,14 +11374,15 @@
11340
11374
  {
11341
11375
  "abstract": true,
11342
11376
  "docs": {
11343
- "default": "latest Ubuntu 20.04 AMI for Os.LINUX_UBUNTU, latest Amazon Linux 2 AMI for Os.LINUX_AMAZON_2, latest Windows Server 2022 AMI for Os.WINDOWS",
11377
+ "default": "latest Ubuntu 22.04 AMI for Os.LINUX_UBUNTU, latest Amazon Linux 2 AMI for Os.LINUX_AMAZON_2, latest Windows Server 2022 AMI for Os.WINDOWS",
11378
+ "remarks": "This can be an actual AMI or an AWS Image Builder ARN that points to the latest AMI. For example `arn:aws:imagebuilder:us-east-1:aws:image/ubuntu-server-22-lts-x86/x.x.x` would always use the latest version of Ubuntu 22.04 in each build. If you want a specific version, you can replace `x.x.x` with that version.",
11344
11379
  "stability": "experimental",
11345
11380
  "summary": "Base AMI from which runner AMIs will be built."
11346
11381
  },
11347
11382
  "immutable": true,
11348
11383
  "locationInModule": {
11349
- "filename": "src/providers/image-builders/common.ts",
11350
- "line": 158
11384
+ "filename": "src/image-builders/common.ts",
11385
+ "line": 160
11351
11386
  },
11352
11387
  "name": "baseAmi",
11353
11388
  "optional": true,
@@ -11364,7 +11399,7 @@
11364
11399
  },
11365
11400
  "immutable": true,
11366
11401
  "locationInModule": {
11367
- "filename": "src/providers/image-builders/common.ts",
11402
+ "filename": "src/image-builders/common.ts",
11368
11403
  "line": 151
11369
11404
  },
11370
11405
  "name": "baseDockerImage",
@@ -11381,8 +11416,8 @@
11381
11416
  },
11382
11417
  "immutable": true,
11383
11418
  "locationInModule": {
11384
- "filename": "src/providers/image-builders/common.ts",
11385
- "line": 223
11419
+ "filename": "src/image-builders/common.ts",
11420
+ "line": 225
11386
11421
  },
11387
11422
  "name": "builderType",
11388
11423
  "optional": true,
@@ -11399,8 +11434,8 @@
11399
11434
  },
11400
11435
  "immutable": true,
11401
11436
  "locationInModule": {
11402
- "filename": "src/providers/image-builders/common.ts",
11403
- "line": 228
11437
+ "filename": "src/image-builders/common.ts",
11438
+ "line": 230
11404
11439
  },
11405
11440
  "name": "codeBuildOptions",
11406
11441
  "optional": true,
@@ -11417,8 +11452,8 @@
11417
11452
  },
11418
11453
  "immutable": true,
11419
11454
  "locationInModule": {
11420
- "filename": "src/providers/image-builders/common.ts",
11421
- "line": 172
11455
+ "filename": "src/image-builders/common.ts",
11456
+ "line": 174
11422
11457
  },
11423
11458
  "name": "components",
11424
11459
  "optional": true,
@@ -11441,8 +11476,8 @@
11441
11476
  },
11442
11477
  "immutable": true,
11443
11478
  "locationInModule": {
11444
- "filename": "src/providers/image-builders/common.ts",
11445
- "line": 218
11479
+ "filename": "src/image-builders/common.ts",
11480
+ "line": 220
11446
11481
  },
11447
11482
  "name": "logRemovalPolicy",
11448
11483
  "optional": true,
@@ -11460,8 +11495,8 @@
11460
11495
  },
11461
11496
  "immutable": true,
11462
11497
  "locationInModule": {
11463
- "filename": "src/providers/image-builders/common.ts",
11464
- "line": 209
11498
+ "filename": "src/image-builders/common.ts",
11499
+ "line": 211
11465
11500
  },
11466
11501
  "name": "logRetention",
11467
11502
  "optional": true,
@@ -11478,7 +11513,7 @@
11478
11513
  },
11479
11514
  "immutable": true,
11480
11515
  "locationInModule": {
11481
- "filename": "src/providers/image-builders/common.ts",
11516
+ "filename": "src/image-builders/common.ts",
11482
11517
  "line": 144
11483
11518
  },
11484
11519
  "name": "os",
@@ -11497,8 +11532,8 @@
11497
11532
  },
11498
11533
  "immutable": true,
11499
11534
  "locationInModule": {
11500
- "filename": "src/providers/image-builders/common.ts",
11501
- "line": 181
11535
+ "filename": "src/image-builders/common.ts",
11536
+ "line": 183
11502
11537
  },
11503
11538
  "name": "rebuildInterval",
11504
11539
  "optional": true,
@@ -11515,8 +11550,8 @@
11515
11550
  },
11516
11551
  "immutable": true,
11517
11552
  "locationInModule": {
11518
- "filename": "src/providers/image-builders/common.ts",
11519
- "line": 165
11553
+ "filename": "src/image-builders/common.ts",
11554
+ "line": 167
11520
11555
  },
11521
11556
  "name": "runnerVersion",
11522
11557
  "optional": true,
@@ -11532,8 +11567,8 @@
11532
11567
  },
11533
11568
  "immutable": true,
11534
11569
  "locationInModule": {
11535
- "filename": "src/providers/image-builders/common.ts",
11536
- "line": 193
11570
+ "filename": "src/image-builders/common.ts",
11571
+ "line": 195
11537
11572
  },
11538
11573
  "name": "securityGroups",
11539
11574
  "optional": true,
@@ -11555,8 +11590,8 @@
11555
11590
  },
11556
11591
  "immutable": true,
11557
11592
  "locationInModule": {
11558
- "filename": "src/providers/image-builders/common.ts",
11559
- "line": 200
11593
+ "filename": "src/image-builders/common.ts",
11594
+ "line": 202
11560
11595
  },
11561
11596
  "name": "subnetSelection",
11562
11597
  "optional": true,
@@ -11573,8 +11608,8 @@
11573
11608
  },
11574
11609
  "immutable": true,
11575
11610
  "locationInModule": {
11576
- "filename": "src/providers/image-builders/common.ts",
11577
- "line": 188
11611
+ "filename": "src/image-builders/common.ts",
11612
+ "line": 190
11578
11613
  },
11579
11614
  "name": "vpc",
11580
11615
  "optional": true,
@@ -11583,7 +11618,7 @@
11583
11618
  }
11584
11619
  }
11585
11620
  ],
11586
- "symbolId": "src/providers/image-builders/common:RunnerImageBuilderProps"
11621
+ "symbolId": "src/image-builders/common:RunnerImageBuilderProps"
11587
11622
  },
11588
11623
  "@cloudsnorkel/cdk-github-runners.RunnerImageBuilderType": {
11589
11624
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -11593,8 +11628,8 @@
11593
11628
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImageBuilderType",
11594
11629
  "kind": "enum",
11595
11630
  "locationInModule": {
11596
- "filename": "src/providers/image-builders/common.ts",
11597
- "line": 236
11631
+ "filename": "src/image-builders/common.ts",
11632
+ "line": 238
11598
11633
  },
11599
11634
  "members": [
11600
11635
  {
@@ -11615,7 +11650,7 @@
11615
11650
  }
11616
11651
  ],
11617
11652
  "name": "RunnerImageBuilderType",
11618
- "symbolId": "src/providers/image-builders/common:RunnerImageBuilderType"
11653
+ "symbolId": "src/image-builders/common:RunnerImageBuilderType"
11619
11654
  },
11620
11655
  "@cloudsnorkel/cdk-github-runners.RunnerImageComponent": {
11621
11656
  "abstract": true,
@@ -11633,7 +11668,7 @@
11633
11668
  },
11634
11669
  "kind": "class",
11635
11670
  "locationInModule": {
11636
- "filename": "src/providers/image-builders/components.ts",
11671
+ "filename": "src/image-builders/components.ts",
11637
11672
  "line": 39
11638
11673
  },
11639
11674
  "methods": [
@@ -11643,8 +11678,8 @@
11643
11678
  "summary": "A component to install the AWS CLI."
11644
11679
  },
11645
11680
  "locationInModule": {
11646
- "filename": "src/providers/image-builders/components.ts",
11647
- "line": 148
11681
+ "filename": "src/image-builders/components.ts",
11682
+ "line": 149
11648
11683
  },
11649
11684
  "name": "awsCli",
11650
11685
  "returns": {
@@ -11661,7 +11696,7 @@
11661
11696
  "summary": "Define a custom component that can run commands in the image, copy files into the image, and run some Docker commands."
11662
11697
  },
11663
11698
  "locationInModule": {
11664
- "filename": "src/providers/image-builders/components.ts",
11699
+ "filename": "src/image-builders/components.ts",
11665
11700
  "line": 49
11666
11701
  },
11667
11702
  "name": "custom",
@@ -11682,13 +11717,13 @@
11682
11717
  },
11683
11718
  {
11684
11719
  "docs": {
11685
- "remarks": "On Windows this installs Docker Desktop.",
11720
+ "remarks": "On Windows this sets up dockerd for Windows containers without Docker Desktop. If you need Linux containers on Windows, you'll need to install Docker Desktop which doesn't seem to play well with servers (PRs welcome).",
11686
11721
  "stability": "experimental",
11687
11722
  "summary": "A component to install Docker."
11688
11723
  },
11689
11724
  "locationInModule": {
11690
- "filename": "src/providers/image-builders/components.ts",
11691
- "line": 330
11725
+ "filename": "src/image-builders/components.ts",
11726
+ "line": 336
11692
11727
  },
11693
11728
  "name": "docker",
11694
11729
  "returns": {
@@ -11704,8 +11739,8 @@
11704
11739
  "summary": "A component to install Docker-in-Docker."
11705
11740
  },
11706
11741
  "locationInModule": {
11707
- "filename": "src/providers/image-builders/components.ts",
11708
- "line": 371
11742
+ "filename": "src/image-builders/components.ts",
11743
+ "line": 398
11709
11744
  },
11710
11745
  "name": "dockerInDocker",
11711
11746
  "returns": {
@@ -11722,8 +11757,8 @@
11722
11757
  "summary": "A component to add a trusted certificate authority."
11723
11758
  },
11724
11759
  "locationInModule": {
11725
- "filename": "src/providers/image-builders/components.ts",
11726
- "line": 420
11760
+ "filename": "src/image-builders/components.ts",
11761
+ "line": 447
11727
11762
  },
11728
11763
  "name": "extraCertificates",
11729
11764
  "parameters": [
@@ -11759,8 +11794,8 @@
11759
11794
  "summary": "A component to install the GitHub CLI."
11760
11795
  },
11761
11796
  "locationInModule": {
11762
- "filename": "src/providers/image-builders/components.ts",
11763
- "line": 220
11797
+ "filename": "src/image-builders/components.ts",
11798
+ "line": 223
11764
11799
  },
11765
11800
  "name": "git",
11766
11801
  "returns": {
@@ -11776,8 +11811,8 @@
11776
11811
  "summary": "A component to install the GitHub CLI."
11777
11812
  },
11778
11813
  "locationInModule": {
11779
- "filename": "src/providers/image-builders/components.ts",
11780
- "line": 183
11814
+ "filename": "src/image-builders/components.ts",
11815
+ "line": 185
11781
11816
  },
11782
11817
  "name": "githubCli",
11783
11818
  "returns": {
@@ -11794,8 +11829,8 @@
11794
11829
  "summary": "A component to install the GitHub Actions Runner."
11795
11830
  },
11796
11831
  "locationInModule": {
11797
- "filename": "src/providers/image-builders/components.ts",
11798
- "line": 259
11832
+ "filename": "src/image-builders/components.ts",
11833
+ "line": 263
11799
11834
  },
11800
11835
  "name": "githubRunner",
11801
11836
  "parameters": [
@@ -11823,8 +11858,8 @@
11823
11858
  "summary": "A component to set up the required Lambda entrypoint for Lambda runners."
11824
11859
  },
11825
11860
  "locationInModule": {
11826
- "filename": "src/providers/image-builders/components.ts",
11827
- "line": 470
11861
+ "filename": "src/image-builders/components.ts",
11862
+ "line": 497
11828
11863
  },
11829
11864
  "name": "lambdaEntrypoint",
11830
11865
  "returns": {
@@ -11840,7 +11875,7 @@
11840
11875
  "summary": "A component to install the required packages for the runner."
11841
11876
  },
11842
11877
  "locationInModule": {
11843
- "filename": "src/providers/image-builders/components.ts",
11878
+ "filename": "src/image-builders/components.ts",
11844
11879
  "line": 74
11845
11880
  },
11846
11881
  "name": "requiredPackages",
@@ -11857,8 +11892,8 @@
11857
11892
  "summary": "A component to prepare the required runner user."
11858
11893
  },
11859
11894
  "locationInModule": {
11860
- "filename": "src/providers/image-builders/components.ts",
11861
- "line": 116
11895
+ "filename": "src/image-builders/components.ts",
11896
+ "line": 117
11862
11897
  },
11863
11898
  "name": "runnerUser",
11864
11899
  "returns": {
@@ -11875,8 +11910,8 @@
11875
11910
  "summary": "Returns assets to copy into the built image."
11876
11911
  },
11877
11912
  "locationInModule": {
11878
- "filename": "src/providers/image-builders/components.ts",
11879
- "line": 519
11913
+ "filename": "src/image-builders/components.ts",
11914
+ "line": 546
11880
11915
  },
11881
11916
  "name": "getAssets",
11882
11917
  "parameters": [
@@ -11912,8 +11947,8 @@
11912
11947
  "summary": "Returns commands to run to in built image."
11913
11948
  },
11914
11949
  "locationInModule": {
11915
- "filename": "src/providers/image-builders/components.ts",
11916
- "line": 514
11950
+ "filename": "src/image-builders/components.ts",
11951
+ "line": 541
11917
11952
  },
11918
11953
  "name": "getCommands",
11919
11954
  "parameters": [
@@ -11948,8 +11983,8 @@
11948
11983
  "summary": "Returns Docker commands to run to in built image."
11949
11984
  },
11950
11985
  "locationInModule": {
11951
- "filename": "src/providers/image-builders/components.ts",
11952
- "line": 528
11986
+ "filename": "src/image-builders/components.ts",
11987
+ "line": 555
11953
11988
  },
11954
11989
  "name": "getDockerCommands",
11955
11990
  "parameters": [
@@ -11976,6 +12011,36 @@
11976
12011
  }
11977
12012
  }
11978
12013
  }
12014
+ },
12015
+ {
12016
+ "docs": {
12017
+ "stability": "experimental",
12018
+ "summary": "Returns true if the image builder should be rebooted after this component is installed."
12019
+ },
12020
+ "locationInModule": {
12021
+ "filename": "src/image-builders/components.ts",
12022
+ "line": 562
12023
+ },
12024
+ "name": "shouldReboot",
12025
+ "parameters": [
12026
+ {
12027
+ "name": "_os",
12028
+ "type": {
12029
+ "fqn": "@cloudsnorkel/cdk-github-runners.Os"
12030
+ }
12031
+ },
12032
+ {
12033
+ "name": "_architecture",
12034
+ "type": {
12035
+ "fqn": "@cloudsnorkel/cdk-github-runners.Architecture"
12036
+ }
12037
+ }
12038
+ ],
12039
+ "returns": {
12040
+ "type": {
12041
+ "primitive": "boolean"
12042
+ }
12043
+ }
11979
12044
  }
11980
12045
  ],
11981
12046
  "name": "RunnerImageComponent",
@@ -11989,8 +12054,8 @@
11989
12054
  },
11990
12055
  "immutable": true,
11991
12056
  "locationInModule": {
11992
- "filename": "src/providers/image-builders/components.ts",
11993
- "line": 509
12057
+ "filename": "src/image-builders/components.ts",
12058
+ "line": 536
11994
12059
  },
11995
12060
  "name": "name",
11996
12061
  "type": {
@@ -11998,7 +12063,7 @@
11998
12063
  }
11999
12064
  }
12000
12065
  ],
12001
- "symbolId": "src/providers/image-builders/components:RunnerImageComponent"
12066
+ "symbolId": "src/image-builders/components:RunnerImageComponent"
12002
12067
  },
12003
12068
  "@cloudsnorkel/cdk-github-runners.RunnerImageComponentCustomProps": {
12004
12069
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -12009,7 +12074,7 @@
12009
12074
  "fqn": "@cloudsnorkel/cdk-github-runners.RunnerImageComponentCustomProps",
12010
12075
  "kind": "interface",
12011
12076
  "locationInModule": {
12012
- "filename": "src/providers/image-builders/components.ts",
12077
+ "filename": "src/image-builders/components.ts",
12013
12078
  "line": 8
12014
12079
  },
12015
12080
  "name": "RunnerImageComponentCustomProps",
@@ -12022,7 +12087,7 @@
12022
12087
  },
12023
12088
  "immutable": true,
12024
12089
  "locationInModule": {
12025
- "filename": "src/providers/image-builders/components.ts",
12090
+ "filename": "src/image-builders/components.ts",
12026
12091
  "line": 24
12027
12092
  },
12028
12093
  "name": "assets",
@@ -12044,7 +12109,7 @@
12044
12109
  },
12045
12110
  "immutable": true,
12046
12111
  "locationInModule": {
12047
- "filename": "src/providers/image-builders/components.ts",
12112
+ "filename": "src/image-builders/components.ts",
12048
12113
  "line": 19
12049
12114
  },
12050
12115
  "name": "commands",
@@ -12067,7 +12132,7 @@
12067
12132
  },
12068
12133
  "immutable": true,
12069
12134
  "locationInModule": {
12070
- "filename": "src/providers/image-builders/components.ts",
12135
+ "filename": "src/image-builders/components.ts",
12071
12136
  "line": 33
12072
12137
  },
12073
12138
  "name": "dockerCommands",
@@ -12090,7 +12155,7 @@
12090
12155
  },
12091
12156
  "immutable": true,
12092
12157
  "locationInModule": {
12093
- "filename": "src/providers/image-builders/components.ts",
12158
+ "filename": "src/image-builders/components.ts",
12094
12159
  "line": 14
12095
12160
  },
12096
12161
  "name": "name",
@@ -12100,7 +12165,7 @@
12100
12165
  }
12101
12166
  }
12102
12167
  ],
12103
- "symbolId": "src/providers/image-builders/components:RunnerImageComponentCustomProps"
12168
+ "symbolId": "src/image-builders/components:RunnerImageComponentCustomProps"
12104
12169
  },
12105
12170
  "@cloudsnorkel/cdk-github-runners.RunnerProviderProps": {
12106
12171
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -12500,7 +12565,7 @@
12500
12565
  },
12501
12566
  "kind": "class",
12502
12567
  "locationInModule": {
12503
- "filename": "src/providers/image-builders/static.ts",
12568
+ "filename": "src/image-builders/static.ts",
12504
12569
  "line": 10
12505
12570
  },
12506
12571
  "methods": [
@@ -12511,7 +12576,7 @@
12511
12576
  "summary": "Create a builder from an existing Docker Hub image."
12512
12577
  },
12513
12578
  "locationInModule": {
12514
- "filename": "src/providers/image-builders/static.ts",
12579
+ "filename": "src/image-builders/static.ts",
12515
12580
  "line": 48
12516
12581
  },
12517
12582
  "name": "fromDockerHub",
@@ -12572,7 +12637,7 @@
12572
12637
  "summary": "Create a builder (that doesn't actually build anything) from an existing image in an existing repository."
12573
12638
  },
12574
12639
  "locationInModule": {
12575
- "filename": "src/providers/image-builders/static.ts",
12640
+ "filename": "src/image-builders/static.ts",
12576
12641
  "line": 19
12577
12642
  },
12578
12643
  "name": "fromEcrRepository",
@@ -12626,7 +12691,7 @@
12626
12691
  }
12627
12692
  ],
12628
12693
  "name": "StaticRunnerImage",
12629
- "symbolId": "src/providers/image-builders/static:StaticRunnerImage"
12694
+ "symbolId": "src/image-builders/static:StaticRunnerImage"
12630
12695
  },
12631
12696
  "@cloudsnorkel/cdk-github-runners.WindowsComponents": {
12632
12697
  "assembly": "@cloudsnorkel/cdk-github-runners",
@@ -12644,8 +12709,8 @@
12644
12709
  },
12645
12710
  "kind": "class",
12646
12711
  "locationInModule": {
12647
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12648
- "line": 11
12712
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12713
+ "line": 12
12649
12714
  },
12650
12715
  "methods": [
12651
12716
  {
@@ -12653,8 +12718,8 @@
12653
12718
  "stability": "deprecated"
12654
12719
  },
12655
12720
  "locationInModule": {
12656
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12657
- "line": 24
12721
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12722
+ "line": 25
12658
12723
  },
12659
12724
  "name": "awsCli",
12660
12725
  "parameters": [
@@ -12683,8 +12748,8 @@
12683
12748
  "stability": "deprecated"
12684
12749
  },
12685
12750
  "locationInModule": {
12686
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12687
- "line": 12
12751
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12752
+ "line": 13
12688
12753
  },
12689
12754
  "name": "cloudwatchAgent",
12690
12755
  "parameters": [
@@ -12713,8 +12778,8 @@
12713
12778
  "stability": "deprecated"
12714
12779
  },
12715
12780
  "locationInModule": {
12716
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12717
- "line": 104
12781
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12782
+ "line": 99
12718
12783
  },
12719
12784
  "name": "docker",
12720
12785
  "parameters": [
@@ -12743,8 +12808,8 @@
12743
12808
  "stability": "deprecated"
12744
12809
  },
12745
12810
  "locationInModule": {
12746
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12747
- "line": 124
12811
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12812
+ "line": 109
12748
12813
  },
12749
12814
  "name": "extraCertificates",
12750
12815
  "parameters": [
@@ -12779,8 +12844,8 @@
12779
12844
  "stability": "deprecated"
12780
12845
  },
12781
12846
  "locationInModule": {
12782
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12783
- "line": 55
12847
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12848
+ "line": 54
12784
12849
  },
12785
12850
  "name": "git",
12786
12851
  "parameters": [
@@ -12809,8 +12874,8 @@
12809
12874
  "stability": "deprecated"
12810
12875
  },
12811
12876
  "locationInModule": {
12812
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12813
- "line": 36
12877
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12878
+ "line": 37
12814
12879
  },
12815
12880
  "name": "githubCli",
12816
12881
  "parameters": [
@@ -12839,8 +12904,8 @@
12839
12904
  "stability": "deprecated"
12840
12905
  },
12841
12906
  "locationInModule": {
12842
- "filename": "src/providers/image-builders/aws-image-builder/deprecated/windows-components.ts",
12843
- "line": 76
12907
+ "filename": "src/image-builders/aws-image-builder/deprecated/windows-components.ts",
12908
+ "line": 74
12844
12909
  },
12845
12910
  "name": "githubRunner",
12846
12911
  "parameters": [
@@ -12872,9 +12937,9 @@
12872
12937
  }
12873
12938
  ],
12874
12939
  "name": "WindowsComponents",
12875
- "symbolId": "src/providers/image-builders/aws-image-builder/deprecated/windows-components:WindowsComponents"
12940
+ "symbolId": "src/image-builders/aws-image-builder/deprecated/windows-components:WindowsComponents"
12876
12941
  }
12877
12942
  },
12878
- "version": "0.9.3",
12879
- "fingerprint": "wm90SjuWDjOEdZ2XvCRnYQeU6aZ0JZPKovmkSiB3B2I="
12943
+ "version": "0.9.5",
12944
+ "fingerprint": "V+KyphB/VHigagS07H6ZFAsLHZDxDcwHuUU2M43SHDw="
12880
12945
  }