@cloudsnorkel/cdk-github-runners 0.9.8 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.jsii +250 -301
- package/API.md +186 -34
- package/README.md +8 -7
- package/assets/setup.lambda/index.html +12 -12
- package/assets/token-retriever.lambda/index.js +25 -9
- package/lib/access.d.ts +3 -1
- package/lib/access.js +12 -4
- package/lib/image-builders/api.js +1 -1
- package/lib/image-builders/aws-image-builder/builder.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/ami.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/container.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/linux-components.js +1 -1
- package/lib/image-builders/aws-image-builder/deprecated/windows-components.js +1 -1
- package/lib/image-builders/codebuild-deprecated.js +1 -1
- package/lib/image-builders/components.js +1 -1
- package/lib/image-builders/static.js +1 -1
- package/lib/providers/codebuild.d.ts +1 -0
- package/lib/providers/codebuild.js +7 -4
- package/lib/providers/common.d.ts +8 -8
- package/lib/providers/common.js +5 -16
- package/lib/providers/ec2.d.ts +1 -0
- package/lib/providers/ec2.js +9 -10
- package/lib/providers/ecs.d.ts +1 -0
- package/lib/providers/ecs.js +7 -3
- package/lib/providers/fargate.d.ts +1 -0
- package/lib/providers/fargate.js +8 -4
- package/lib/providers/lambda.d.ts +1 -0
- package/lib/providers/lambda.js +10 -4
- package/lib/runner.d.ts +12 -2
- package/lib/runner.js +28 -9
- package/lib/secrets.js +1 -1
- package/lib/token-retriever.lambda.js +24 -10
- package/package.json +4 -4
package/.jsii
CHANGED
|
@@ -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[][7]\n[][6]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](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. Install and use the appropriate package\n <details><summary>Python</summary>\n\n ### Install\n Available on [PyPI][6].\n ```bash\n pip install cloudsnorkel.cdk-github-runners\n ```\n ### Use\n ```python\n from cloudsnorkel.cdk_github_runners import GitHubRunners\n\n GitHubRunners(self, \"runners\")\n ```\n </details>\n <details><summary>TypeScript or JavaScript</summary>\n\n ### Install\n Available on [npm][7].\n ```bash\n npm i @cloudsnorkel/cdk-github-runners\n ```\n ### Use\n ```typescript\n import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n <details><summary>Java</summary>\n\n ### Install\n Available on [Maven][8].\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n ### Use\n ```java\n import com.cloudsnorkel.cdk.github.runners.GitHubRunners;\n\n GitHubRunners.Builder.create(this, \"runners\").build();\n ```\n </details>\n <details><summary>Go</summary>\n\n ### Install\n Available on [GitHub][11].\n ```bash\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n ### Use\n ```go\n import \"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\"\n\n NewGitHubRunners(this, jsii.String(\"runners\"))\n ```\n </details>\n <details><summary>.NET</summary>\n\n ### Install\n Available on [Nuget][12].\n ```bash\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n ### Use\n ```csharp\n using CloudSnorkel;\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n2. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n3. Deploy your stack\n4. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n ```\n ✅ github-runners-test\n\n ✨ Deployment time: 260.01s\n\n Outputs:\n github-runners-test.runnersstatuscommand4A30F0F5 = aws --region us-east-1 lambda invoke --function-name github-runners-test-runnersstatus1A5771C0-mvttg8oPQnQS status.json\n ```\n5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n6. 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\n7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n9. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[](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 labels: ['my-codebuild'],\n vpc: vpc,\n securityGroups: [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 labels: ['customized-fargate'],\n vpc: vpc,\n securityGroups: [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 labels: ['customized-windows-fargate'],\n vpc: vpc,\n securityGroups: [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_UBUNTU,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n\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://central.sonatype.com/artifact/com.cloudsnorkel/cdk.github.runners/\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[][7]\n[][6]\n[][8]\n[][11]\n[][12]\n[](https://github.com/CloudSnorkel/cdk-github-runners/actions/workflows/release.yml)\n[](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. Install and use the appropriate package\n <details><summary>Python</summary>\n\n ### Install\n Available on [PyPI][6].\n ```bash\n pip install cloudsnorkel.cdk-github-runners\n ```\n ### Use\n ```python\n from cloudsnorkel.cdk_github_runners import GitHubRunners\n\n GitHubRunners(self, \"runners\")\n ```\n </details>\n <details><summary>TypeScript or JavaScript</summary>\n\n ### Install\n Available on [npm][7].\n ```bash\n npm i @cloudsnorkel/cdk-github-runners\n ```\n ### Use\n ```typescript\n import { GitHubRunners } from '@cloudsnorkel/cdk-github-runners';\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n <details><summary>Java</summary>\n\n ### Install\n Available on [Maven][8].\n ```xml\n <dependency>\n <groupId>com.cloudsnorkel</groupId>\n <artifactId>cdk.github.runners</artifactId>\n </dependency>\n ```\n ### Use\n ```java\n import com.cloudsnorkel.cdk.github.runners.GitHubRunners;\n\n GitHubRunners.Builder.create(this, \"runners\").build();\n ```\n </details>\n <details><summary>Go</summary>\n\n ### Install\n Available on [GitHub][11].\n ```bash\n go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\n ```\n ### Use\n ```go\n import \"github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners\"\n\n NewGitHubRunners(this, jsii.String(\"runners\"))\n ```\n </details>\n <details><summary>.NET</summary>\n\n ### Install\n Available on [Nuget][12].\n ```bash\n dotnet add package CloudSnorkel.Cdk.Github.Runners\n ```\n ### Use\n ```csharp\n using CloudSnorkel;\n\n new GitHubRunners(this, \"runners\");\n ```\n </details>\n2. Use `GitHubRunners` construct in your code (starting with default arguments is fine)\n3. Deploy your stack\n4. Look for the status command output similar to `aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json`\n ```\n ✅ github-runners-test\n\n ✨ Deployment time: 260.01s\n\n Outputs:\n github-runners-test.runnersstatuscommand4A30F0F5 = aws --region us-east-1 lambda invoke --function-name github-runners-test-runnersstatus1A5771C0-mvttg8oPQnQS status.json\n ```\n5. Execute the status command (you may need to specify `--profile` too) and open the resulting `status.json` file\n6. 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\n7. Run status command again to confirm `github.auth.status` and `github.webhook.status` are OK\n8. Trigger a GitHub action that has a `self-hosted` label with `runs-on: [self-hosted, linux, codebuild]` or similar\n9. If the action is not successful, see [troubleshooting](#Troubleshooting)\n\n[](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 labels: ['my-codebuild'],\n vpc: vpc,\n securityGroups: [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 labels: ['customized-fargate'],\n vpc: vpc,\n securityGroups: [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 labels: ['customized-windows-fargate'],\n vpc: vpc,\n securityGroups: [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_UBUNTU,\n }),\n }),\n ],\n});\n```\n\n## Architecture\n\n\n\n## Troubleshooting\n\nRunners are started in response to a webhook coming in from GitHub. If there are any issues starting the runner like missing capacity or transient API issues, the provider will keep retrying for 24 hours. Configuration issue related errors like pointing to a missing AMI will not be retried. GitHub itself will cancel the job if it can't find a runner for 24 hours. If your jobs don't start, follow the steps below to examine all parts of this workflow.\n\n1. Always start with the status function, make sure no errors are reported, and confirm all status codes are OK\n2. Make sure `runs-on` in the workflow matches the expected labels set in the runner provider\n3. Diagnose relevant executions of the orchestrator step function by visiting the URL in `troubleshooting.stepFunctionUrl` from `status.json`\n 1. If the execution failed, check your runner provider configuration for errors\n 2. If the execution is still running for a long time, check the execution events to see why runner starting is being retried\n 3. If there are no relevant executions, move to the next step\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 installations in `github.auth.app.installations`\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://central.sonatype.com/artifact/com.cloudsnorkel/cdk.github.runners/\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",
|
|
@@ -3851,7 +3851,7 @@
|
|
|
3851
3851
|
"immutable": true,
|
|
3852
3852
|
"locationInModule": {
|
|
3853
3853
|
"filename": "src/access.ts",
|
|
3854
|
-
"line":
|
|
3854
|
+
"line": 28
|
|
3855
3855
|
},
|
|
3856
3856
|
"name": "allowedIps",
|
|
3857
3857
|
"optional": true,
|
|
@@ -3874,7 +3874,7 @@
|
|
|
3874
3874
|
"immutable": true,
|
|
3875
3875
|
"locationInModule": {
|
|
3876
3876
|
"filename": "src/access.ts",
|
|
3877
|
-
"line":
|
|
3877
|
+
"line": 40
|
|
3878
3878
|
},
|
|
3879
3879
|
"name": "allowedSecurityGroups",
|
|
3880
3880
|
"optional": true,
|
|
@@ -3896,7 +3896,7 @@
|
|
|
3896
3896
|
"immutable": true,
|
|
3897
3897
|
"locationInModule": {
|
|
3898
3898
|
"filename": "src/access.ts",
|
|
3899
|
-
"line":
|
|
3899
|
+
"line": 33
|
|
3900
3900
|
},
|
|
3901
3901
|
"name": "allowedVpc",
|
|
3902
3902
|
"optional": true,
|
|
@@ -3907,14 +3907,14 @@
|
|
|
3907
3907
|
{
|
|
3908
3908
|
"abstract": true,
|
|
3909
3909
|
"docs": {
|
|
3910
|
-
"remarks": "Use this to make use of existing VPC endpoints. The VPC endpoint must point to `ec2.InterfaceVpcEndpointAwsService.APIGATEWAY`.\n\nNo other settings are supported when using this option.",
|
|
3910
|
+
"remarks": "Use this to make use of existing VPC endpoints or to share an endpoint between multiple functions. The VPC endpoint must point to `ec2.InterfaceVpcEndpointAwsService.APIGATEWAY`.\n\nNo other settings are supported when using this option.\n\nAll endpoints will be allowed access, but only the first one will be used as the URL by the runner system for setting up the webhook, and as setup URL.",
|
|
3911
3911
|
"stability": "experimental",
|
|
3912
3912
|
"summary": "Create a private API Gateway and allow access from the specified VPC endpoints."
|
|
3913
3913
|
},
|
|
3914
3914
|
"immutable": true,
|
|
3915
3915
|
"locationInModule": {
|
|
3916
3916
|
"filename": "src/access.ts",
|
|
3917
|
-
"line":
|
|
3917
|
+
"line": 19
|
|
3918
3918
|
},
|
|
3919
3919
|
"name": "allowedVpcEndpoints",
|
|
3920
3920
|
"optional": true,
|
|
@@ -4658,7 +4658,7 @@
|
|
|
4658
4658
|
},
|
|
4659
4659
|
"locationInModule": {
|
|
4660
4660
|
"filename": "src/providers/codebuild.ts",
|
|
4661
|
-
"line":
|
|
4661
|
+
"line": 220
|
|
4662
4662
|
},
|
|
4663
4663
|
"parameters": [
|
|
4664
4664
|
{
|
|
@@ -4685,7 +4685,7 @@
|
|
|
4685
4685
|
"kind": "class",
|
|
4686
4686
|
"locationInModule": {
|
|
4687
4687
|
"filename": "src/providers/codebuild.ts",
|
|
4688
|
-
"line":
|
|
4688
|
+
"line": 419
|
|
4689
4689
|
},
|
|
4690
4690
|
"name": "CodeBuildRunner",
|
|
4691
4691
|
"symbolId": "src/providers/codebuild:CodeBuildRunner"
|
|
@@ -4779,7 +4779,7 @@
|
|
|
4779
4779
|
},
|
|
4780
4780
|
"locationInModule": {
|
|
4781
4781
|
"filename": "src/providers/codebuild.ts",
|
|
4782
|
-
"line":
|
|
4782
|
+
"line": 220
|
|
4783
4783
|
},
|
|
4784
4784
|
"parameters": [
|
|
4785
4785
|
{
|
|
@@ -4851,45 +4851,6 @@
|
|
|
4851
4851
|
},
|
|
4852
4852
|
"static": true
|
|
4853
4853
|
},
|
|
4854
|
-
{
|
|
4855
|
-
"docs": {
|
|
4856
|
-
"stability": "experimental"
|
|
4857
|
-
},
|
|
4858
|
-
"locationInModule": {
|
|
4859
|
-
"filename": "src/providers/common.ts",
|
|
4860
|
-
"line": 474
|
|
4861
|
-
},
|
|
4862
|
-
"name": "addRetry",
|
|
4863
|
-
"parameters": [
|
|
4864
|
-
{
|
|
4865
|
-
"name": "task",
|
|
4866
|
-
"type": {
|
|
4867
|
-
"union": {
|
|
4868
|
-
"types": [
|
|
4869
|
-
{
|
|
4870
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
|
|
4871
|
-
},
|
|
4872
|
-
{
|
|
4873
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.Parallel"
|
|
4874
|
-
}
|
|
4875
|
-
]
|
|
4876
|
-
}
|
|
4877
|
-
}
|
|
4878
|
-
},
|
|
4879
|
-
{
|
|
4880
|
-
"name": "errors",
|
|
4881
|
-
"type": {
|
|
4882
|
-
"collection": {
|
|
4883
|
-
"elementtype": {
|
|
4884
|
-
"primitive": "string"
|
|
4885
|
-
},
|
|
4886
|
-
"kind": "array"
|
|
4887
|
-
}
|
|
4888
|
-
}
|
|
4889
|
-
}
|
|
4890
|
-
],
|
|
4891
|
-
"protected": true
|
|
4892
|
-
},
|
|
4893
4854
|
{
|
|
4894
4855
|
"docs": {
|
|
4895
4856
|
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
@@ -4898,7 +4859,7 @@
|
|
|
4898
4859
|
},
|
|
4899
4860
|
"locationInModule": {
|
|
4900
4861
|
"filename": "src/providers/codebuild.ts",
|
|
4901
|
-
"line":
|
|
4862
|
+
"line": 348
|
|
4902
4863
|
},
|
|
4903
4864
|
"name": "getStepFunctionTask",
|
|
4904
4865
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -4927,7 +4888,7 @@
|
|
|
4927
4888
|
},
|
|
4928
4889
|
"locationInModule": {
|
|
4929
4890
|
"filename": "src/providers/codebuild.ts",
|
|
4930
|
-
"line":
|
|
4891
|
+
"line": 387
|
|
4931
4892
|
},
|
|
4932
4893
|
"name": "grantStateMachine",
|
|
4933
4894
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -4996,7 +4957,7 @@
|
|
|
4996
4957
|
},
|
|
4997
4958
|
"locationInModule": {
|
|
4998
4959
|
"filename": "src/providers/codebuild.ts",
|
|
4999
|
-
"line":
|
|
4960
|
+
"line": 390
|
|
5000
4961
|
},
|
|
5001
4962
|
"name": "status",
|
|
5002
4963
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -5063,7 +5024,7 @@
|
|
|
5063
5024
|
"immutable": true,
|
|
5064
5025
|
"locationInModule": {
|
|
5065
5026
|
"filename": "src/providers/codebuild.ts",
|
|
5066
|
-
"line":
|
|
5027
|
+
"line": 411
|
|
5067
5028
|
},
|
|
5068
5029
|
"name": "connections",
|
|
5069
5030
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -5155,6 +5116,27 @@
|
|
|
5155
5116
|
"type": {
|
|
5156
5117
|
"fqn": "aws-cdk-lib.aws_codebuild.Project"
|
|
5157
5118
|
}
|
|
5119
|
+
},
|
|
5120
|
+
{
|
|
5121
|
+
"docs": {
|
|
5122
|
+
"stability": "experimental",
|
|
5123
|
+
"summary": "List of step functions errors that should be retried."
|
|
5124
|
+
},
|
|
5125
|
+
"immutable": true,
|
|
5126
|
+
"locationInModule": {
|
|
5127
|
+
"filename": "src/providers/codebuild.ts",
|
|
5128
|
+
"line": 211
|
|
5129
|
+
},
|
|
5130
|
+
"name": "retryableErrors",
|
|
5131
|
+
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
5132
|
+
"type": {
|
|
5133
|
+
"collection": {
|
|
5134
|
+
"elementtype": {
|
|
5135
|
+
"primitive": "string"
|
|
5136
|
+
},
|
|
5137
|
+
"kind": "array"
|
|
5138
|
+
}
|
|
5139
|
+
}
|
|
5158
5140
|
}
|
|
5159
5141
|
],
|
|
5160
5142
|
"symbolId": "src/providers/codebuild:CodeBuildRunnerProvider"
|
|
@@ -6062,7 +6044,7 @@
|
|
|
6062
6044
|
},
|
|
6063
6045
|
"locationInModule": {
|
|
6064
6046
|
"filename": "src/providers/ec2.ts",
|
|
6065
|
-
"line":
|
|
6047
|
+
"line": 297
|
|
6066
6048
|
},
|
|
6067
6049
|
"parameters": [
|
|
6068
6050
|
{
|
|
@@ -6089,7 +6071,7 @@
|
|
|
6089
6071
|
"kind": "class",
|
|
6090
6072
|
"locationInModule": {
|
|
6091
6073
|
"filename": "src/providers/ec2.ts",
|
|
6092
|
-
"line":
|
|
6074
|
+
"line": 506
|
|
6093
6075
|
},
|
|
6094
6076
|
"name": "Ec2Runner",
|
|
6095
6077
|
"symbolId": "src/providers/ec2:Ec2Runner"
|
|
@@ -6109,7 +6091,7 @@
|
|
|
6109
6091
|
},
|
|
6110
6092
|
"locationInModule": {
|
|
6111
6093
|
"filename": "src/providers/ec2.ts",
|
|
6112
|
-
"line":
|
|
6094
|
+
"line": 297
|
|
6113
6095
|
},
|
|
6114
6096
|
"parameters": [
|
|
6115
6097
|
{
|
|
@@ -6181,45 +6163,6 @@
|
|
|
6181
6163
|
},
|
|
6182
6164
|
"static": true
|
|
6183
6165
|
},
|
|
6184
|
-
{
|
|
6185
|
-
"docs": {
|
|
6186
|
-
"stability": "experimental"
|
|
6187
|
-
},
|
|
6188
|
-
"locationInModule": {
|
|
6189
|
-
"filename": "src/providers/common.ts",
|
|
6190
|
-
"line": 474
|
|
6191
|
-
},
|
|
6192
|
-
"name": "addRetry",
|
|
6193
|
-
"parameters": [
|
|
6194
|
-
{
|
|
6195
|
-
"name": "task",
|
|
6196
|
-
"type": {
|
|
6197
|
-
"union": {
|
|
6198
|
-
"types": [
|
|
6199
|
-
{
|
|
6200
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
|
|
6201
|
-
},
|
|
6202
|
-
{
|
|
6203
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.Parallel"
|
|
6204
|
-
}
|
|
6205
|
-
]
|
|
6206
|
-
}
|
|
6207
|
-
}
|
|
6208
|
-
},
|
|
6209
|
-
{
|
|
6210
|
-
"name": "errors",
|
|
6211
|
-
"type": {
|
|
6212
|
-
"collection": {
|
|
6213
|
-
"elementtype": {
|
|
6214
|
-
"primitive": "string"
|
|
6215
|
-
},
|
|
6216
|
-
"kind": "array"
|
|
6217
|
-
}
|
|
6218
|
-
}
|
|
6219
|
-
}
|
|
6220
|
-
],
|
|
6221
|
-
"protected": true
|
|
6222
|
-
},
|
|
6223
6166
|
{
|
|
6224
6167
|
"docs": {
|
|
6225
6168
|
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
@@ -6228,7 +6171,7 @@
|
|
|
6228
6171
|
},
|
|
6229
6172
|
"locationInModule": {
|
|
6230
6173
|
"filename": "src/providers/ec2.ts",
|
|
6231
|
-
"line":
|
|
6174
|
+
"line": 349
|
|
6232
6175
|
},
|
|
6233
6176
|
"name": "getStepFunctionTask",
|
|
6234
6177
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6257,7 +6200,7 @@
|
|
|
6257
6200
|
},
|
|
6258
6201
|
"locationInModule": {
|
|
6259
6202
|
"filename": "src/providers/ec2.ts",
|
|
6260
|
-
"line":
|
|
6203
|
+
"line": 446
|
|
6261
6204
|
},
|
|
6262
6205
|
"name": "grantStateMachine",
|
|
6263
6206
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6326,7 +6269,7 @@
|
|
|
6326
6269
|
},
|
|
6327
6270
|
"locationInModule": {
|
|
6328
6271
|
"filename": "src/providers/ec2.ts",
|
|
6329
|
-
"line":
|
|
6272
|
+
"line": 476
|
|
6330
6273
|
},
|
|
6331
6274
|
"name": "status",
|
|
6332
6275
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6355,7 +6298,7 @@
|
|
|
6355
6298
|
"immutable": true,
|
|
6356
6299
|
"locationInModule": {
|
|
6357
6300
|
"filename": "src/providers/ec2.ts",
|
|
6358
|
-
"line":
|
|
6301
|
+
"line": 498
|
|
6359
6302
|
},
|
|
6360
6303
|
"name": "connections",
|
|
6361
6304
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -6416,6 +6359,27 @@
|
|
|
6416
6359
|
"type": {
|
|
6417
6360
|
"fqn": "aws-cdk-lib.aws_logs.ILogGroup"
|
|
6418
6361
|
}
|
|
6362
|
+
},
|
|
6363
|
+
{
|
|
6364
|
+
"docs": {
|
|
6365
|
+
"stability": "experimental",
|
|
6366
|
+
"summary": "List of step functions errors that should be retried."
|
|
6367
|
+
},
|
|
6368
|
+
"immutable": true,
|
|
6369
|
+
"locationInModule": {
|
|
6370
|
+
"filename": "src/providers/ec2.ts",
|
|
6371
|
+
"line": 282
|
|
6372
|
+
},
|
|
6373
|
+
"name": "retryableErrors",
|
|
6374
|
+
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
6375
|
+
"type": {
|
|
6376
|
+
"collection": {
|
|
6377
|
+
"elementtype": {
|
|
6378
|
+
"primitive": "string"
|
|
6379
|
+
},
|
|
6380
|
+
"kind": "array"
|
|
6381
|
+
}
|
|
6382
|
+
}
|
|
6419
6383
|
}
|
|
6420
6384
|
],
|
|
6421
6385
|
"symbolId": "src/providers/ec2:Ec2RunnerProvider"
|
|
@@ -6688,7 +6652,7 @@
|
|
|
6688
6652
|
},
|
|
6689
6653
|
"locationInModule": {
|
|
6690
6654
|
"filename": "src/providers/ecs.ts",
|
|
6691
|
-
"line":
|
|
6655
|
+
"line": 307
|
|
6692
6656
|
},
|
|
6693
6657
|
"parameters": [
|
|
6694
6658
|
{
|
|
@@ -6760,45 +6724,6 @@
|
|
|
6760
6724
|
},
|
|
6761
6725
|
"static": true
|
|
6762
6726
|
},
|
|
6763
|
-
{
|
|
6764
|
-
"docs": {
|
|
6765
|
-
"stability": "experimental"
|
|
6766
|
-
},
|
|
6767
|
-
"locationInModule": {
|
|
6768
|
-
"filename": "src/providers/common.ts",
|
|
6769
|
-
"line": 474
|
|
6770
|
-
},
|
|
6771
|
-
"name": "addRetry",
|
|
6772
|
-
"parameters": [
|
|
6773
|
-
{
|
|
6774
|
-
"name": "task",
|
|
6775
|
-
"type": {
|
|
6776
|
-
"union": {
|
|
6777
|
-
"types": [
|
|
6778
|
-
{
|
|
6779
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
|
|
6780
|
-
},
|
|
6781
|
-
{
|
|
6782
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.Parallel"
|
|
6783
|
-
}
|
|
6784
|
-
]
|
|
6785
|
-
}
|
|
6786
|
-
}
|
|
6787
|
-
},
|
|
6788
|
-
{
|
|
6789
|
-
"name": "errors",
|
|
6790
|
-
"type": {
|
|
6791
|
-
"collection": {
|
|
6792
|
-
"elementtype": {
|
|
6793
|
-
"primitive": "string"
|
|
6794
|
-
},
|
|
6795
|
-
"kind": "array"
|
|
6796
|
-
}
|
|
6797
|
-
}
|
|
6798
|
-
}
|
|
6799
|
-
],
|
|
6800
|
-
"protected": true
|
|
6801
|
-
},
|
|
6802
6727
|
{
|
|
6803
6728
|
"docs": {
|
|
6804
6729
|
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
@@ -6807,7 +6732,7 @@
|
|
|
6807
6732
|
},
|
|
6808
6733
|
"locationInModule": {
|
|
6809
6734
|
"filename": "src/providers/ecs.ts",
|
|
6810
|
-
"line":
|
|
6735
|
+
"line": 503
|
|
6811
6736
|
},
|
|
6812
6737
|
"name": "getStepFunctionTask",
|
|
6813
6738
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6836,7 +6761,7 @@
|
|
|
6836
6761
|
},
|
|
6837
6762
|
"locationInModule": {
|
|
6838
6763
|
"filename": "src/providers/ecs.ts",
|
|
6839
|
-
"line":
|
|
6764
|
+
"line": 550
|
|
6840
6765
|
},
|
|
6841
6766
|
"name": "grantStateMachine",
|
|
6842
6767
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6905,7 +6830,7 @@
|
|
|
6905
6830
|
},
|
|
6906
6831
|
"locationInModule": {
|
|
6907
6832
|
"filename": "src/providers/ecs.ts",
|
|
6908
|
-
"line":
|
|
6833
|
+
"line": 553
|
|
6909
6834
|
},
|
|
6910
6835
|
"name": "status",
|
|
6911
6836
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -6995,6 +6920,27 @@
|
|
|
6995
6920
|
"type": {
|
|
6996
6921
|
"fqn": "aws-cdk-lib.aws_logs.ILogGroup"
|
|
6997
6922
|
}
|
|
6923
|
+
},
|
|
6924
|
+
{
|
|
6925
|
+
"docs": {
|
|
6926
|
+
"stability": "experimental",
|
|
6927
|
+
"summary": "List of step functions errors that should be retried."
|
|
6928
|
+
},
|
|
6929
|
+
"immutable": true,
|
|
6930
|
+
"locationInModule": {
|
|
6931
|
+
"filename": "src/providers/ecs.ts",
|
|
6932
|
+
"line": 301
|
|
6933
|
+
},
|
|
6934
|
+
"name": "retryableErrors",
|
|
6935
|
+
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
6936
|
+
"type": {
|
|
6937
|
+
"collection": {
|
|
6938
|
+
"elementtype": {
|
|
6939
|
+
"primitive": "string"
|
|
6940
|
+
},
|
|
6941
|
+
"kind": "array"
|
|
6942
|
+
}
|
|
6943
|
+
}
|
|
6998
6944
|
}
|
|
6999
6945
|
],
|
|
7000
6946
|
"symbolId": "src/providers/ecs:EcsRunnerProvider"
|
|
@@ -7358,7 +7304,7 @@
|
|
|
7358
7304
|
},
|
|
7359
7305
|
"locationInModule": {
|
|
7360
7306
|
"filename": "src/providers/fargate.ts",
|
|
7361
|
-
"line":
|
|
7307
|
+
"line": 362
|
|
7362
7308
|
},
|
|
7363
7309
|
"parameters": [
|
|
7364
7310
|
{
|
|
@@ -7385,7 +7331,7 @@
|
|
|
7385
7331
|
"kind": "class",
|
|
7386
7332
|
"locationInModule": {
|
|
7387
7333
|
"filename": "src/providers/fargate.ts",
|
|
7388
|
-
"line":
|
|
7334
|
+
"line": 523
|
|
7389
7335
|
},
|
|
7390
7336
|
"name": "FargateRunner",
|
|
7391
7337
|
"symbolId": "src/providers/fargate:FargateRunner"
|
|
@@ -7405,7 +7351,7 @@
|
|
|
7405
7351
|
},
|
|
7406
7352
|
"locationInModule": {
|
|
7407
7353
|
"filename": "src/providers/fargate.ts",
|
|
7408
|
-
"line":
|
|
7354
|
+
"line": 362
|
|
7409
7355
|
},
|
|
7410
7356
|
"parameters": [
|
|
7411
7357
|
{
|
|
@@ -7477,45 +7423,6 @@
|
|
|
7477
7423
|
},
|
|
7478
7424
|
"static": true
|
|
7479
7425
|
},
|
|
7480
|
-
{
|
|
7481
|
-
"docs": {
|
|
7482
|
-
"stability": "experimental"
|
|
7483
|
-
},
|
|
7484
|
-
"locationInModule": {
|
|
7485
|
-
"filename": "src/providers/common.ts",
|
|
7486
|
-
"line": 474
|
|
7487
|
-
},
|
|
7488
|
-
"name": "addRetry",
|
|
7489
|
-
"parameters": [
|
|
7490
|
-
{
|
|
7491
|
-
"name": "task",
|
|
7492
|
-
"type": {
|
|
7493
|
-
"union": {
|
|
7494
|
-
"types": [
|
|
7495
|
-
{
|
|
7496
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
|
|
7497
|
-
},
|
|
7498
|
-
{
|
|
7499
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.Parallel"
|
|
7500
|
-
}
|
|
7501
|
-
]
|
|
7502
|
-
}
|
|
7503
|
-
}
|
|
7504
|
-
},
|
|
7505
|
-
{
|
|
7506
|
-
"name": "errors",
|
|
7507
|
-
"type": {
|
|
7508
|
-
"collection": {
|
|
7509
|
-
"elementtype": {
|
|
7510
|
-
"primitive": "string"
|
|
7511
|
-
},
|
|
7512
|
-
"kind": "array"
|
|
7513
|
-
}
|
|
7514
|
-
}
|
|
7515
|
-
}
|
|
7516
|
-
],
|
|
7517
|
-
"protected": true
|
|
7518
|
-
},
|
|
7519
7426
|
{
|
|
7520
7427
|
"docs": {
|
|
7521
7428
|
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
@@ -7524,7 +7431,7 @@
|
|
|
7524
7431
|
},
|
|
7525
7432
|
"locationInModule": {
|
|
7526
7433
|
"filename": "src/providers/fargate.ts",
|
|
7527
|
-
"line":
|
|
7434
|
+
"line": 446
|
|
7528
7435
|
},
|
|
7529
7436
|
"name": "getStepFunctionTask",
|
|
7530
7437
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -7553,7 +7460,7 @@
|
|
|
7553
7460
|
},
|
|
7554
7461
|
"locationInModule": {
|
|
7555
7462
|
"filename": "src/providers/fargate.ts",
|
|
7556
|
-
"line":
|
|
7463
|
+
"line": 498
|
|
7557
7464
|
},
|
|
7558
7465
|
"name": "grantStateMachine",
|
|
7559
7466
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -7622,7 +7529,7 @@
|
|
|
7622
7529
|
},
|
|
7623
7530
|
"locationInModule": {
|
|
7624
7531
|
"filename": "src/providers/fargate.ts",
|
|
7625
|
-
"line":
|
|
7532
|
+
"line": 501
|
|
7626
7533
|
},
|
|
7627
7534
|
"name": "status",
|
|
7628
7535
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -7812,6 +7719,27 @@
|
|
|
7812
7719
|
"fqn": "aws-cdk-lib.aws_logs.ILogGroup"
|
|
7813
7720
|
}
|
|
7814
7721
|
},
|
|
7722
|
+
{
|
|
7723
|
+
"docs": {
|
|
7724
|
+
"stability": "experimental",
|
|
7725
|
+
"summary": "List of step functions errors that should be retried."
|
|
7726
|
+
},
|
|
7727
|
+
"immutable": true,
|
|
7728
|
+
"locationInModule": {
|
|
7729
|
+
"filename": "src/providers/fargate.ts",
|
|
7730
|
+
"line": 354
|
|
7731
|
+
},
|
|
7732
|
+
"name": "retryableErrors",
|
|
7733
|
+
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
7734
|
+
"type": {
|
|
7735
|
+
"collection": {
|
|
7736
|
+
"elementtype": {
|
|
7737
|
+
"primitive": "string"
|
|
7738
|
+
},
|
|
7739
|
+
"kind": "array"
|
|
7740
|
+
}
|
|
7741
|
+
}
|
|
7742
|
+
},
|
|
7815
7743
|
{
|
|
7816
7744
|
"docs": {
|
|
7817
7745
|
"stability": "experimental",
|
|
@@ -8166,7 +8094,7 @@
|
|
|
8166
8094
|
},
|
|
8167
8095
|
"locationInModule": {
|
|
8168
8096
|
"filename": "src/runner.ts",
|
|
8169
|
-
"line":
|
|
8097
|
+
"line": 246
|
|
8170
8098
|
},
|
|
8171
8099
|
"parameters": [
|
|
8172
8100
|
{
|
|
@@ -8193,7 +8121,7 @@
|
|
|
8193
8121
|
"kind": "class",
|
|
8194
8122
|
"locationInModule": {
|
|
8195
8123
|
"filename": "src/runner.ts",
|
|
8196
|
-
"line":
|
|
8124
|
+
"line": 227
|
|
8197
8125
|
},
|
|
8198
8126
|
"methods": [
|
|
8199
8127
|
{
|
|
@@ -8204,7 +8132,7 @@
|
|
|
8204
8132
|
},
|
|
8205
8133
|
"locationInModule": {
|
|
8206
8134
|
"filename": "src/runner.ts",
|
|
8207
|
-
"line":
|
|
8135
|
+
"line": 696
|
|
8208
8136
|
},
|
|
8209
8137
|
"name": "failedImageBuildsTopic",
|
|
8210
8138
|
"returns": {
|
|
@@ -8221,7 +8149,7 @@
|
|
|
8221
8149
|
},
|
|
8222
8150
|
"locationInModule": {
|
|
8223
8151
|
"filename": "src/runner.ts",
|
|
8224
|
-
"line":
|
|
8152
|
+
"line": 678
|
|
8225
8153
|
},
|
|
8226
8154
|
"name": "metricFailed",
|
|
8227
8155
|
"parameters": [
|
|
@@ -8247,7 +8175,7 @@
|
|
|
8247
8175
|
},
|
|
8248
8176
|
"locationInModule": {
|
|
8249
8177
|
"filename": "src/runner.ts",
|
|
8250
|
-
"line":
|
|
8178
|
+
"line": 623
|
|
8251
8179
|
},
|
|
8252
8180
|
"name": "metricJobCompleted",
|
|
8253
8181
|
"parameters": [
|
|
@@ -8273,7 +8201,7 @@
|
|
|
8273
8201
|
},
|
|
8274
8202
|
"locationInModule": {
|
|
8275
8203
|
"filename": "src/runner.ts",
|
|
8276
|
-
"line":
|
|
8204
|
+
"line": 669
|
|
8277
8205
|
},
|
|
8278
8206
|
"name": "metricSucceeded",
|
|
8279
8207
|
"parameters": [
|
|
@@ -8299,7 +8227,7 @@
|
|
|
8299
8227
|
},
|
|
8300
8228
|
"locationInModule": {
|
|
8301
8229
|
"filename": "src/runner.ts",
|
|
8302
|
-
"line":
|
|
8230
|
+
"line": 685
|
|
8303
8231
|
},
|
|
8304
8232
|
"name": "metricTime",
|
|
8305
8233
|
"parameters": [
|
|
@@ -8328,7 +8256,7 @@
|
|
|
8328
8256
|
"immutable": true,
|
|
8329
8257
|
"locationInModule": {
|
|
8330
8258
|
"filename": "src/runner.ts",
|
|
8331
|
-
"line":
|
|
8259
|
+
"line": 231
|
|
8332
8260
|
},
|
|
8333
8261
|
"name": "providers",
|
|
8334
8262
|
"type": {
|
|
@@ -8348,7 +8276,7 @@
|
|
|
8348
8276
|
"immutable": true,
|
|
8349
8277
|
"locationInModule": {
|
|
8350
8278
|
"filename": "src/runner.ts",
|
|
8351
|
-
"line":
|
|
8279
|
+
"line": 236
|
|
8352
8280
|
},
|
|
8353
8281
|
"name": "secrets",
|
|
8354
8282
|
"type": {
|
|
@@ -8362,7 +8290,7 @@
|
|
|
8362
8290
|
"immutable": true,
|
|
8363
8291
|
"locationInModule": {
|
|
8364
8292
|
"filename": "src/runner.ts",
|
|
8365
|
-
"line":
|
|
8293
|
+
"line": 246
|
|
8366
8294
|
},
|
|
8367
8295
|
"name": "props",
|
|
8368
8296
|
"optional": true,
|
|
@@ -8384,7 +8312,7 @@
|
|
|
8384
8312
|
"kind": "interface",
|
|
8385
8313
|
"locationInModule": {
|
|
8386
8314
|
"filename": "src/runner.ts",
|
|
8387
|
-
"line":
|
|
8315
|
+
"line": 38
|
|
8388
8316
|
},
|
|
8389
8317
|
"name": "GitHubRunnersProps",
|
|
8390
8318
|
"properties": [
|
|
@@ -8399,7 +8327,7 @@
|
|
|
8399
8327
|
"immutable": true,
|
|
8400
8328
|
"locationInModule": {
|
|
8401
8329
|
"filename": "src/runner.ts",
|
|
8402
|
-
"line":
|
|
8330
|
+
"line": 70
|
|
8403
8331
|
},
|
|
8404
8332
|
"name": "allowPublicSubnet",
|
|
8405
8333
|
"optional": true,
|
|
@@ -8417,7 +8345,7 @@
|
|
|
8417
8345
|
"immutable": true,
|
|
8418
8346
|
"locationInModule": {
|
|
8419
8347
|
"filename": "src/runner.ts",
|
|
8420
|
-
"line":
|
|
8348
|
+
"line": 100
|
|
8421
8349
|
},
|
|
8422
8350
|
"name": "extraCertificates",
|
|
8423
8351
|
"optional": true,
|
|
@@ -8436,7 +8364,7 @@
|
|
|
8436
8364
|
"immutable": true,
|
|
8437
8365
|
"locationInModule": {
|
|
8438
8366
|
"filename": "src/runner.ts",
|
|
8439
|
-
"line":
|
|
8367
|
+
"line": 107
|
|
8440
8368
|
},
|
|
8441
8369
|
"name": "idleTimeout",
|
|
8442
8370
|
"optional": true,
|
|
@@ -8454,7 +8382,7 @@
|
|
|
8454
8382
|
"immutable": true,
|
|
8455
8383
|
"locationInModule": {
|
|
8456
8384
|
"filename": "src/runner.ts",
|
|
8457
|
-
"line":
|
|
8385
|
+
"line": 114
|
|
8458
8386
|
},
|
|
8459
8387
|
"name": "logOptions",
|
|
8460
8388
|
"optional": true,
|
|
@@ -8473,7 +8401,7 @@
|
|
|
8473
8401
|
"immutable": true,
|
|
8474
8402
|
"locationInModule": {
|
|
8475
8403
|
"filename": "src/runner.ts",
|
|
8476
|
-
"line":
|
|
8404
|
+
"line": 44
|
|
8477
8405
|
},
|
|
8478
8406
|
"name": "providers",
|
|
8479
8407
|
"optional": true,
|
|
@@ -8486,6 +8414,25 @@
|
|
|
8486
8414
|
}
|
|
8487
8415
|
}
|
|
8488
8416
|
},
|
|
8417
|
+
{
|
|
8418
|
+
"abstract": true,
|
|
8419
|
+
"docs": {
|
|
8420
|
+
"default": "retry 23 times up to about 24 hours",
|
|
8421
|
+
"remarks": "GitHub jobs time out after not being able to get a runner for 24 hours. You should not retry for more than 24 hours.\n\nTotal time spent waiting can be calculated with interval * (backoffRate ^ maxAttempts) / (backoffRate - 1).",
|
|
8422
|
+
"stability": "experimental",
|
|
8423
|
+
"summary": "Options to retry operation in case of failure like missing capacity, or API quota issues."
|
|
8424
|
+
},
|
|
8425
|
+
"immutable": true,
|
|
8426
|
+
"locationInModule": {
|
|
8427
|
+
"filename": "src/runner.ts",
|
|
8428
|
+
"line": 151
|
|
8429
|
+
},
|
|
8430
|
+
"name": "retryOptions",
|
|
8431
|
+
"optional": true,
|
|
8432
|
+
"type": {
|
|
8433
|
+
"fqn": "@cloudsnorkel/cdk-github-runners.ProviderRetryOptions"
|
|
8434
|
+
}
|
|
8435
|
+
},
|
|
8489
8436
|
{
|
|
8490
8437
|
"abstract": true,
|
|
8491
8438
|
"docs": {
|
|
@@ -8496,7 +8443,7 @@
|
|
|
8496
8443
|
"immutable": true,
|
|
8497
8444
|
"locationInModule": {
|
|
8498
8445
|
"filename": "src/runner.ts",
|
|
8499
|
-
"line":
|
|
8446
|
+
"line": 75
|
|
8500
8447
|
},
|
|
8501
8448
|
"name": "securityGroup",
|
|
8502
8449
|
"optional": true,
|
|
@@ -8515,7 +8462,7 @@
|
|
|
8515
8462
|
"immutable": true,
|
|
8516
8463
|
"locationInModule": {
|
|
8517
8464
|
"filename": "src/runner.ts",
|
|
8518
|
-
"line":
|
|
8465
|
+
"line": 121
|
|
8519
8466
|
},
|
|
8520
8467
|
"name": "setupAccess",
|
|
8521
8468
|
"optional": true,
|
|
@@ -8534,7 +8481,7 @@
|
|
|
8534
8481
|
"immutable": true,
|
|
8535
8482
|
"locationInModule": {
|
|
8536
8483
|
"filename": "src/runner.ts",
|
|
8537
|
-
"line":
|
|
8484
|
+
"line": 140
|
|
8538
8485
|
},
|
|
8539
8486
|
"name": "statusAccess",
|
|
8540
8487
|
"optional": true,
|
|
@@ -8552,7 +8499,7 @@
|
|
|
8552
8499
|
"immutable": true,
|
|
8553
8500
|
"locationInModule": {
|
|
8554
8501
|
"filename": "src/runner.ts",
|
|
8555
|
-
"line":
|
|
8502
|
+
"line": 58
|
|
8556
8503
|
},
|
|
8557
8504
|
"name": "vpc",
|
|
8558
8505
|
"optional": true,
|
|
@@ -8570,7 +8517,7 @@
|
|
|
8570
8517
|
"immutable": true,
|
|
8571
8518
|
"locationInModule": {
|
|
8572
8519
|
"filename": "src/runner.ts",
|
|
8573
|
-
"line":
|
|
8520
|
+
"line": 63
|
|
8574
8521
|
},
|
|
8575
8522
|
"name": "vpcSubnets",
|
|
8576
8523
|
"optional": true,
|
|
@@ -8582,14 +8529,14 @@
|
|
|
8582
8529
|
"abstract": true,
|
|
8583
8530
|
"docs": {
|
|
8584
8531
|
"default": "LambdaAccess.lambdaUrl()",
|
|
8585
|
-
"remarks": "This function is called by GitHub when a new workflow job is scheduled. For an extra layer of security, you can set this to `LambdaAccess.apiGateway({ allowedIps: LambdaAccess.githubWebhookIps() })`.\n\nYou can also set this to `LambdaAccess.
|
|
8532
|
+
"remarks": "This function is called by GitHub when a new workflow job is scheduled. For an extra layer of security, you can set this to `LambdaAccess.apiGateway({ allowedIps: LambdaAccess.githubWebhookIps() })`.\n\nYou can also set this to `LambdaAccess.apiGateway({allowedVpc: vpc, allowedIps: ['GHES.IP.ADDRESS/32']})` if your GitHub Enterprise Server is hosted in a VPC. This will create an API Gateway endpoint that's only accessible from within the VPC.\n\n*WARNING*: changing access type may change the URL. When the URL changes, you must update GitHub as well.",
|
|
8586
8533
|
"stability": "experimental",
|
|
8587
8534
|
"summary": "Access configuration for the webhook function."
|
|
8588
8535
|
},
|
|
8589
8536
|
"immutable": true,
|
|
8590
8537
|
"locationInModule": {
|
|
8591
8538
|
"filename": "src/runner.ts",
|
|
8592
|
-
"line":
|
|
8539
|
+
"line": 133
|
|
8593
8540
|
},
|
|
8594
8541
|
"name": "webhookAccess",
|
|
8595
8542
|
"optional": true,
|
|
@@ -8610,7 +8557,7 @@
|
|
|
8610
8557
|
"kind": "interface",
|
|
8611
8558
|
"locationInModule": {
|
|
8612
8559
|
"filename": "src/providers/common.ts",
|
|
8613
|
-
"line":
|
|
8560
|
+
"line": 343
|
|
8614
8561
|
},
|
|
8615
8562
|
"name": "IRunnerAmiStatus",
|
|
8616
8563
|
"properties": [
|
|
@@ -8623,7 +8570,7 @@
|
|
|
8623
8570
|
"immutable": true,
|
|
8624
8571
|
"locationInModule": {
|
|
8625
8572
|
"filename": "src/providers/common.ts",
|
|
8626
|
-
"line":
|
|
8573
|
+
"line": 347
|
|
8627
8574
|
},
|
|
8628
8575
|
"name": "launchTemplate",
|
|
8629
8576
|
"type": {
|
|
@@ -8639,7 +8586,7 @@
|
|
|
8639
8586
|
"immutable": true,
|
|
8640
8587
|
"locationInModule": {
|
|
8641
8588
|
"filename": "src/providers/common.ts",
|
|
8642
|
-
"line":
|
|
8589
|
+
"line": 352
|
|
8643
8590
|
},
|
|
8644
8591
|
"name": "amiBuilderLogGroup",
|
|
8645
8592
|
"optional": true,
|
|
@@ -8714,7 +8661,7 @@
|
|
|
8714
8661
|
"kind": "interface",
|
|
8715
8662
|
"locationInModule": {
|
|
8716
8663
|
"filename": "src/providers/common.ts",
|
|
8717
|
-
"line":
|
|
8664
|
+
"line": 323
|
|
8718
8665
|
},
|
|
8719
8666
|
"name": "IRunnerImageStatus",
|
|
8720
8667
|
"properties": [
|
|
@@ -8727,7 +8674,7 @@
|
|
|
8727
8674
|
"immutable": true,
|
|
8728
8675
|
"locationInModule": {
|
|
8729
8676
|
"filename": "src/providers/common.ts",
|
|
8730
|
-
"line":
|
|
8677
|
+
"line": 327
|
|
8731
8678
|
},
|
|
8732
8679
|
"name": "imageRepository",
|
|
8733
8680
|
"type": {
|
|
@@ -8743,7 +8690,7 @@
|
|
|
8743
8690
|
"immutable": true,
|
|
8744
8691
|
"locationInModule": {
|
|
8745
8692
|
"filename": "src/providers/common.ts",
|
|
8746
|
-
"line":
|
|
8693
|
+
"line": 332
|
|
8747
8694
|
},
|
|
8748
8695
|
"name": "imageTag",
|
|
8749
8696
|
"type": {
|
|
@@ -8759,7 +8706,7 @@
|
|
|
8759
8706
|
"immutable": true,
|
|
8760
8707
|
"locationInModule": {
|
|
8761
8708
|
"filename": "src/providers/common.ts",
|
|
8762
|
-
"line":
|
|
8709
|
+
"line": 337
|
|
8763
8710
|
},
|
|
8764
8711
|
"name": "imageBuilderLogGroup",
|
|
8765
8712
|
"optional": true,
|
|
@@ -8786,7 +8733,7 @@
|
|
|
8786
8733
|
"kind": "interface",
|
|
8787
8734
|
"locationInModule": {
|
|
8788
8735
|
"filename": "src/providers/common.ts",
|
|
8789
|
-
"line":
|
|
8736
|
+
"line": 403
|
|
8790
8737
|
},
|
|
8791
8738
|
"methods": [
|
|
8792
8739
|
{
|
|
@@ -8798,7 +8745,7 @@
|
|
|
8798
8745
|
},
|
|
8799
8746
|
"locationInModule": {
|
|
8800
8747
|
"filename": "src/providers/common.ts",
|
|
8801
|
-
"line":
|
|
8748
|
+
"line": 432
|
|
8802
8749
|
},
|
|
8803
8750
|
"name": "getStepFunctionTask",
|
|
8804
8751
|
"parameters": [
|
|
@@ -8827,7 +8774,7 @@
|
|
|
8827
8774
|
},
|
|
8828
8775
|
"locationInModule": {
|
|
8829
8776
|
"filename": "src/providers/common.ts",
|
|
8830
|
-
"line":
|
|
8777
|
+
"line": 440
|
|
8831
8778
|
},
|
|
8832
8779
|
"name": "grantStateMachine",
|
|
8833
8780
|
"parameters": [
|
|
@@ -8851,7 +8798,7 @@
|
|
|
8851
8798
|
},
|
|
8852
8799
|
"locationInModule": {
|
|
8853
8800
|
"filename": "src/providers/common.ts",
|
|
8854
|
-
"line":
|
|
8801
|
+
"line": 447
|
|
8855
8802
|
},
|
|
8856
8803
|
"name": "status",
|
|
8857
8804
|
"parameters": [
|
|
@@ -8884,7 +8831,7 @@
|
|
|
8884
8831
|
"immutable": true,
|
|
8885
8832
|
"locationInModule": {
|
|
8886
8833
|
"filename": "src/providers/common.ts",
|
|
8887
|
-
"line":
|
|
8834
|
+
"line": 411
|
|
8888
8835
|
},
|
|
8889
8836
|
"name": "labels",
|
|
8890
8837
|
"type": {
|
|
@@ -8906,12 +8853,33 @@
|
|
|
8906
8853
|
"immutable": true,
|
|
8907
8854
|
"locationInModule": {
|
|
8908
8855
|
"filename": "src/providers/common.ts",
|
|
8909
|
-
"line":
|
|
8856
|
+
"line": 418
|
|
8910
8857
|
},
|
|
8911
8858
|
"name": "logGroup",
|
|
8912
8859
|
"type": {
|
|
8913
8860
|
"fqn": "aws-cdk-lib.aws_logs.ILogGroup"
|
|
8914
8861
|
}
|
|
8862
|
+
},
|
|
8863
|
+
{
|
|
8864
|
+
"abstract": true,
|
|
8865
|
+
"docs": {
|
|
8866
|
+
"stability": "experimental",
|
|
8867
|
+
"summary": "List of step functions errors that should be retried."
|
|
8868
|
+
},
|
|
8869
|
+
"immutable": true,
|
|
8870
|
+
"locationInModule": {
|
|
8871
|
+
"filename": "src/providers/common.ts",
|
|
8872
|
+
"line": 423
|
|
8873
|
+
},
|
|
8874
|
+
"name": "retryableErrors",
|
|
8875
|
+
"type": {
|
|
8876
|
+
"collection": {
|
|
8877
|
+
"elementtype": {
|
|
8878
|
+
"primitive": "string"
|
|
8879
|
+
},
|
|
8880
|
+
"kind": "array"
|
|
8881
|
+
}
|
|
8882
|
+
}
|
|
8915
8883
|
}
|
|
8916
8884
|
],
|
|
8917
8885
|
"symbolId": "src/providers/common:IRunnerProvider"
|
|
@@ -8926,7 +8894,7 @@
|
|
|
8926
8894
|
"kind": "interface",
|
|
8927
8895
|
"locationInModule": {
|
|
8928
8896
|
"filename": "src/providers/common.ts",
|
|
8929
|
-
"line":
|
|
8897
|
+
"line": 358
|
|
8930
8898
|
},
|
|
8931
8899
|
"name": "IRunnerProviderStatus",
|
|
8932
8900
|
"properties": [
|
|
@@ -8939,7 +8907,7 @@
|
|
|
8939
8907
|
"immutable": true,
|
|
8940
8908
|
"locationInModule": {
|
|
8941
8909
|
"filename": "src/providers/common.ts",
|
|
8942
|
-
"line":
|
|
8910
|
+
"line": 367
|
|
8943
8911
|
},
|
|
8944
8912
|
"name": "labels",
|
|
8945
8913
|
"type": {
|
|
@@ -8960,7 +8928,7 @@
|
|
|
8960
8928
|
"immutable": true,
|
|
8961
8929
|
"locationInModule": {
|
|
8962
8930
|
"filename": "src/providers/common.ts",
|
|
8963
|
-
"line":
|
|
8931
|
+
"line": 362
|
|
8964
8932
|
},
|
|
8965
8933
|
"name": "type",
|
|
8966
8934
|
"type": {
|
|
@@ -8976,7 +8944,7 @@
|
|
|
8976
8944
|
"immutable": true,
|
|
8977
8945
|
"locationInModule": {
|
|
8978
8946
|
"filename": "src/providers/common.ts",
|
|
8979
|
-
"line":
|
|
8947
|
+
"line": 392
|
|
8980
8948
|
},
|
|
8981
8949
|
"name": "ami",
|
|
8982
8950
|
"optional": true,
|
|
@@ -8993,7 +8961,7 @@
|
|
|
8993
8961
|
"immutable": true,
|
|
8994
8962
|
"locationInModule": {
|
|
8995
8963
|
"filename": "src/providers/common.ts",
|
|
8996
|
-
"line":
|
|
8964
|
+
"line": 387
|
|
8997
8965
|
},
|
|
8998
8966
|
"name": "image",
|
|
8999
8967
|
"optional": true,
|
|
@@ -9010,7 +8978,7 @@
|
|
|
9010
8978
|
"immutable": true,
|
|
9011
8979
|
"locationInModule": {
|
|
9012
8980
|
"filename": "src/providers/common.ts",
|
|
9013
|
-
"line":
|
|
8981
|
+
"line": 397
|
|
9014
8982
|
},
|
|
9015
8983
|
"name": "logGroup",
|
|
9016
8984
|
"optional": true,
|
|
@@ -9027,7 +8995,7 @@
|
|
|
9027
8995
|
"immutable": true,
|
|
9028
8996
|
"locationInModule": {
|
|
9029
8997
|
"filename": "src/providers/common.ts",
|
|
9030
|
-
"line":
|
|
8998
|
+
"line": 382
|
|
9031
8999
|
},
|
|
9032
9000
|
"name": "roleArn",
|
|
9033
9001
|
"optional": true,
|
|
@@ -9044,7 +9012,7 @@
|
|
|
9044
9012
|
"immutable": true,
|
|
9045
9013
|
"locationInModule": {
|
|
9046
9014
|
"filename": "src/providers/common.ts",
|
|
9047
|
-
"line":
|
|
9015
|
+
"line": 377
|
|
9048
9016
|
},
|
|
9049
9017
|
"name": "securityGroups",
|
|
9050
9018
|
"optional": true,
|
|
@@ -9066,7 +9034,7 @@
|
|
|
9066
9034
|
"immutable": true,
|
|
9067
9035
|
"locationInModule": {
|
|
9068
9036
|
"filename": "src/providers/common.ts",
|
|
9069
|
-
"line":
|
|
9037
|
+
"line": 372
|
|
9070
9038
|
},
|
|
9071
9039
|
"name": "vpcArn",
|
|
9072
9040
|
"optional": true,
|
|
@@ -9448,7 +9416,7 @@
|
|
|
9448
9416
|
"kind": "class",
|
|
9449
9417
|
"locationInModule": {
|
|
9450
9418
|
"filename": "src/access.ts",
|
|
9451
|
-
"line":
|
|
9419
|
+
"line": 46
|
|
9452
9420
|
},
|
|
9453
9421
|
"methods": [
|
|
9454
9422
|
{
|
|
@@ -9459,7 +9427,7 @@
|
|
|
9459
9427
|
},
|
|
9460
9428
|
"locationInModule": {
|
|
9461
9429
|
"filename": "src/access.ts",
|
|
9462
|
-
"line":
|
|
9430
|
+
"line": 78
|
|
9463
9431
|
},
|
|
9464
9432
|
"name": "apiGateway",
|
|
9465
9433
|
"parameters": [
|
|
@@ -9486,7 +9454,7 @@
|
|
|
9486
9454
|
},
|
|
9487
9455
|
"locationInModule": {
|
|
9488
9456
|
"filename": "src/access.ts",
|
|
9489
|
-
"line":
|
|
9457
|
+
"line": 87
|
|
9490
9458
|
},
|
|
9491
9459
|
"name": "githubWebhookIps",
|
|
9492
9460
|
"returns": {
|
|
@@ -9509,7 +9477,7 @@
|
|
|
9509
9477
|
},
|
|
9510
9478
|
"locationInModule": {
|
|
9511
9479
|
"filename": "src/access.ts",
|
|
9512
|
-
"line":
|
|
9480
|
+
"line": 57
|
|
9513
9481
|
},
|
|
9514
9482
|
"name": "lambdaUrl",
|
|
9515
9483
|
"returns": {
|
|
@@ -9527,7 +9495,7 @@
|
|
|
9527
9495
|
},
|
|
9528
9496
|
"locationInModule": {
|
|
9529
9497
|
"filename": "src/access.ts",
|
|
9530
|
-
"line":
|
|
9498
|
+
"line": 50
|
|
9531
9499
|
},
|
|
9532
9500
|
"name": "noAccess",
|
|
9533
9501
|
"returns": {
|
|
@@ -9555,7 +9523,7 @@
|
|
|
9555
9523
|
},
|
|
9556
9524
|
"locationInModule": {
|
|
9557
9525
|
"filename": "src/providers/lambda.ts",
|
|
9558
|
-
"line":
|
|
9526
|
+
"line": 224
|
|
9559
9527
|
},
|
|
9560
9528
|
"parameters": [
|
|
9561
9529
|
{
|
|
@@ -9582,7 +9550,7 @@
|
|
|
9582
9550
|
"kind": "class",
|
|
9583
9551
|
"locationInModule": {
|
|
9584
9552
|
"filename": "src/providers/lambda.ts",
|
|
9585
|
-
"line":
|
|
9553
|
+
"line": 456
|
|
9586
9554
|
},
|
|
9587
9555
|
"name": "LambdaRunner",
|
|
9588
9556
|
"symbolId": "src/providers/lambda:LambdaRunner"
|
|
@@ -9602,7 +9570,7 @@
|
|
|
9602
9570
|
},
|
|
9603
9571
|
"locationInModule": {
|
|
9604
9572
|
"filename": "src/providers/lambda.ts",
|
|
9605
|
-
"line":
|
|
9573
|
+
"line": 224
|
|
9606
9574
|
},
|
|
9607
9575
|
"parameters": [
|
|
9608
9576
|
{
|
|
@@ -9674,45 +9642,6 @@
|
|
|
9674
9642
|
},
|
|
9675
9643
|
"static": true
|
|
9676
9644
|
},
|
|
9677
|
-
{
|
|
9678
|
-
"docs": {
|
|
9679
|
-
"stability": "experimental"
|
|
9680
|
-
},
|
|
9681
|
-
"locationInModule": {
|
|
9682
|
-
"filename": "src/providers/common.ts",
|
|
9683
|
-
"line": 474
|
|
9684
|
-
},
|
|
9685
|
-
"name": "addRetry",
|
|
9686
|
-
"parameters": [
|
|
9687
|
-
{
|
|
9688
|
-
"name": "task",
|
|
9689
|
-
"type": {
|
|
9690
|
-
"union": {
|
|
9691
|
-
"types": [
|
|
9692
|
-
{
|
|
9693
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.TaskStateBase"
|
|
9694
|
-
},
|
|
9695
|
-
{
|
|
9696
|
-
"fqn": "aws-cdk-lib.aws_stepfunctions.Parallel"
|
|
9697
|
-
}
|
|
9698
|
-
]
|
|
9699
|
-
}
|
|
9700
|
-
}
|
|
9701
|
-
},
|
|
9702
|
-
{
|
|
9703
|
-
"name": "errors",
|
|
9704
|
-
"type": {
|
|
9705
|
-
"collection": {
|
|
9706
|
-
"elementtype": {
|
|
9707
|
-
"primitive": "string"
|
|
9708
|
-
},
|
|
9709
|
-
"kind": "array"
|
|
9710
|
-
}
|
|
9711
|
-
}
|
|
9712
|
-
}
|
|
9713
|
-
],
|
|
9714
|
-
"protected": true
|
|
9715
|
-
},
|
|
9716
9645
|
{
|
|
9717
9646
|
"docs": {
|
|
9718
9647
|
"remarks": "Called by GithubRunners and shouldn't be called manually.",
|
|
@@ -9721,7 +9650,7 @@
|
|
|
9721
9650
|
},
|
|
9722
9651
|
"locationInModule": {
|
|
9723
9652
|
"filename": "src/providers/lambda.ts",
|
|
9724
|
-
"line":
|
|
9653
|
+
"line": 312
|
|
9725
9654
|
},
|
|
9726
9655
|
"name": "getStepFunctionTask",
|
|
9727
9656
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9750,7 +9679,7 @@
|
|
|
9750
9679
|
},
|
|
9751
9680
|
"locationInModule": {
|
|
9752
9681
|
"filename": "src/providers/lambda.ts",
|
|
9753
|
-
"line":
|
|
9682
|
+
"line": 373
|
|
9754
9683
|
},
|
|
9755
9684
|
"name": "grantStateMachine",
|
|
9756
9685
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9819,7 +9748,7 @@
|
|
|
9819
9748
|
},
|
|
9820
9749
|
"locationInModule": {
|
|
9821
9750
|
"filename": "src/providers/lambda.ts",
|
|
9822
|
-
"line":
|
|
9751
|
+
"line": 376
|
|
9823
9752
|
},
|
|
9824
9753
|
"name": "status",
|
|
9825
9754
|
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
@@ -9886,7 +9815,7 @@
|
|
|
9886
9815
|
"immutable": true,
|
|
9887
9816
|
"locationInModule": {
|
|
9888
9817
|
"filename": "src/providers/lambda.ts",
|
|
9889
|
-
"line":
|
|
9818
|
+
"line": 301
|
|
9890
9819
|
},
|
|
9891
9820
|
"name": "connections",
|
|
9892
9821
|
"overrides": "aws-cdk-lib.aws_ec2.IConnectable",
|
|
@@ -9978,6 +9907,27 @@
|
|
|
9978
9907
|
"type": {
|
|
9979
9908
|
"fqn": "aws-cdk-lib.aws_logs.ILogGroup"
|
|
9980
9909
|
}
|
|
9910
|
+
},
|
|
9911
|
+
{
|
|
9912
|
+
"docs": {
|
|
9913
|
+
"stability": "experimental",
|
|
9914
|
+
"summary": "List of step functions errors that should be retried."
|
|
9915
|
+
},
|
|
9916
|
+
"immutable": true,
|
|
9917
|
+
"locationInModule": {
|
|
9918
|
+
"filename": "src/providers/lambda.ts",
|
|
9919
|
+
"line": 213
|
|
9920
|
+
},
|
|
9921
|
+
"name": "retryableErrors",
|
|
9922
|
+
"overrides": "@cloudsnorkel/cdk-github-runners.IRunnerProvider",
|
|
9923
|
+
"type": {
|
|
9924
|
+
"collection": {
|
|
9925
|
+
"elementtype": {
|
|
9926
|
+
"primitive": "string"
|
|
9927
|
+
},
|
|
9928
|
+
"kind": "array"
|
|
9929
|
+
}
|
|
9930
|
+
}
|
|
9981
9931
|
}
|
|
9982
9932
|
],
|
|
9983
9933
|
"symbolId": "src/providers/lambda:LambdaRunnerProvider"
|
|
@@ -10527,7 +10477,7 @@
|
|
|
10527
10477
|
"kind": "interface",
|
|
10528
10478
|
"locationInModule": {
|
|
10529
10479
|
"filename": "src/runner.ts",
|
|
10530
|
-
"line":
|
|
10480
|
+
"line": 157
|
|
10531
10481
|
},
|
|
10532
10482
|
"name": "LogOptions",
|
|
10533
10483
|
"properties": [
|
|
@@ -10541,7 +10491,7 @@
|
|
|
10541
10491
|
"immutable": true,
|
|
10542
10492
|
"locationInModule": {
|
|
10543
10493
|
"filename": "src/runner.ts",
|
|
10544
|
-
"line":
|
|
10494
|
+
"line": 168
|
|
10545
10495
|
},
|
|
10546
10496
|
"name": "includeExecutionData",
|
|
10547
10497
|
"optional": true,
|
|
@@ -10559,7 +10509,7 @@
|
|
|
10559
10509
|
"immutable": true,
|
|
10560
10510
|
"locationInModule": {
|
|
10561
10511
|
"filename": "src/runner.ts",
|
|
10562
|
-
"line":
|
|
10512
|
+
"line": 175
|
|
10563
10513
|
},
|
|
10564
10514
|
"name": "level",
|
|
10565
10515
|
"optional": true,
|
|
@@ -10576,7 +10526,7 @@
|
|
|
10576
10526
|
"immutable": true,
|
|
10577
10527
|
"locationInModule": {
|
|
10578
10528
|
"filename": "src/runner.ts",
|
|
10579
|
-
"line":
|
|
10529
|
+
"line": 161
|
|
10580
10530
|
},
|
|
10581
10531
|
"name": "logGroupName",
|
|
10582
10532
|
"optional": true,
|
|
@@ -10595,7 +10545,7 @@
|
|
|
10595
10545
|
"immutable": true,
|
|
10596
10546
|
"locationInModule": {
|
|
10597
10547
|
"filename": "src/runner.ts",
|
|
10598
|
-
"line":
|
|
10548
|
+
"line": 184
|
|
10599
10549
|
},
|
|
10600
10550
|
"name": "logRetention",
|
|
10601
10551
|
"optional": true,
|
|
@@ -10771,7 +10721,7 @@
|
|
|
10771
10721
|
"assembly": "@cloudsnorkel/cdk-github-runners",
|
|
10772
10722
|
"datatype": true,
|
|
10773
10723
|
"docs": {
|
|
10774
|
-
"remarks": "The default is to retry
|
|
10724
|
+
"remarks": "The default is to retry 23 times for about 24 hours with increasing interval.",
|
|
10775
10725
|
"stability": "experimental",
|
|
10776
10726
|
"summary": "Retry options for providers."
|
|
10777
10727
|
},
|
|
@@ -10823,7 +10773,7 @@
|
|
|
10823
10773
|
{
|
|
10824
10774
|
"abstract": true,
|
|
10825
10775
|
"docs": {
|
|
10826
|
-
"default": "
|
|
10776
|
+
"default": "23",
|
|
10827
10777
|
"stability": "experimental",
|
|
10828
10778
|
"summary": "How many times to retry."
|
|
10829
10779
|
},
|
|
@@ -12244,14 +12194,13 @@
|
|
|
12244
12194
|
{
|
|
12245
12195
|
"abstract": true,
|
|
12246
12196
|
"docs": {
|
|
12247
|
-
"
|
|
12248
|
-
"stability": "
|
|
12249
|
-
"summary": "Options to retry operation in case of failure like missing capacity, or API quota issues."
|
|
12197
|
+
"deprecated": "use {@link retryOptions } on {@link GitHubRunners } instead",
|
|
12198
|
+
"stability": "deprecated"
|
|
12250
12199
|
},
|
|
12251
12200
|
"immutable": true,
|
|
12252
12201
|
"locationInModule": {
|
|
12253
12202
|
"filename": "src/providers/common.ts",
|
|
12254
|
-
"line":
|
|
12203
|
+
"line": 281
|
|
12255
12204
|
},
|
|
12256
12205
|
"name": "retryOptions",
|
|
12257
12206
|
"optional": true,
|
|
@@ -12274,7 +12223,7 @@
|
|
|
12274
12223
|
"kind": "interface",
|
|
12275
12224
|
"locationInModule": {
|
|
12276
12225
|
"filename": "src/providers/common.ts",
|
|
12277
|
-
"line":
|
|
12226
|
+
"line": 293
|
|
12278
12227
|
},
|
|
12279
12228
|
"name": "RunnerRuntimeParameters",
|
|
12280
12229
|
"properties": [
|
|
@@ -12288,7 +12237,7 @@
|
|
|
12288
12237
|
"immutable": true,
|
|
12289
12238
|
"locationInModule": {
|
|
12290
12239
|
"filename": "src/providers/common.ts",
|
|
12291
|
-
"line":
|
|
12240
|
+
"line": 307
|
|
12292
12241
|
},
|
|
12293
12242
|
"name": "githubDomainPath",
|
|
12294
12243
|
"type": {
|
|
@@ -12304,7 +12253,7 @@
|
|
|
12304
12253
|
"immutable": true,
|
|
12305
12254
|
"locationInModule": {
|
|
12306
12255
|
"filename": "src/providers/common.ts",
|
|
12307
|
-
"line":
|
|
12256
|
+
"line": 312
|
|
12308
12257
|
},
|
|
12309
12258
|
"name": "ownerPath",
|
|
12310
12259
|
"type": {
|
|
@@ -12320,7 +12269,7 @@
|
|
|
12320
12269
|
"immutable": true,
|
|
12321
12270
|
"locationInModule": {
|
|
12322
12271
|
"filename": "src/providers/common.ts",
|
|
12323
|
-
"line":
|
|
12272
|
+
"line": 317
|
|
12324
12273
|
},
|
|
12325
12274
|
"name": "repoPath",
|
|
12326
12275
|
"type": {
|
|
@@ -12337,7 +12286,7 @@
|
|
|
12337
12286
|
"immutable": true,
|
|
12338
12287
|
"locationInModule": {
|
|
12339
12288
|
"filename": "src/providers/common.ts",
|
|
12340
|
-
"line":
|
|
12289
|
+
"line": 302
|
|
12341
12290
|
},
|
|
12342
12291
|
"name": "runnerNamePath",
|
|
12343
12292
|
"type": {
|
|
@@ -12353,7 +12302,7 @@
|
|
|
12353
12302
|
"immutable": true,
|
|
12354
12303
|
"locationInModule": {
|
|
12355
12304
|
"filename": "src/providers/common.ts",
|
|
12356
|
-
"line":
|
|
12305
|
+
"line": 297
|
|
12357
12306
|
},
|
|
12358
12307
|
"name": "runnerTokenPath",
|
|
12359
12308
|
"type": {
|
|
@@ -12980,6 +12929,6 @@
|
|
|
12980
12929
|
"symbolId": "src/image-builders/aws-image-builder/deprecated/windows-components:WindowsComponents"
|
|
12981
12930
|
}
|
|
12982
12931
|
},
|
|
12983
|
-
"version": "0.
|
|
12984
|
-
"fingerprint": "
|
|
12932
|
+
"version": "0.10.0",
|
|
12933
|
+
"fingerprint": "+crE0rwqfHuHDyIaCsPdd6LVAkwDEKdQQuNNDM7LL50="
|
|
12985
12934
|
}
|