Harness EKS Deployments Skill 面向通过 Harness CD 向 AWS EKS 部署应用的场景,提供可参考的 YAML 配置模式。
用途
用于构建 EKS 部署流水线、配置部署策略(Rolling/Canary/Blue-Green)、实施 Native Helm 部署、结合 ArgoCD 的 GitOps,以及多环境提升。
主要能力
支持三种部署类型:
- Native Helm Deployment:以 NativeHelm 作为 serviceDefinition 类型,通过 HarnessCode 存储加载 Helm Chart,chartVersion 使用 <+input>,helmVersion 为 V3,制品来源为 ECR 镜像。
- Kubernetes Manifest Deployment:以 Kubernetes 作为 serviceDefinition 类型,通过 K8sManifest 加载 k8s/base 与 k8s/overlays/<+env.name> 路径下的清单。
- GitOps:描述中提及 GitOps 与 ArgoCD,但未提供具体的配置片段。
支持三种部署策略:
- Rolling(零停机默认):使用 K8sRollingDeploy 步骤,skipDryRun 为 false,超时 10m,回滚使用 K8sRollingRollback。
- Canary(渐进式流量切换):使用 K8sCanaryDeploy 按百分比推进(示例为 10%、50%、100%),中间插入 HarnessApproval 审批步骤,回滚使用 K8sCanaryDelete。
- Blue-Green(即时切换):使用 K8sBGStageDeployment 暂存部署,经 HarnessApproval 审批后通过 K8sBGSwapServices 切换服务,回滚同样使用 K8sBGSwapServices。
其他能力:
- EKS 基础设施定义:infrastructureDefinition 类型为 KubernetesDirect,包含 connectorRef、namespace(<+service.name>-<+env.name>)、releaseName(<+service.name>),并设置 allowSimultaneousDeployments 为 false。
- AWS EKS 连接器:connector 类型为 K8sCluster,凭据类型为 InheritFromDelegate,并通过 delegateSelectors 指定 eks-delegate。
- 环境配置:Development 为 PreProduction 类型、Production 为 Production 类型,各自通过 Values 类型的 manifest 覆盖 values-dev.yaml 或 values-prod.yaml。
- 验证与健康检查:Verify 步骤(类型 Canary,敏感度 MEDIUM,时长 5m)与 Http 步骤(对 cluster.local 的 /health 发起 GET,断言响应码为 200)。
- 多环境提升流水线:包含 Deploy Dev、Deploy Staging、Deploy Production 阶段,后续阶段通过 pipelineStatus 与阶段状态条件控制。
- 常见表达式:如 <+service.name>、<+env.name>、<+env.type>、<+infra.namespace>、<+infra.releaseName>、<+artifact.image>、<+artifact.tag>、<+pipeline.executionId>。
使用方式
按照技能提供的 YAML 片段配置服务定义、部署策略、基础设施定义、连接器、环境覆盖与提升流水线,并在 Harness 中执行。
适用场景
适用于需要规范化 EKS 发布流程、区分多环境(开发/预发/生产)、采用渐进式或即时切换策略、并加入审批与部署验证的团队。
限制
资料未提供价格、平台限制、配额或性能数据;GitOps 部分仅提及支持 ArgoCD,未给出具体配置示例;故障排查部分仅列出问题与对应解决方向,未展开详细步骤。