Skip to main content

Which build infrastructure is right for me

With Harness CI, you can run builds on Harness-managed machines (Harness Cloud) or your own infrastructure.

Harness CloudSelf-managed machines
Maintained and updated by Harness.Maintained and updated by you or your cloud services provider.
Preinstalled with common software/tools.
You can add additional tools at runtime.
Configuration determined by you or your cloud services provider.
Use build credits to cover build minutes.
Default credits allowance varies by plan.
Costs vary for physical hardware maintenance, cloud services provider pricing models, or other factors.

Learn more about each option below, including recommended use cases, supported platforms, and feature compatibility.

Harness Cloud

When you use Harness Cloud, your builds run in isolation on Harness-managed machines. You can run builds at scale on Linux, Windows, and macOS machines that are preinstalled with software commonly used in CI pipelines.

Harness hosts, maintains, and upgrades these machines so that you can focus on developing software instead of maintaining build farms.

Harness Cloud advantages
  • Harness-managed infrastructure. You don't need to bring or maintain your own infrastructure.
  • Highly scalable.
  • Quick and easy configuration. Start building in seconds.
  • Linux, Windows, and macOS platforms with modifiable images.
  • Usually first to receive new feature developments.
  • Available for all plan tiers.

Bring-your-own infrastructure

Self-managed build infrastructure options include local machines, Kubernetes clusters, and AWS/GCP/Azure VMs.

Local runner

When you use a local runner, also known as a Docker runner, you run builds on a local machine. You can execute build steps in Docker containers or directly on the host machine.

This option is recommended for small, limited-scale builds, such as one-off builds on your local machine. It is commonly used to build custom apps that have specific build machine requirements, such as legacy Windows apps that must be built on a custom Windows VM.

Self-managed local build infrastructure is available with all CI plans.

Kubernetes cluster

When you use a Kubernetes cluster build infrastructure, you can run ephemeral builds-at-scale in your own self-managed Kubernetes clusters. In this case, each CI stage executes in a pod, and the stage's steps share the pod's resources.

If you are familiar with Kubernetes, this option is relatively easy to set up and manage, but there are some cluster configuration requirements.

AWS/GCP/Azure VMs

You can run builds on self-managed AWS, GCP, or Azure VMs

This option can be challenging to configure and manage if you're not already familiar with managing cloud-provider VMs. However, compared to the Kubernetes cluster build infrastructure option, it allows you more freedom with Docker commands, offers native support for Windows, can support Docker builds on Windows (based on the VM configuration), and supports Linux, Windows, and macOS platforms.

While you can use an Anka registry to configure a macOS build farm, Harness recommends using Harness Cloud for macOS builds.

Supported operating systems and architectures

The following table shows the supported operating systems and architectures for each build infrastructure option.

Operating systemArchitectureHarness CloudSelf-managed local runnerSelf-managed Kubernetes clusterSelf-managed AWS/GCP/Azure VMs
Linuxamd64✅ Supported✅ Supported✅ Supported✅ Supported
Linuxarm64✅ Supported✅ Supported✅ Supported✅ Supported
macOSarm64 (M1)✅ Supported & Recommended✅ Supported❌ Not supported🔸 Supported, not recommended
Windowsamd64✅ Supported✅ Supported✅ Supported✅ Supported
Windowsarm64✅ Supported❌ Not supported❌ Not supported❌ Not supported
info

Harness recommends Harness Cloud for macOS builds.

This recommendation is due to licensing requirements and the complexity of configuring and managing macOS VMs with Anka virtualization.

With Harness Cloud, your builds run on Harness-managed machines, and you can start running builds in minutes.

Feature compatibility matrix

Some Harness CI features are not compatible with all build infrastructures or platforms. New features are rolled out for Harness Cloud first before being enabled for other build infrastructures.

FeatureHarness CloudSelf-managed local runnerSelf-managed Kubernetes clusterSelf-managed AWS/GCP/Azure VMs
Test Intelligence✅ Supported✅ Supported✅ Supported✅ Supported
Test splitting✅ Supported✅ Supported✅ Supported✅ Supported
Cache Intelligence✅ Supported✅ Supported✅ Supported✅ Supported
Cache to S3/GCS✅ Supported✅ Supported✅ Supported✅ Supported
Multilayer caching✅ Supported✅ Supported✅ Supported✅ Supported
Harness-managed Docker layer caching✅ Supported✅ Supported✅ Supported✅ Supported
Delegate selectors🔸 Not applicable✅ Supported - Pipeline and stage delegate selectors✅ Supported - Pipeline, stage, and connector delegate selectors❌ Not supported
Harness Secret Manager✅ Supported✅ Supported✅ Supported✅ Supported
Bring-your-own secret manager❌ Not supported✅ Supported✅ Supported
GitHub App support❌ Not supported✅ Supported✅ Supported
STO steps/stages✅ Supported - Linux❌ Not supported✅ Supported
  • ✅ Supported - Linux
  • ❌ Not supported - Windows
Plugins✅ Supported - Run on containers or host machine
  • ✅ Supported - Run on containers
  • ❌ Not supported - Run on host machine
  • ✅ Supported - Run on containers
  • 🔸 Not applicable - Run on host machine
  • ✅ Supported - Run on containers
  • ❌ Not supported - Run on host machine
GitHub Actions✅ Supported - GitHub Actions plugin step✅ Supported - Drone plugin✅ Supported - Drone plugin✅ Supported - Drone plugin
Bitrise Workflow Steps✅ Supported - Bitrise plugin step❌ Not supported❌ Not supported❌ Not supported
Plugin output variables✅ Supported❌ Not supported✅ Supported✅ Supported
Build details - Artifacts tab✅ Supported✅ Supported✅ Supported✅ Supported
IP Allowlisting✅ Supported for Mac, Linux, Windows✅ Supported✅ Supported✅ Supported
Secure Connect✅ Supported - Linux
🔸 Planned - macOS/Windows (Use IP allowlisting)
❌ Not supported❌ Not supported❌ Not supported