SuperAPI AI 工具集

harness-cd

部署与运维

查看项目

更新于 10-16 04:05

技能介绍

用途

Harness CD 技能面向 Harness 平台上的持续交付(CD)场景,用于编排部署流水线。当用户提出“使用 Harness 部署”“设置 Harness CD”“配置金丝雀/蓝绿/滚动部署”“添加审批门禁”等需求时可使用本技能。其覆盖的目标包括 Kubernetes、Helm、Terraform、ECS、Serverless,并结合 GitOps 工作流。

主要能力

  • CD 流水线与部署策略:支持 Canary(金丝雀)、Blue-Green(蓝绿)、Rolling(滚动)等部署策略,以及环境管理、审批门禁、GitOps、回滚和多环境晋级。
  • 服务配置:提供 Kubernetes(通过 K8sManifest 从 Git 拉取清单并配置 Docker Registry 制品源)、Helm(NativeHelm,helmVersion V3)、Terraform(CustomDeployment,引用 terraform_template)的 serviceDefinition 示例。
  • 环境与基础设施:定义 environment(如 Production)与 infrastructureDefinition(如 KubernetesDirect,指定 connectorRef 与 namespace)。
  • 审批门禁:支持 HarnessApproval(按用户组审批),并注释说明 Jira 审批(JiraApproval,配合 issueKey)与 ServiceNow 审批(ServiceNowApproval,配合 ticketNumber)。
  • GitOps 部署:支持 Argo CD(GitOpsUpdateReleaseRepo、GitOpsSync,可设置 prune)及基于 PR 的方式(CreatePR,更新 values.yaml 中的 image.tag)。
  • 部署验证与回滚:提供 Verify(Canary 类型,sensitivity 可设 MEDIUM)、Http 健康检查步骤,以及 failureStrategies 配置(onFailure,AllErrors,StageRollback)。
  • 多环境晋级:通过多个 stage(Dev、Staging、Production)配合 when condition(前一阶段状态为 SUCCEEDED)实现。
  • 触发器:支持 Artifact、Webhook(Github)、Scheduled(cron 表达式)三类触发源。
  • CD 表达式:如 <+service.name>、<+env.name>、<+infra.namespace>、<+artifact.image>:<+artifact.tag>、<+pipeline.stages.X.output.VAR> 等。
  • API 操作:提供执行流水线、查询执行状态、中断执行三类 curl 命令示例,使用 x-api-key 认证。

使用方式

技能通过 YAML 定义流水线、阶段、步骤、服务、环境、基础设施、触发器与失败策略;通过 CD 表达式在流水线中引用服务、环境、制品与阶段输出;通过 API 触发和控制流水线执行。示例包括基础部署流水线(Deploy Dev 阶段内使用 K8sRollingDeploy,回滚步骤使用 K8sRollingRollback)。

适用场景与限制

适用于在 Harness 上进行多环境、多策略的持续交付编排,尤其是需要审批门禁、GitOps 与回滚策略的场景。常见问题包括:部署超时(可增大步骤超时)、镜像拉取失败(检查连接器凭据)、命名空间不存在(检查基础设施定义)、清单错误(本地校验 YAML)、审批超时(检查审批工作流)、回滚失败(配置回滚步骤)。文档未提供收费、价格、平台具体版本的完整信息,暂未提供。