Harness CD (Continuous Delivery) for Kubernetes, Helm, Terraform, ECS, and serverless deployments with GitOps, approval gates, rollback strategies, and multi-environment promotion
Install
npx skillscat add markus41/claude/plugins-jira-orchestrator-skills-harness-cd Install via the SkillsCat registry.
About this skill
Harness CD provides continuous delivery pipelines for Kubernetes, Helm, Terraform, ECS and serverless workloads, enabling GitOps‑based deployments with approval gates, rollback and multi‑environment promotion. It solves the need for automated release management and should be used by developers or agents creating reproducible deployment workflows.
SKILL.md
Harness CD Skill
Deployment orchestration for Kubernetes, Helm, Terraform, ECS, serverless with GitOps.
Use For
- CD pipelines, strategies (Canary/Blue-Green/Rolling), environments
- Approval gates, GitOps, rollback, multi-environment promotion
Basic Deployment Pipeline
pipeline:
name: Deploy Pipeline
stages:
- stage:
name: Deploy Dev
type: Deployment
spec:
service:
serviceRef: my_service
environment:
environmentRef: development
execution:
steps:
- step:
name: Rolling Deploy
type: K8sRollingDeploy
timeout: 10m
rollbackSteps:
- step:
name: Rollback
type: K8sRollingRollbackDeployment Strategies
Rolling (gradual replacement)
- step:
type: K8sRollingDeploy
spec:
skipDryRun: falseCanary (progressive traffic shift)
- step:
type: K8sCanaryDeploy
spec:
instanceSelection:
type: Count
spec:
count: 1Blue-Green (zero-downtime cutover)
- step:
type: K8sBGStageDeployment
- step:
type: K8sBGSwapServicesService Configuration
Kubernetes
serviceDefinition:
type: Kubernetes
spec:
manifests:
- manifest:
type: K8sManifest
spec:
store:
type: Git
spec:
connectorRef: github_connector
branch: main
artifacts:
primary:
sources:
- type: DockerRegistry
spec:
imagePath: myorg/myappHelm
serviceDefinition:
type: NativeHelm
spec:
chartName: my-app
helmVersion: V3Terraform
serviceDefinition:
type: CustomDeployment
spec:
customDeploymentRef:
templateRef: terraform_templateEnvironment & Infrastructure
environment:
name: Production
type: Production
infrastructureDefinition:
type: KubernetesDirect
spec:
connectorRef: k8s_connector
namespace: my-namespaceApproval Gates
- step:
type: HarnessApproval
spec:
approvers:
userGroups:
- account.ProductionApprovers
# Jira: type: JiraApproval, issueKey: <+pipeline.variables.jiraIssueKey>
# ServiceNow: type: ServiceNowApproval, ticketNumber: <+pipeline.variables.changeRequest>GitOps Deployments
Argo CD
- step:
type: GitOpsUpdateReleaseRepo
spec:
variables:
- name: image_tag
value: <+artifact.tag>
- step:
type: GitOpsSync
spec:
prune: truePR-Based GitOps
- step:
type: CreatePR
spec:
updates:
- path: environments/<+env.name>/values.yaml
key: image.tag
value: <+artifact.tag>Deployment Verification & Rollback
- step:
type: Verify
spec:
type: Canary
sensitivity: MEDIUM
- step:
type: Http
spec:
url: <+infra.variables.serviceUrl>/health
failureStrategies:
- onFailure:
errors:
- AllErrors
action:
type: StageRollbackMulti-Environment Promotion
pipeline:
stages:
- stage:
name: Deploy Dev
spec:
environment:
environmentRef: development
- stage:
name: Deploy Staging
spec:
environment:
environmentRef: staging
when:
condition: <+pipeline.stages.deploy_dev.status> == "SUCCEEDED"
- stage:
name: Deploy Production
spec:
environment:
environmentRef: productionTriggers
# Artifact
trigger:
source:
type: Artifact
spec:
type: DockerRegistry
imagePath: myorg/myapp
# Webhook
trigger:
source:
type: Webhook
spec:
type: Github
# Scheduled
trigger:
source:
type: Scheduled
spec:
expression: "0 2 * * *"CD Expressions
| Expression | Purpose |
|---|---|
| <+service.name> | Service |
| <+env.name> | Environment |
| <+infra.namespace> | Namespace |
| <+artifact.image>:<+artifact.tag> | Image |
| <+pipeline.stages.X.output.VAR> | Output |
API Operations
curl -X POST "https://app.harness.io/pipeline/api/pipeline/execute/${PIPELINE_ID}" -H "x-api-key: ${API_KEY}"
curl -X GET "https://app.harness.io/pipeline/api/pipelines/execution/v2/${EXECUTION_ID}" -H "x-api-key: ${API_KEY}"
curl -X PUT "https://app.harness.io/pipeline/api/pipelines/execution/interrupt/${EXECUTION_ID}" -H "x-api-key: ${API_KEY}"Common Issues
| Issue | Solution |
|---|---|
| Deployment timeout | Increase step timeout |
| Image pull failed | Verify connector credentials |
| Namespace not found | Check infrastructure definition |
| Manifest error | Validate YAML locally |
| Approval timeout | Review approval workflow |
| Rollback failed | Configure rollback steps |