harness-eks-deployments

Harness EKS Deployments Skill

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "harness-eks-deployments" with this command: npx skills add lobbi-docs/claude/lobbi-docs-claude-harness-eks-deployments

Harness EKS Deployments Skill

Deploy to AWS EKS via Harness CD with Native Helm, Kubernetes manifests, or GitOps.

Use For

  • EKS deployment pipelines, deployment strategies (Rolling/Canary/Blue-Green)

  • Native Helm deployments, GitOps with ArgoCD, multi-environment promotion

Deployment Types

Native Helm Deployment

service: name: my-service serviceDefinition: type: NativeHelm spec: manifests: - manifest: identifier: helm_chart type: HelmChart spec: store: type: HarnessCode spec: repoName: my-app branch: main folderPath: charts/my-service chartName: my-service chartVersion: <+input> helmVersion: V3 artifacts: primary: primaryArtifactRef: ecr_image sources: - identifier: ecr_image type: Ecr spec: connectorRef: aws_connector region: us-west-2 imagePath: my-service tag: <+input>

Kubernetes Manifest Deployment

service: name: my-service serviceDefinition: type: Kubernetes spec: manifests: - manifest: identifier: k8s_manifests type: K8sManifest spec: store: type: HarnessCode spec: repoName: my-app branch: main paths: - k8s/base - k8s/overlays/<+env.name>

Deployment Strategies

Rolling (Zero-Downtime Default)

execution: steps: - step: type: K8sRollingDeploy name: Rolling Deploy identifier: rolling_deploy spec: skipDryRun: false timeout: 10m rollbackSteps: - step: type: K8sRollingRollback name: Rollback identifier: rollback

Canary (Progressive Traffic Shift)

execution: steps: - step: type: K8sCanaryDeploy name: Canary 10% identifier: canary_10 spec: instanceSelection: type: Percentage spec: percentage: 10 - step: type: HarnessApproval name: Approve Canary spec: approvers: userGroups: - account.DevOpsTeam - step: type: K8sCanaryDeploy name: Canary 50% identifier: canary_50 spec: instanceSelection: type: Percentage spec: percentage: 50 - step: type: K8sCanaryDeploy name: Full Rollout identifier: full_rollout spec: instanceSelection: type: Percentage spec: percentage: 100 rollbackSteps: - step: type: K8sCanaryDelete name: Canary Delete identifier: canary_delete

Blue-Green (Instant Cutover)

execution: steps: - step: type: K8sBGStageDeployment name: Stage Deployment identifier: stage_deployment - step: type: HarnessApproval name: Approve Switch spec: approvers: userGroups: - account.ProductionApprovers - step: type: K8sBGSwapServices name: Swap Services identifier: swap_services rollbackSteps: - step: type: K8sBGSwapServices name: Rollback Swap identifier: rollback_swap

EKS Infrastructure Definition

infrastructureDefinition: name: EKS Production identifier: eks_production type: KubernetesDirect spec: connectorRef: eks_connector namespace: <+service.name>-<+env.name> releaseName: <+service.name> allowSimultaneousDeployments: false

AWS EKS Connector

connector: name: EKS Production identifier: eks_production type: K8sCluster spec: credential: type: InheritFromDelegate delegateSelectors: - eks-delegate

Environment Configuration

Development

environment: name: Development identifier: development type: PreProduction overrides: manifests: - manifest: identifier: values_override type: Values spec: store: type: HarnessCode spec: repoName: my-app branch: main paths: - charts/my-service/values-dev.yaml

Production

environment: name: Production identifier: production type: Production overrides: manifests: - manifest: identifier: values_override type: Values spec: store: type: HarnessCode spec: repoName: my-app branch: main paths: - charts/my-service/values-prod.yaml

Verification & Health Checks

  • step: type: Verify name: Deployment Verification spec: type: Canary monitoredService: type: Default spec: sensitivity: MEDIUM duration: 5m
  • step: type: Http name: Health Check spec: url: http://<+service.name>.<+infra.namespace>.svc.cluster.local/health method: GET assertion: <+httpResponseCode> == 200

Multi-Environment Promotion Pipeline

pipeline: name: EKS Promotion Pipeline stages: - stage: name: Deploy Dev type: Deployment spec: deploymentType: NativeHelm environment: environmentRef: development execution: steps: - step: type: HelmDeploy name: Helm Deploy - stage: name: Deploy Staging type: Deployment spec: environment: environmentRef: staging when: pipelineStatus: Success - stage: name: Deploy Production type: Deployment spec: environment: environmentRef: production when: pipelineStatus: Success condition: <+pipeline.stages.deploy_staging.status> == "SUCCEEDED"

Common Expressions

Expression Purpose

<+service.name>

Service name

<+env.name>

Environment name

<+env.type>

Environment type (Production/PreProduction)

<+infra.namespace>

Kubernetes namespace

<+infra.releaseName>

Helm release name

<+artifact.image>

Full image path

<+artifact.tag>

Image tag

<+pipeline.executionId>

Pipeline execution ID

Troubleshooting

Issue Solution

Helm release failed Check values file syntax, verify chart dependencies

Pod stuck in Pending Check node resources, PVC availability

Image pull error Verify ECR connector, check image exists

Namespace not found Ensure namespace exists or set createNamespace: true

Rollback failed Check rollback steps, verify previous release exists

Verification failed Adjust sensitivity, extend duration

References

  • Harness EKS Tutorial

  • Native Helm Deployments

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vision-multimodal

No summary provided by upstream source.

Repository SourceNeeds Review
General

design-system

No summary provided by upstream source.

Repository SourceNeeds Review
General

kanban

No summary provided by upstream source.

Repository SourceNeeds Review