Harness Cloud VM Images
Reference for VM images on Harness Cloud Machines
Harness provides preconfigured virtual machine (VM) images to run your pipeline stages in Harness Cloud. These images come with common build tools and dependencies preinstalled, so you can focus on building and testing your code without worrying about setup.
Every stage runs on a fresh VM, ensuring clean, isolated executions.
For a full list of the tools included in each image, visit the Harness Cloud VM image repository.
Cloud VM Images
Available VM Images Image Tags
Below is a list of the images used by Harness Cloud. You can either:
Use a moving image tag (for example,
ubuntu-latest) to automatically receive updates, orPin to a specific image version to maximize build reproducibility.
VM Images:
mac-latest, mac-sonoma, or macos_sonoma_xcode_16.3
macOS 14 (Sonoma) with Xcode 15.2 (default), 16.3, 16.1, 15.1
GA
macos_sequoia, macos_sequoia_xcode_16.4, or macos-sequoia-xcode-26.2
macOS 15 (Sequoia) with Xcode 16.4 (default), 16.3, 26.0, 26.1, 26.2, 26.3, 26.4
BETA
macos-tahoe
macOS 26 (Tahoe) with Xcode 26.4.1 (default), 26.3, 26.5, 27.0 (Beta 5)
BETA
Choosing an image version
Harness VM images use a versioning system to help you balance between getting the latest updates and maintaining build stability.
To select an the image tag to use, simply provide it in the imageName property of the cloud infrastructure runtime section.
Best Practice: Pin Image Versions in Production
Since using the latest tag may contain breaking changes or updated tool versions that could affect your build. Always test thoroughly before updating production pipelines.
To ensure stable production deployments while still benefiting from the latest updates, we recommend the following approach:
Test in Dev: Use latest in non-prod pipelines and confirm everything works with the new image.
Update Prod: Switch production pipelines to the new image, and pin image name to a specific version.
To simplify the rollout and management of image tag updates across environments, we recommend defining the image name as a variable at the Account, Org, Project, or Pipeline level in Harness. This will ensure you can pin your pipeline to a new version globally.
The latest image may contain breaking changes or updated tool versions that could affect your build. Always test thoroughly before updating production pipelines.
Image Updates and Maintenance
Harness regularly updates VM images to include:
Security patches and OS updates.
Latest versions of popular development tools.
Runtime updates (Node.js, Python, Java, etc.).
New tools and utilities based on community feedback.
Image Lifecycle
This section outlines Harness's policy for managing VM image releases, versioning, and deprecation in Harness Cloud.
Deprecation Policy
N-1 Support Model
Harness supports the latest 2 major versions of each operating system at any given time. When a new GA version is released, deprecation of the oldest supported GA version begins.
Harness provides Ubuntu LTS (Long Term Support) images for both AMD64 and ARM64 architectures.
Example: When a new Ubuntu major version becomes LTS → Harness publishes a new image → Ubuntu 24.04 (N-1) remains available → Ubuntu 22.04 (the N-2 maintained LTS image) deprecation process begins.
Deprecation Process
When an image is deprecated, we follow this timeline to minimize disruption:
Announcement — Public notice via RSS feed with the target deprecation date. Minimum notice: 60 days for Linux, 30 days for macOS.
Migration period — Time to update your pipelines to use supported images.
Removal — Image is no longer available after the deprecation date.
Xcode Versions Availability
Harness provides three Xcode versions pre-installed on each macOS image:
Base version - The Xcode version that ships with the macOS release (e.g., Xcode 16.0 comes with macOS 15). This only updates when we upgrade to a new major macOS version.
Latest stable version - The newest production Xcode release (e.g., Xcode 16.4). This updates regularly as Apple releases new stable versions.
Latest beta version — The current Xcode beta or preview release (e.g., Xcode 17.0 beta). If Apple promotes the beta to GA and no new beta is available, this slot contains the newly released stable version, resulting in two stable versions on the image (e.g., Xcode 16.4 and 17.0).
Pre-installed Software Version Management
Using preinstalled software
Harness-hosted VM images include a comprehensive set of preinstalled software packages, development tools, and runtime environments. This eliminates the need to install common dependencies during your pipeline execution, significantly reducing build times.
You can customize the Harness Cloud build environment. In your pipelines, you can select specific versions of pre-installed tools, ensure that a step uses a specific version every time, or install additional tools and versions that aren't preinstalled on the Harness Cloud images. You can run these steps on the host machine or as separate Docker containers.
Specify versions
If a Harness Cloud image has multiple versions of a tool pre-installed, you can specify the version that you want to use in a step's Command. For example, with the Harness Cloud macOS build infrastructure, you could use the following command in a Run step to select an Xcode version:
Harness Cloud machine images can change. If your pipeline relies on a specific version of a software, tool, or environment, make sure you lock versions to prevent your pipeline from failing when the image changes.
Lock versions or install additional tools
If your build requires a specific version of a tool or you need to use a version/tool that isn't pre-installed on the Harness Cloud image, you must add a step (such as a Run step or Plugin step) to install the version/tool directly on the build machine or run a Docker image that has the required version/tool.
When installing additional tools, run apt-get update before installing new software that might not be in the packages list.
Verifying software versions
To see the exact versions of preinstalled software on each image, check the detailed specifications in the Harness Cloud documentation. Each image type has its own README file with current software versions and installation details.
Alternatively, if you prefer verifying software versions within your pipeline, refer to the following sample:
Installing additional software
While Harness VM images come with many tools preinstalled, you may need to install additional software specific to your project.
Using package managers
You can install additional packages using the system package manager during your pipeline:
Installing language-specific packages
Install packages using language-specific package managers:
Performance considerations
Installing software during pipeline execution increases build time. Consider these approaches for better performance:
Use preinstalled software when possible
Cache dependencies between builds when available
Consider creating custom Docker images for complex dependencies
Use specific tool versions that are already preinstalled
Bring Your Own Image (BYOI)
Harness supports Bring Your Own Image (BYOI), allowing you to use Harness Cloud with your own custom images. Create VM images with your tools and dependencies pre-installed for faster, more consistent CI builds.
Linux BYOI
For Linux builds, you can create custom images using Packer with the BYOI builder plugin. This allows you to:
Pre-install development tools, SDKs, and dependencies
Configure environment settings and files
Build on top of Ubuntu base images or your existing BYOI images
Linux BYOI images are built with the Harness BYOI builder plugin and stored in Harness-managed storage. Unlike macOS BYOI, Linux BYOI does not use an external registry pull model. Supplying a custom image connector (for example, the Override Image Connector stage infrastructure setting) is not supported for the Linux BYOI VM image, so you cannot host the Linux BYOI image in your own registry. Reference the image by imageName:imageVersion.
Go to Harness Cloud BYOI to review detailed instructions for creating and using custom Linux images.
Windows BYOI
For Windows builds, you can create custom images using Packer with the BYOI builder plugin on Windows Server 2022 or 2025 (amd64 only). The same authoring and delivery model as Linux BYOI applies:
Windows BYOI images are built with the Harness BYOI builder plugin and stored in Harness-managed storage.
Windows BYOI does not use an external registry pull model. Supplying a custom image connector (for example, the Override Image Connector stage infrastructure setting) is not supported for the Windows BYOI VM image, so you cannot host the Windows BYOI image in your own registry.
Reference the image by
imageName:imageVersion.
Go to Harness Cloud BYOI to review detailed instructions for creating and using custom Windows images.
macOS BYOI
macOS BYOI support is also available for custom macOS build environments. Unlike Linux and Windows BYOI, which use Packer to build custom VM images stored by Harness, macOS BYOI uses an OCI registry pull model — you push a pre-configured image layer to an OCI-compatible registry, and Harness pulls it onto the macOS VM at build time.
Best Practice: Always retag your custom image with a new version whenever changes are made. This ensures Harness Cloud picks up the updated image during your build.
Staying Informed
Subscribe to the Harness CI RSS feed to receive notifications about:
Image deprecation announcements
New image releases
RSS Feed URL: https://developer.harness.io/release-notes/continuous-integration/rss.xml
Support and Feedback
For questions, issues, or feature requests related to Harness VM images, contact Harness Support.
Related Resources
Last updated
Was this helpful?