### Install Dependencies and Deploy Stacks
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/examples/typescript/split-stacks/README.md
Commands to install dependencies and deploy the example stacks in sequence. Ensure the VPC stack is deployed first, followed by the image builder stack, and finally the providers stack.
```bash
npm install
cdk synth
cdk deploy split-stacks-example-vpc
cdk deploy split-stacks-example-image-builder
cdk deploy split-stacks-example-providers
```
--------------------------------
### Install Dependencies
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/examples/typescript/composite-provider/README.md
Run this command to install project dependencies.
```bash
npm install
```
--------------------------------
### git
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Git.
```APIDOC
## git
### Description
A component to install Git.
### Method
RunnerImageComponent.git
### Request Example
```typescript
RunnerImageComponent.git()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### Install Dependencies and Deploy Stacks
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/examples/python/split-stacks/README.md
Commands to install project dependencies, synthesize CloudFormation templates, and deploy the VPC, image builder, and providers stacks sequentially.
```bash
# Install dependencies
pip install -r requirements.txt
# Synthesize the CloudFormation templates
cdk synth
# Deploy the VPC stack first
cdk deploy split-stacks-example-vpc
# Then deploy the image builder stack
cdk deploy split-stacks-example-image-builder
# Finally deploy the providers stack
cdk deploy split-stacks-example-providers
```
--------------------------------
### Install Dependencies
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/examples/python/ec2-windows-provider/README.md
Install project dependencies using pip.
```bash
pip install -r requirements.txt
```
--------------------------------
### CDK GitHub Runners Deployment Output Example
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
This is an example of the output you might see after a successful CDK deployment, including the status command and deployment time.
```bash
✅ github-runners-test
✨ Deployment time: 260.01s
Outputs:
github-runners-test.runnersstatuscommand4A30F0F5 = aws --region us-east-1 lambda invoke --function-name github-runners-test-runnersstatus1A5771C0-mvttg8oPQnQS status.json
```
--------------------------------
### WindowsComponents.git
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Git on Windows.
```APIDOC
## WindowsComponents.git
### Description
Installs Git on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.git(scope, id)
```
```
--------------------------------
### Install cdk-github-runners in Go
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Fetch the Go module using go get. This is necessary for integrating the construct into your Go CDK projects.
```bash
go get github.com/CloudSnorkel/cdk-github-runners-go/cloudsnorkelcdkgithubrunners
```
--------------------------------
### Install Git Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Git. Optionally specify a software version; defaults to the latest. The version is only used on Windows; on Linux, the package manager is used.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.git(version?: string)
```
--------------------------------
### WindowsComponents.docker
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker on Windows.
```APIDOC
## WindowsComponents.docker
### Description
Installs Docker on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.docker(scope, id)
```
```
--------------------------------
### LogOptions Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize LogOptions.
```APIDOC
## LogOptions
### Initializer
```typescript
import { LogOptions } from '@cloudsnorkel/cdk-github-runners'
const logOptions: LogOptions = { ... }
```
### Description
Defines what execution history events are logged and where they are logged.
```
--------------------------------
### CodeBuildRunnerProviderProps Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize CodeBuildRunnerProviderProps.
```APIDOC
## CodeBuildRunnerProviderProps Initializer
### Description
Demonstrates the basic structure for initializing `CodeBuildRunnerProviderProps`.
### Usage
```typescript
import { CodeBuildRunnerProviderProps } from '@cloudsnorkel/cdk-github-runners'
const codeBuildRunnerProviderProps: CodeBuildRunnerProviderProps = { ... }
```
```
--------------------------------
### docker
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker. Versioning behavior differs between Windows and Linux.
```APIDOC
## docker
### Description
A component to install Docker. 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).
### Method
RunnerImageComponent.docker
### Parameters
#### Query Parameters
- **version** (string) - Optional - Software version to install (e.g. '29.1.5'). Default: latest. Only used on Windows; on Linux (Ubuntu, Amazon Linux 2 and Amazon Linux 2023) the package version format is not reliably predictable so latest is always used.
### Request Example
```typescript
RunnerImageComponent.docker('29.1.5')
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### WindowsComponents.awsCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs AWS CLI on Windows.
```APIDOC
## WindowsComponents.awsCli
### Description
Installs AWS CLI on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.awsCli(scope, id)
```
```
--------------------------------
### ContainerImageBuilderProps Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize ContainerImageBuilderProps.
```APIDOC
## Initializer for ContainerImageBuilderProps
### Description
Properties for ContainerImageBuilder construct.
### Usage
```typescript
import { ContainerImageBuilderProps } from '@cloudsnorkel/cdk-github-runners'
const containerImageBuilderProps: ContainerImageBuilderProps = { ... }
```
```
--------------------------------
### WindowsComponents.githubCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs GitHub CLI on Windows.
```APIDOC
## WindowsComponents.githubCli
### Description
Installs GitHub CLI on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.githubCli(scope, id)
```
```
--------------------------------
### githubCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the GitHub CLI.
```APIDOC
## githubCli
### Description
A component to install the GitHub CLI.
### Method
RunnerImageComponent.githubCli
### Request Example
```typescript
RunnerImageComponent.githubCli()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### Configure Docker Setup Commands for Runner Image Build
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Specify additional commands to run on the build host before the Docker runner image build starts. Use this for actions like `docker login` or `aws ecr get-login-password` to pull private base images.
```typescript
public readonly dockerSetupCommands: string[];
```
--------------------------------
### CDK GitHub Runners Deployment Status Check
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
After deploying the stack, execute this command to get the status of the GitHub runners setup. The output will contain a URL for manual GitHub integration setup if needed.
```bash
aws --region us-east-1 lambda invoke --function-name status-XYZ123 status.json
```
--------------------------------
### Initialize ContainerImageBuilderProps
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize the `ContainerImageBuilderProps` with necessary properties.
```typescript
import { ContainerImageBuilderProps } from '@cloudsnorkel/cdk-github-runners'
const containerImageBuilderProps: ContainerImageBuilderProps = { ... }
```
--------------------------------
### Configure Setup Function Access
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Configure access for the setup function. Initially set to LambdaAccess.lambdaUrl(), it can be restricted to specific IPs using LambdaAccess.apiGateway({ allowedIps: ['my-ip/0']}) or disabled with LambdaAccess.noAccess() after setup.
```typescript
public readonly setupAccess: LambdaAccess;
```
--------------------------------
### LinuxUbuntuComponents.git
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs and configures Git on a Linux Ubuntu environment.
```APIDOC
## LinuxUbuntuComponents.git
### Description
Installs and configures Git on a Linux Ubuntu environment.
### Method
Static Function
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **_architecture** (Architecture) - Required - The architecture for the Git installation.
```
--------------------------------
### awsCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the AWS CLI. Optionally specify a version.
```APIDOC
## awsCli
### Description
A component to install the AWS CLI.
### Method
RunnerImageComponent.awsCli
### Parameters
#### Query Parameters
- **version** (string) - Optional - Software version to install (e.g. '2.15.0'). Default: latest.
### Request Example
```typescript
RunnerImageComponent.awsCli('2.15.0')
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### Install GitHub CLI Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the GitHub CLI. Optionally specify a software version; defaults to the latest. The version is only used on Windows (x64/windows_amd64); on Linux, the package manager is used.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.githubCli(version?: string)
```
--------------------------------
### EcsRunnerProviderProps Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize EcsRunnerProviderProps.
```APIDOC
## EcsRunnerProviderProps
### Initializer
```typescript
import { EcsRunnerProviderProps } from '@cloudsnorkel/cdk-github-runners'
const ecsRunnerProviderProps: EcsRunnerProviderProps = { ... }
```
```
--------------------------------
### Initialize CodeBuildRunnerImageBuilderProps
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize the CodeBuildRunnerImageBuilderProps with necessary properties.
```typescript
import { CodeBuildRunnerImageBuilderProps } from '@cloudsnorkel/cdk-github-runners'
const codeBuildRunnerImageBuilderProps: CodeBuildRunnerImageBuilderProps = { ... }
```
--------------------------------
### Initialize EcsRunnerProviderProps
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize the EcsRunnerProviderProps. Ensure the EcsRunnerProviderProps is imported from '@cloudsnorkel/cdk-github-runners'.
```typescript
import { EcsRunnerProviderProps } from '@cloudsnorkel/cdk-github-runners'
const ecsRunnerProviderProps: EcsRunnerProviderProps = { ... }
```
--------------------------------
### WindowsComponents.githubRunner
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs GitHub Runner on Windows.
```APIDOC
## WindowsComponents.githubRunner
### Description
Installs GitHub Runner on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.githubRunner(scope, id)
```
```
--------------------------------
### WindowsComponents.extraCertificates
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs extra certificates on Windows.
```APIDOC
## WindowsComponents.extraCertificates
### Description
Installs extra certificates on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
* **path** (string) - Required - The path to the certificate file.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.extraCertificates(scope, id, path)
```
```
--------------------------------
### Ec2RunnerProviderProps Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize Ec2RunnerProviderProps.
```APIDOC
## Ec2RunnerProviderProps
Properties for {@link Ec2RunnerProvider} construct.
### Initializer
```typescript
import { Ec2RunnerProviderProps } from '@cloudsnorkel/cdk-github-runners'
const ec2RunnerProviderProps: Ec2RunnerProviderProps = { ... }
```
```
--------------------------------
### Initialize FargateRunnerProviderProps
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize FargateRunnerProviderProps. Ensure the necessary import is included.
```typescript
import { FargateRunnerProviderProps } from '@cloudsnorkel/cdk-github-runners'
const fargateRunnerProviderProps: FargateRunnerProviderProps = { ... }
```
--------------------------------
### CodeBuildImageBuilder.bindAmi
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Build and return an AMI with GitHub Runner installed in it.
```APIDOC
## bindAmi
### Description
Build and return an AMI with GitHub Runner installed in it.
### Method
```typescript
public bindAmi(): Ami
```
```
--------------------------------
### bindAmi
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Build and return an AMI with GitHub Runner installed in it.
```APIDOC
## bindAmi
### Description
Build and return an AMI with GitHub Runner installed in it.
Anything that ends up with a launch template pointing to an AMI that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing AMI and nothing else.
The AMI can be further updated over time manually or using a schedule as long as it is always written to the same launch template.
### Method
```typescript
public bindAmi(): RunnerAmi
```
```
--------------------------------
### Install GitHub Actions Runner Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the GitHub Actions Runner executable, which connects to GitHub to fetch and execute jobs. Requires a `RunnerVersion` to be specified.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.githubRunner(runnerVersion: RunnerVersion)
```
--------------------------------
### LinuxUbuntuComponents.extraCertificates
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs extra certificates on a Linux Ubuntu environment from a specified path.
```APIDOC
## LinuxUbuntuComponents.extraCertificates
### Description
Installs extra certificates on a Linux Ubuntu environment from a specified path.
### Method
Static Function
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **path** (string) - Required - The path to the extra certificates.
```
--------------------------------
### githubRunner
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the GitHub Actions Runner.
```APIDOC
## githubRunner
### Description
A component to install the GitHub Actions Runner.
### Method
RunnerImageComponent.githubRunner
### Request Example
```typescript
RunnerImageComponent.githubRunner()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### LinuxUbuntuComponents.docker
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs and configures Docker on a Linux Ubuntu environment.
```APIDOC
## LinuxUbuntuComponents.docker
### Description
Installs and configures Docker on a Linux Ubuntu environment.
### Method
Static Function
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **_architecture** (Architecture) - Required - The architecture for the Docker installation.
```
--------------------------------
### dockerInDocker
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker-in-Docker.
```APIDOC
## dockerInDocker
### Description
A component to install Docker-in-Docker.
### Method
RunnerImageComponent.dockerInDocker
### Request Example
```typescript
RunnerImageComponent.dockerInDocker()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### components
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
A list of components to be installed on the runner image during the build process.
```APIDOC
## components
### Description
Components to install on the image.
### Type
RunnerImageComponent[]
### Default
none
```
--------------------------------
### LinuxUbuntuComponents.githubCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs and configures the GitHub CLI on a Linux Ubuntu environment.
```APIDOC
## LinuxUbuntuComponents.githubCli
### Description
Installs and configures the GitHub CLI on a Linux Ubuntu environment.
### Method
Static Function
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **_architecture** (Architecture) - Required - The architecture for the GitHub CLI installation.
```
--------------------------------
### AmiBuilder.addComponent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Add a component to be installed.
```APIDOC
## AmiBuilder.addComponent
### Description
Add a component to be installed.
### Method
```typescript
public addComponent(component: ImageBuilderComponent): void
```
### Parameters
#### component
- **component** (ImageBuilderComponent) - Required - The component to add.
```
--------------------------------
### AmiBuilder.bindDockerImage
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Build and return a Docker image with GitHub Runner installed in it.
```APIDOC
## AmiBuilder.bindDockerImage
### Description
Build and return a Docker image with GitHub Runner installed in it. Anything that ends up with an ECR repository containing a Docker image that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing image and nothing else. It's important that the specified image tag be available at the time the repository is available. Providers usually assume the image is ready and will fail if it's not. The image can be further updated over time manually or using a schedule as long as it is always written to the same tag.
### Method
```typescript
public bindDockerImage(): RunnerImage
```
```
--------------------------------
### Setup Runner User Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Use this to set up the runner user component. Requires scope, id, and architecture.
```typescript
import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
LinuxUbuntuComponents.runnerUser(scope: Construct, id: string, _architecture: Architecture)
```
--------------------------------
### requiredPackages
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the required packages for the runner.
```APIDOC
## requiredPackages
### Description
A component to install the required packages for the runner.
### Method
RunnerImageComponent.requiredPackages
### Parameters
#### Request Body
- **props** (RequiredPackagesProps) - Required - Properties for installing required packages.
### Request Example
```typescript
RunnerImageComponent.requiredPackages({
// ... RequiredPackagesProps
})
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### ContainerImageBuilder.addComponent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Add a component to be installed.
```APIDOC
## addComponent
### Description
Add a component to be installed.
### Method
```typescript
public addComponent(component: ImageBuilderComponent): void
```
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
#### component
- *Type:* `ImageBuilderComponent` - Required - The component to add.
```
--------------------------------
### ContainerImageBuilder.prependComponent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Add a component to be installed before any other components.
```APIDOC
## prependComponent
### Description
Add a component to be installed before any other components.
Useful for required system settings like certificates or proxy settings.
### Method
```typescript
public prependComponent(component: ImageBuilderComponent): void
```
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
#### component
- *Type:* `ImageBuilderComponent` - Required - The component to add.
```
--------------------------------
### RunnerImageComponent.git
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Git on the runner image. Optionally specify a version.
```APIDOC
## RunnerImageComponent.git
### Description
A component to install Git.
### Method
RunnerImageComponent.git(version?: string)
### Parameters
#### Query Parameters
- **version** (string) - Optional - Software version to install (e.g. '2.43.0.windows.1'). Default: latest. Only used on Windows; on Linux the package manager is used.
```
--------------------------------
### LinuxUbuntuComponents.awsCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs and configures the AWS CLI on a Linux Ubuntu environment.
```APIDOC
## LinuxUbuntuComponents.awsCli
### Description
Installs and configures the AWS CLI on a Linux Ubuntu environment.
### Method
Static Function
### Parameters
#### Path Parameters
None
#### Query Parameters
None
#### Request Body
None
### Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **architecture** (Architecture) - Required - The architecture for the AWS CLI installation.
```
--------------------------------
### Get Failed Runner Starts Metric
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Use this method to obtain a CloudWatch metric for the number of failed runner starts. This metric is crucial for setting up alarms to ensure runners are starting successfully.
```typescript
GitHubRunners.metricFailed()
```
--------------------------------
### Install Docker Component for Runner Image
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker on the runner image. On Windows, this configures dockerd for Windows containers. For Linux containers on Windows, Docker Desktop is required, which may not be compatible with server environments. The version can be specified, defaulting to the latest.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.docker(version?: string)
```
--------------------------------
### AmiBuilder.prependComponent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Add a component to be installed before any other components, useful for required system settings.
```APIDOC
## AmiBuilder.prependComponent
### Description
Add a component to be installed before any other components. Useful for required system settings like certificates or proxy settings.
### Method
```typescript
public prependComponent(component: ImageBuilderComponent): void
```
### Parameters
#### component
- **component** (ImageBuilderComponent) - Required - The component to prepend.
```
--------------------------------
### GitHubRunnersProps Initialization
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize the GitHubRunnersProps object. Ensure all necessary properties are provided according to your project's requirements.
```typescript
import { GitHubRunnersProps } from '@cloudsnorkel/cdk-github-runners'
const gitHubRunnersProps: GitHubRunnersProps = { ... }
```
--------------------------------
### Setup Required Packages Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Use this to set up the required packages for a GitHub runner. Requires scope, id, and architecture.
```typescript
import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
LinuxUbuntuComponents.requiredPackages(scope: Construct, id: string, architecture: Architecture)
```
--------------------------------
### RunnerImageComponent.githubCli
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the GitHub CLI on the runner image. Optionally specify a version.
```APIDOC
## RunnerImageComponent.githubCli
### Description
A component to install the GitHub CLI.
### Method
RunnerImageComponent.githubCli(version?: string)
### Parameters
#### Query Parameters
- **version** (string) - Optional - Software version to install (e.g. '2.40.0'). Default: latest. Only used on Windows (x64/windows_amd64); on Linux the package manager is used.
```
--------------------------------
### ScheduledWarmRunnerProps schedule Property
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Determines when the pool of warm runners should start filling, for example, at the beginning of business hours. This is a required property.
```typescript
public readonly schedule: Schedule;
```
--------------------------------
### Initialize ScheduledWarmRunnerProps
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize the ScheduledWarmRunnerProps object. Ensure all required properties are provided.
```typescript
import { ScheduledWarmRunnerProps } from '@cloudsnorkel/cdk-github-runners'
const scheduledWarmRunnerProps: ScheduledWarmRunnerProps = { ... }
```
--------------------------------
### RunnerImageComponent.getCommands
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Returns commands to run in the built image. Can be used to install packages or set up build prerequisites.
```APIDOC
## getCommands
### Description
Returns commands to run to in built image. Can be used to install packages, setup build prerequisites, etc.
### Method Signature
```typescript
public getCommands(_os: Os, _architecture: Architecture): string[]
```
### Parameters
#### `_os`
- *Type:* Os - Required
- Description: The operating system for which to get commands.
#### `_architecture`
- *Type:* Architecture - Required
- Description: The architecture for which to get commands.
```
--------------------------------
### Get Commands for Runner Image - TypeScript
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Use this method to define commands that will be executed within the built Docker image. This is useful for installing packages or setting up build prerequisites. It requires the operating system and architecture.
```typescript
public getCommands(_os: Os, _architecture: Architecture): string[]
```
--------------------------------
### RunnerAmi Initializer
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of how to initialize a RunnerAmi object. Ensure the necessary import is included.
```typescript
import { RunnerAmi } from '@cloudsnorkel/cdk-github-runners'
const runnerAmi: RunnerAmi = { ... }
```
--------------------------------
### Setup Wizard Secret
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Setup secret used to authenticate user for our setup wizard. This should be empty after setup has been completed.
```typescript
public readonly setup: Secret;
```
--------------------------------
### CodeBuildImageBuilder bindAmi Method
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Builds and returns an AMI (Amazon Machine Image) with the GitHub Runner installed.
```typescript
public bindAmi(): AMI
```
--------------------------------
### Install AWS CLI Component for Runner Image
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Use this component to install the AWS CLI on the runner image. An optional version can be specified; otherwise, the latest version is installed.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.awsCli(version?: string)
```
--------------------------------
### Install cdk-github-runners in .NET
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Add the NuGet package to your .NET project. This enables the use of the construct in your C# CDK applications.
```bash
dotnet add package CloudSnorkel.Cdk.Github.Runners
```
--------------------------------
### LambdaAccess.noAccess
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Disables access to the configured Lambda function. This is useful for the setup function after setup is done.
```APIDOC
## LambdaAccess.noAccess
### Description
Disables access to the configured Lambda function. This is useful for the setup function after setup is done.
### Method Signature
```typescript
LambdaAccess.noAccess()
```
```
--------------------------------
### Install Docker-in-Docker Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker-in-Docker. Optionally specify a software version; defaults to the latest.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.dockerInDocker(version?: string)
```
--------------------------------
### LinuxUbuntuComponents.requiredPackages
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs required packages for the GitHub runner on Linux Ubuntu. Requires scope, id, and architecture.
```APIDOC
## LinuxUbuntuComponents.requiredPackages
### Description
Installs required packages for the GitHub runner on Linux Ubuntu. Requires scope, id, and architecture.
### Method Signature
```typescript
LinuxUbuntuComponents.requiredPackages(scope: Construct, id: string, architecture: Architecture)
```
### Parameters
#### Path Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **architecture** (Architecture) - Required - The architecture for the runner.
```
--------------------------------
### TypeScript: AmiBuilder addComponent Method
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Add a component to be installed. Components are installed in the order they are added.
```typescript
public addComponent(component: ImageBuilderComponent): void
```
--------------------------------
### LambdaAccess.noAccess Function
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Disables access to the configured Lambda function. This is useful for the setup function after initial setup is complete.
```typescript
import { LambdaAccess } from '@cloudsnorkel/cdk-github-runners'
LambdaAccess.noAccess()
```
--------------------------------
### Install cdk-github-runners in TypeScript/JavaScript
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Install the package using npm. This is required before using the construct in a Node.js CDK project.
```bash
npm i @cloudsnorkel/cdk-github-runners
```
--------------------------------
### Specify Runner Version for Installation
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Determines the version of GitHub Runners to be installed. Defaults to the latest available version if not specified.
```typescript
public readonly runnerVersion: RunnerVersion;
```
--------------------------------
### AmiBuilderProps Install Docker Configuration
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Determines whether Docker is installed within the image for runner usage. Defaults to true.
```typescript
public readonly installDocker: boolean;
```
--------------------------------
### Install cdk-github-runners in Python
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Install the package using pip. This is the first step to using the construct in a Python CDK project.
```bash
pip install cloudsnorkel.cdk-github-runners
```
--------------------------------
### FastLaunchOptions
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Options for enabling and configuring fast launch for AMIs.
```APIDOC
## FastLaunchOptions
### Description
Options for fast launch.
### Initializer
```typescript
import { FastLaunchOptions } from '@cloudsnorkel/cdk-github-runners'
const fastLaunchOptions: FastLaunchOptions = { ... }
```
### Properties
- **enabled** (boolean) - Optional - Enable fast launch for AMIs generated by this builder. Defaults to false.
- **maxParallelLaunches** (number) - Optional - The maximum number of parallel instances that are launched for creating resources. Must be at least 6. Defaults to 6.
- **targetResourceCount** (number) - Optional - The number of pre-provisioned snapshots to keep on hand for a fast-launch enabled Windows AMI.
```
--------------------------------
### Install CloudWatch Agent Component for Runner Image
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
This component installs the CloudWatch Agent on the runner image, enabling the sending of logs to CloudWatch. No configuration options are available.
```typescript
import { RunnerImageComponent } from '@cloudsnorkel/cdk-github-runners'
RunnerImageComponent.cloudWatchAgent()
```
--------------------------------
### Setup GitHub Runner Component
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Use this to set up a GitHub runner component. Requires scope, id, runner version, and architecture.
```typescript
import { LinuxUbuntuComponents } from '@cloudsnorkel/cdk-github-runners'
LinuxUbuntuComponents.githubRunner(scope: Construct, id: string, runnerVersion: RunnerVersion, architecture: Architecture)
```
--------------------------------
### Configure Fast Launch Options for Image Builder
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Options for fast launch. This is only supported for Windows AMIs.
```typescript
public readonly fastLaunchOptions: FastLaunchOptions;
```
--------------------------------
### ScheduledWarmRunner Initialization
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Demonstrates how to initialize a ScheduledWarmRunner with cron-based scheduling.
```APIDOC
## ScheduledWarmRunner (Cron Example)
### Description
Initializes a ScheduledWarmRunner that provisions runners based on a cron schedule.
### Method
new ScheduledWarmRunner
### Parameters
#### Initializer Parameters
- scope (constructs.Construct) - Required - The scope for the construct.
- id (string) - Required - The ID of the construct.
- props (ScheduledWarmRunnerProps) - Required - Properties for the ScheduledWarmRunner.
### Request Example
```typescript
// Cron: fill at 1pm on weekdays
new ScheduledWarmRunner(stack, 'Business Hours', {
runners,
provider: myProvider,
count: 3,
owner: 'my-org',
repo: 'my-repo',
schedule: events.Schedule.cron({ hour: '13', minute: '0', weekDay: 'MON-FRI' }),
duration: cdk.Duration.hours(2),
});
```
```
--------------------------------
### ScheduledWarmRunner Initialization
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Demonstrates how to initialize a ScheduledWarmRunner with rate-based scheduling.
```APIDOC
## ScheduledWarmRunner (Rate Example)
### Description
Initializes a ScheduledWarmRunner that provisions runners based on a rate schedule.
### Method
new ScheduledWarmRunner
### Parameters
#### Initializer Parameters
- scope (constructs.Construct) - Required - The scope for the construct.
- id (string) - Required - The ID of the construct.
- props (ScheduledWarmRunnerProps) - Required - Properties for the ScheduledWarmRunner.
### Request Example
```typescript
// Rate: fill every 12 hours
new ScheduledWarmRunner(stack, 'Every 12 Hours', {
runners,
provider: myProvider,
count: 2,
owner: 'my-org',
repo: 'my-repo',
schedule: events.Schedule.rate(cdk.Duration.hours(5)),
duration: cdk.Duration.hours(12),
});
```
```
--------------------------------
### WindowsComponents.cloudwatchAgent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs CloudWatch Agent on Windows.
```APIDOC
## WindowsComponents.cloudwatchAgent
### Description
Installs CloudWatch Agent on Windows.
### Method
static
### Parameters
#### Path Parameters
* **scope** (constructs.Construct) - Required - The scope in which to define this construct.
* **id** (string) - Required - The ID of the construct.
### Request Example
```typescript
import { WindowsComponents } from '@cloudsnorkel/cdk-github-runners'
WindowsComponents.cloudwatchAgent(scope, id)
```
```
--------------------------------
### runnerVersion
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Version of GitHub Runners to install.
```APIDOC
## runnerVersion
### Description
Version of GitHub Runners to install.
### Type
RunnerVersion
### Default
latest version available
```
--------------------------------
### Deploy CDK Stack
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/examples/python/ec2-windows-provider/README.md
Deploy the Cloud Development Kit stack to provision resources.
```bash
cdk deploy
```
--------------------------------
### Runner Configuration Command
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example command to configure a runner using provided parameters. Ensure all parameters are correctly substituted from Step Functions task parameters.
```sh
./config.sh --unattended --url "{REGISTRATION_URL}" --token "${RUNNER_TOKEN}" --ephemeral --work _work --labels "${RUNNER_LABEL}" --name "${RUNNER_NAME}" --disableupdate
```
--------------------------------
### storageSize
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Configures the size of the boot volume for launched runner instances.
```APIDOC
## storageSize
### Description
Size of volume available for launched runner instances.
This modifies the boot volume size and doesn't add any additional volumes.
### Type
aws-cdk-lib.Size
### Default
30GB
```
--------------------------------
### LinuxUbuntuComponents.runnerUser
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Sets up the user for the GitHub runner on Linux Ubuntu. Requires scope, id, and architecture.
```APIDOC
## LinuxUbuntuComponents.runnerUser
### Description
Sets up the user for the GitHub runner on Linux Ubuntu. Requires scope, id, and architecture.
### Method Signature
```typescript
LinuxUbuntuComponents.runnerUser(scope: Construct, id: string, _architecture: Architecture)
```
### Parameters
#### Path Parameters
- **scope** (constructs.Construct) - Required - The scope for the construct.
- **id** (string) - Required - The ID of the construct.
- **_architecture** (Architecture) - Required - The architecture for the runner.
```
--------------------------------
### dockerSetupCommands
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Additional commands to run on the build host before starting the Docker runner image build. Use this to execute commands such as `docker login` or `aws ecr get-login-password` to pull private base images.
```APIDOC
## dockerSetupCommands
### Description
Additional commands to run on the build host before starting the Docker runner image build. Use this to execute commands such as `docker login` or `aws ecr get-login-password` to pull private base images.
### Type
string[]
### Default
[]
```
--------------------------------
### RunnerImageBuilder.bindAmi
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Build and return an AMI with GitHub Runner installed in it. Anything that ends up with a launch template pointing to an AMI that runs GitHub self-hosted runners can be used.
```APIDOC
## bindAmi
### Description
Build and return an AMI with GitHub Runner installed in it. Anything that ends up with a launch template pointing to an AMI that runs GitHub self-hosted runners can be used. A simple implementation could even point to an existing AMI and nothing else. The AMI can be further updated over time manually or using a schedule as long as it is always written to the same launch template.
### Method
```typescript
public bindAmi(): RunnerAmi
```
```
--------------------------------
### gpu
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Number of GPUs to request for the runner task. When set, the task will be scheduled on GPU-capable instances. Requires a GPU-capable instance type (e.g., g4dn.xlarge for 1 GPU, g4dn.12xlarge for 4 GPUs) and GPU AMI. When creating a new cluster, instanceType defaults to g4dn.xlarge and the ECS Optimized GPU AMI is used. You must ensure that the task's container image includes the CUDA runtime. Provide a CUDA-enabled base image via `baseDockerImage`, use an image builder that starts from a GPU-capable image (such as nvidia/cuda), or add an image component that installs the CUDA runtime into the image.
```APIDOC
## gpu
### Description
Number of GPUs to request for the runner task. When set, the task will be scheduled on GPU-capable instances. Requires a GPU-capable instance type (e.g., g4dn.xlarge for 1 GPU, g4dn.12xlarge for 4 GPUs) and GPU AMI. When creating a new cluster, instanceType defaults to g4dn.xlarge and the ECS Optimized GPU AMI is used. You must ensure that the task's container image includes the CUDA runtime. Provide a CUDA-enabled base image via `baseDockerImage`, use an image builder that starts from a GPU-capable image (such as nvidia/cuda), or add an image component that installs the CUDA runtime into the image.
### Type
number
### Default
undefined (no GPU)
```
--------------------------------
### RunnerImageComponent.requiredPackages
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the necessary packages required for the runner to function.
```APIDOC
## RunnerImageComponent.requiredPackages
### Description
A component to install the required packages for the runner.
### Method
RunnerImageComponent.requiredPackages()
```
--------------------------------
### Customize AmiBuilder with Components and Settings
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of creating an `AmiBuilder` instance to customize the AMI used for runners. It demonstrates setting a specific runner version, defining a rebuild interval, and adding custom components with commands.
```typescript
const builder = new AmiBuilder(this, 'Builder', {
runnerVersion: RunnerVersion.specific('2.293.0'),
rebuildInterval: Duration.days(14),
});
builder.addComponent(new ImageBuilderComponent(scope, id, {
platform: 'Linux',
displayName: 'p7zip',
description: 'Install some more packages',
commands: [
'apt-get install p7zip',
],
}));
new Ec2RunnerProvider(this, 'EC2 provider', {
labels: ['custom-ec2'],
amiBuilder: builder,
});
```
--------------------------------
### cloudWatchAgent
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs the CloudWatch Agent for the runner to send logs.
```APIDOC
## cloudWatchAgent
### Description
A component to install CloudWatch Agent for the runner so we can send logs.
### Method
RunnerImageComponent.cloudWatchAgent
### Request Example
```typescript
RunnerImageComponent.cloudWatchAgent()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### Configure CodeBuildImageBuilder with Customizations
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Example of creating a CodeBuildImageBuilder with a specific Dockerfile, runner version, rebuild interval, and additional build arguments for packages.
```typescript
const builder = new CodeBuildImageBuilder(this, 'Builder', {
dockerfilePath: FargateRunnerProvider.LINUX_X64_DOCKERFILE_PATH,
runnerVersion: RunnerVersion.specific('2.293.0'),
rebuildInterval: Duration.days(14),
});
builder.setBuildArg('EXTRA_PACKAGES', 'nginx xz-utils');
new FargateRunnerProvider(this, 'Fargate provider', {
labels: ['customized-fargate'],
imageBuilder: builder,
});
```
--------------------------------
### RunnerImageComponent.shouldReboot
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Determines if the image builder should reboot after this component is installed.
```APIDOC
## shouldReboot
### Description
Returns true if the image builder should be rebooted after this component is installed.
### Method Signature
```typescript
public shouldReboot(_os: Os, _architecture: Architecture): boolean
```
### Parameters
#### `_os`
- *Type:* Os - Required
- Description: The operating system for which to check reboot status.
#### `_architecture`
- *Type:* Architecture - Required
- Description: The architecture for which to check reboot status.
```
--------------------------------
### Configure GitHubRunners with Custom Providers and VPC
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Configure runner providers for specific VPCs, security groups, and grant necessary permissions. This example shows setting up a custom CodeBuild provider and allowing runners to connect to a database.
```typescript
const vpc = ec2.Vpc.fromLookup(this, 'vpc', { vpcId: 'vpc-1234567' });
const runnerSg = new ec2.SecurityGroup(this, 'runner security group', { vpc: vpc });
const dbSg = ec2.SecurityGroup.fromSecurityGroupId(this, 'database security group', 'sg-1234567');
const bucket = new s3.Bucket(this, 'runner bucket');
// create a custom CodeBuild provider
const myProvider = new CodeBuildRunnerProvider(
this, 'codebuild runner',
{
labels: ['my-codebuild'],
vpc: vpc,
securityGroups: [runnerSg],
},
);
// grant some permissions to the provider
bucket.grantReadWrite(myProvider);
dbSg.connections.allowFrom(runnerSg, ec2.Port.tcp(3306), 'allow runners to connect to MySQL database');
// create the runner infrastructure
new GitHubRunners(
this,
'runners',
{
providers: [myProvider],
}
);
```
--------------------------------
### RunnerImageBuilder Initialization
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Demonstrates how to initialize the RunnerImageBuilder, which is used for building custom GitHub Runner Docker images or AMIs.
```APIDOC
## RunnerImageBuilder Initialization
### Description
Initializes a new instance of the `RunnerImageBuilder` class. This builder is responsible for creating Docker images or AMIs that include the GitHub Runner and other necessary software.
### Method
```typescript
new RunnerImageBuilder(scope: Construct, id: string, props?: RunnerImageBuilderProps)
```
### Parameters
#### Path Parameters
* None
#### Query Parameters
* None
#### Request Body
* None
### Parameters
#### `scope`
- **scope** (constructs.Construct) - Required - *No description.*
#### `id`
- **id** (string) - Required - *No description.*
#### `props`
- **props** (RunnerImageBuilderProps) - Optional - *No description.*
### Request Example
```typescript
import { RunnerImageBuilder } from '@cloudsnorkel/cdk-github-runners'
import { Construct } from 'constructs';
// Assuming 'scope' and 'id' are defined elsewhere
// const scope: Construct = ...;
// const id: string = 'MyRunnerImageBuilder';
// Example initialization with optional props
// const runnerImageBuilder = new RunnerImageBuilder(scope, id, { /* props */ });
// Example initialization without props
// const runnerImageBuilder = new RunnerImageBuilder(scope, id);
```
### Response
* This is a constructor, it does not return a value in the traditional sense but initializes an object.
### Response Example
* N/A
```
--------------------------------
### Os.is
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Checks if the given OS is the same as this one.
```APIDOC
## Os.is
### Description
Checks if the given OS is the same as this one.
### Method Signature
```typescript
public is(os: Os): boolean
```
### Parameters
#### Path Parameters
- **os** (Os) - Required - OS to compare.
```
--------------------------------
### lambdaEntrypoint
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Sets up the required Lambda entrypoint for Lambda runners.
```APIDOC
## lambdaEntrypoint
### Description
A component to set up the required Lambda entrypoint for Lambda runners.
### Method
RunnerImageComponent.lambdaEntrypoint
### Request Example
```typescript
RunnerImageComponent.lambdaEntrypoint()
```
### Response
#### Success Response (200)
- **void** - Component applied successfully.
```
--------------------------------
### Workflow for Customized Fargate Runner
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/README.md
Example workflow YAML demonstrating how to use a custom-labeled Fargate runner. Ensure the `runs-on` field matches the labels defined for your custom provider.
```yaml
name: self-hosted example
on: push
jobs:
self-hosted:
runs-on: [self-hosted, customized-fargate]
steps:
- run: echo hello world
```
--------------------------------
### RunnerImageComponent.dockerInDocker
Source: https://github.com/cloudsnorkel/cdk-github-runners/blob/main/API.md
Installs Docker-in-Docker on the runner image. Optionally specify a version.
```APIDOC
## RunnerImageComponent.dockerInDocker
### Description
A component to install Docker-in-Docker.
### Method
RunnerImageComponent.dockerInDocker(version?: string)
### Parameters
#### Query Parameters
- **version** (string) - Optional - Software version to install (e.g. '29.1.5'). Default: latest.
```