Migrate from Harness
Concept map
Section titled “Concept map”| Harness | Slipway | Notes |
|---|---|---|
| Account / Organization / Project | Organisation / Project | |
| Pipeline, Stage, Step | Pipeline, Stage, Job, Step | |
| CI stage (Build) | A job (or several) running steps | |
| CD stage (Deploy) | A deploy job with environment: |
Strategy runs in the deploy engine |
| Service | Service | Artifact source maps to the service’s artifact spec |
| Environment | Environment | Environment type (prod / non-prod) maps to kind |
| Infrastructure Definition | Infrastructure | Kubernetes, ECS, Lambda, Cloud Run, Azure, VM, Terraform |
| Delegate | Runner | Dials out, like the delegate; pools and labels replace delegate selectors |
| Delegate selector | runs_on labels |
|
| Connector | Integration | |
| Secrets Manager | Secrets with external references; BYOK keyring | |
| Rolling / Blue-Green / Canary deployment | rolling / bluegreen / canary |
|
| Continuous Verification | Canary verification | Provider queries, baselines and thresholds |
| Approval step (Harness / Jira / ServiceNow) | Approval, change-ticket gate | |
| Step Group, Looping strategy (matrix, repeat) | matrix |
|
| Conditional execution | if: with CEL |
|
| Failure strategy | retry, allow_failure, auto_rollback |
|
| Input sets, runtime inputs | manual / api inputs |
|
| Pipeline / Step templates | Org templates, extends |
Versioned and immutable |
| Triggers (webhook, scheduled, artifact) | on: triggers; release trigger for new releases |
|
| OPA policies | CEL policy gates (external OPA planned) | |
| Service variables, environment overrides | Variables scoped by service and environment | |
| Feature Flags | Flag integrations (LaunchDarkly, Unleash, Flagsmith) | Slipway does not implement flags itself |
| Cloud Cost Management, Chaos, STO | Not in scope | Integrate dedicated tools |
Worked example
Section titled “Worked example”A Harness pipeline with a Build stage, then a Deploy stage to a Kubernetes prod environment using canary with Prometheus verification and a Jira approval becomes:
version: 1name: apion: { push: { branches: [main] } }jobs: - name: build runs_on: [linux, docker] outputs: { version: "${{ steps.v.outputs.version }}" } steps: - uses: slipway/checkout@v1 - id: v run: echo "version=1.4.${{ git.short_sha }}" >> "$SLIPWAY_OUTPUT" - uses: slipway/docker-build@v1 - uses: slipway/release-create@v1 - name: deploy-prod needs: [build] environment: { name: production, service: api } steps: - uses: slipway/deploy@v1 with: { release: "${{ needs.build.outputs.version }}", strategy: canary }and in the app:
- Production environment:
required_approvals: 1,change_ticket_required: truewith the Jira integration (Business and above) in place of the Jira approval step. - Canary strategy config: steps
5 / 25 / 100and averifyblock using the Prometheus provider. See Canary verification. Translate Harness’s metric definitions intoerror_rateandrelativemetrics.
- Install runners in the networks your delegates cover; recreate delegate selectors as labels.
- Recreate connectors as integrations; prefer OIDC and external references over stored credentials.
- Model services and environments and attach infrastructure.
- Convert pipelines, starting with CI stages.
- Port verification by recreating metric queries and thresholds, then dry-run against recent deployments.
- Cut over environment by environment.