-
Notifications
You must be signed in to change notification settings - Fork 1.3k
Showing feature comparison between self-hosted runners #9325
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Merged
Changes from 6 commits
Commits
Show all changes
9 commits
Select commit
Hold shift + click to select a range
265ee00
Adding runner feature comparison information
yaningo 6e838e4
Refining matrix info
yaningo 47491d3
Fixing formatting
yaningo d2dae77
Implementing suggestions from reviewer
yaningo 6db4cf9
Adding more info/links
yaningo 97e71e2
Merge branch 'master' into DOCSS-839-runner-feature-matrix
yaningo 96738e1
Updating PR according to feedback
yaningo 9213113
Merge branch 'master' into DOCSS-839-runner-feature-matrix
yaningo 17b6671
Fixing capitalization
yaningo File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,118 @@ | ||
--- | ||
contentTags: | ||
platform: | ||
- Cloud | ||
- Server v4+ | ||
--- | ||
= Self-hosted runner feature comparison | ||
:description: A comparison table of the features available for CircleCI runners. | ||
:page-layout: classic-docs | ||
:page-liquid: | ||
:icons: font | ||
:experimental: | ||
|
||
This page offers a comparison of the features available for CircleCI machine runner vs. CircleCI container runner. | ||
|
||
[#feature-comparison-matrix] | ||
== Comparison matrix | ||
|
||
[.table.table-striped] | ||
[cols=4*, options="header", stripes=even] | ||
|=== | ||
|Feature | ||
|Description | ||
|Machine Runner | ||
|Container Runner | ||
|
||
|*Environment* | ||
|Where jobs run and how resources are managed | ||
|Full VM/bare metal | ||
|Kubernetes Pods | ||
|
||
|*Configuration File* | ||
|Primary file for runner setup | ||
|YAML config (location depends on OS) | ||
|Helm `values.yaml` | ||
|
||
|*Resource Control* | ||
|How compute resources are allocated | ||
|System level | ||
|Kubernetes limits | ||
|
||
|*Architecture Support* | ||
|CPU architectures available for builds | ||
|xref:runner-overview#available-self-hosted-runner-platforms[Depends on OS] | ||
|AMD64/ARM64 with `nodeSelector` | ||
|
||
|*Job Isolation* | ||
|How jobs are kept separate | ||
|VM-level | ||
|Container-level | ||
|
||
|*Scaling* | ||
|How runner capacity scales with demand | ||
|xref:runner-scaling#scaling-data[Manual/custom] | ||
|Kubernetes-based auto-scaling | ||
|
||
|*Service Containers* | ||
|Support for additional services in build | ||
|Not supported | ||
|Extensive support with resource controls | ||
|
||
|*Execution Modes* | ||
|How runner handles job execution | ||
|`single-task` or `continuous` | ||
|Pod-based execution | ||
|
||
|*Docker Support* | ||
|How Docker-in-Docker is handled | ||
|Native OS support | ||
|Requires special configuration (`setup_remote_docker`) | ||
|
||
|*Resource Cleanup* | ||
|How build environments are cleaned after jobs | ||
|Working directory cleanup | ||
|Container lifecycle | ||
|=== | ||
|
||
|
||
[#feature-highlights] | ||
== Feature Highlights | ||
|
||
*Machine Runner* | ||
|
||
* Latest generation of machine-based runners. | ||
* Full access to underlying operating system. | ||
* Ideal for workflows requiring VM-level isolation. | ||
* Consistent xref:variables#built-in-environment-variables[environment variables] with `CIRCLECI_RUNNER_*` prefix. | ||
* Supports SSH connectivity for debugging. | ||
yaningo marked this conversation as resolved.
Show resolved
Hide resolved
|
||
|
||
*Container Runner* | ||
|
||
* Kubernetes-native solution for container-based workflows. | ||
* Fine-grained resource allocation and constraints. | ||
* Supports service container configurations with pattern matching. | ||
* Advanced node selection via Kubernetes annotations. | ||
* Custom security contexts and volume mounting. | ||
* Support for spot instances via tolerations. | ||
* Configurable resource limits for primary and service containers. | ||
|
||
[#key-differences] | ||
== Key Differences | ||
|
||
*Machine runner* offers full VM isolation with the newest | ||
configuration patterns and improved controls. | ||
|
||
*Container runner* leverages Kubernetes for: | ||
|
||
* Container-based isolation. | ||
* Better scaling capabilities. | ||
* Advanced resource management. | ||
* Multiple architecture support. | ||
|
||
[#choose-a-runner] | ||
== When to Choose Each Runner | ||
|
||
*Machine runner*: Choose for full system access, custom system dependencies, or when Kubernetes is not available. | ||
|
||
*Container runner*: Best for cloud-native applications, teams using Kubernetes, and workloads that benefit from container orchestration. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.