Migration Guide
Learn how to migrate from Harness NextGen (NG) to Harness 3.0.
This guide provides a step-by-step process for migrating from Harness NG to Harness 3.0. Existing NG resources are fully compatible with 3.0, so teams can migrate incrementally at their own pace.
Setup
Follow these eight steps to migrate from Harness NG to Harness 3.0. Each step can be performed independently, and you can proceed at whatever pace suits your team.
Review Existing Pipelines: Audit your existing NG pipelines to understand their structure, stage types, and dependencies. Identify pipelines that would benefit most from the v1 YAML format.
Simplify YAML: Convert pipeline YAML from the NG format to the v1 specification. Remove boilerplate fields like
projectIdentifierandorgIdentifierthat are no longer required at the pipeline level.Remove Stage Types: In v1 YAML, explicit stage type wrappers are simplified. The
type: Deploymentwith nestedspec.deploymentTypeis replaced with a flat type:deployortype: ci.Add Typed Inputs: Replace runtime inputs (
<+input>) with the new typed inputs system. Typed inputs support string, number, boolean, choice, and secret types with validation and default values.Deploy Delegate 3.0: Install the new unified Delegate 3.0 alongside existing delegates. Route new pipelines to Delegate 3.0 using delegate selectors, and decommission NG delegates as workloads are migrated.
Customize Navigation: Explore the new 3.0 navigation layout. Pin frequently used projects and resources, configure your sidebar preferences, and learn the keyboard shortcuts for efficient navigation.
Explore Harness Code: Harness Code is the built-in source code management system in Harness 3.0. Evaluate whether migrating repositories to Harness Code can simplify your pipeline configurations and reduce external dependencies.
Use Harness AI: Leverage the reimagined AI Assistant to accelerate your migration. It can help create new v1 pipelines, explain configuration differences, and troubleshoot issues during the transition.
The following example shows a side-by-side comparison of the same pipeline expressed in the NG format and the 3.0 v1 format. The v1 format is significantly shorter and easier to read.
Before: Harness NG YAML
# Harness NG (v0 YAML) <a href="#harness-ng-v0-yaml" id="harness-ng-v0-yaml"></a>
pipeline:
name: Deploy App
identifier: deploy_app
projectIdentifier: my_project
orgIdentifier: default
stages:
- stage:
name: Deploy to Dev
identifier: deploy_dev
type: Deployment
spec:
deploymentType: Kubernetes
service:
serviceRef: my_service
environment:
environmentRef: dev
deployToAll: false
infrastructureDefinitions:
- identifier: k8s_dev
execution:
steps:
- step:
name: Rolling Deploy
identifier: rolling
type: K8sRollingDeploy
spec:
skipDryRun: falseAfter: Harness 3.0 YAML
Backward compatibility
All existing NG resources are fully compatible with Harness 3.0. No modifications are required to continue using your existing configurations.
Fully compatible
Fully compatible
Fully compatible
Fully compatible
Fully compatible
Fully compatible
Fully compatible
When to use Pipeline v1
The v1 pipeline format is optional. Use the following guidance to decide when to adopt it versus continuing with existing NG pipelines.
Existing working pipelines
Keep using them as-is. NG pipelines are fully supported in 3.0 and will continue to work without changes.
Want to use new features
Create new pipelines using the v1 format. New features such as typed inputs, improved expressions, and simplified syntax are available in v1.
Need Stage Groups or GHA syntax
Requires Pipeline v1. Stage Groups (parallel stage orchestration) and GitHub Actions-compatible syntax are only available in the v1 format.
Last updated
Was this helpful?