Kubernetes Deployment Workflows

Deploy and manage Kubernetes workloads with progressive delivery. Use for deployments, rollouts, blue-green, canary releases, scaling, and release management.

Rohit Ghumare

@rohitg00

Install

$ openclaw skills install @rohitg00/k8s-deploy

Kubernetes Deployment Workflows

Comprehensive deployment strategies using kubectl-mcp-server tools, including Argo Rollouts and Flagger for progressive delivery.

Requires the helm_dev, rollouts toolsets: start kubectl-mcp-server with --toolsets default,helm_dev,rollouts (or MCP_TOOLSETS=default,helm_dev,rollouts).

When to Apply

Use this skill when:

  • User mentions: "deploy", "release", "rollout", "scale", "update", "upgrade"
  • Operations: creating deployments, updating images, scaling replicas
  • Strategies: canary, blue-green, rolling update, recreate
  • Keywords: "new version", "push to production", "traffic shifting"

Priority Rules

PriorityRuleImpactTools
1Preview with template before applyCRITICALhelm_template
2Check existing state firstCRITICALkubectl_get, helm_list
3Use progressive delivery for prodHIGHrollout_* tools
4Verify health after deploymentHIGHkubectl_top, kubectl_get
5Keep rollback revision notedMEDIUMhelm_history
6Scale incrementallyLOWkubectl_scale

Quick Reference

TaskToolExample
Deploy from manifestkubectl_applykubectl_apply(yaml, namespace)
Deploy with Helminstall_helm_chartinstall_helm_chart(name, chart, namespace)
Update imagekubectl_patchkubectl_patch(resource_type="deployment", name, ns, patch)
Scale replicaskubectl_scalekubectl_scale(resource_type="deployment", name, ns, replicas=5)
Rollbackkubectl_rolloutkubectl_rollout(action="undo", resource_type="deployment", name, ns)
Canary promotepromote_rolloutpromote_rollout(name, ns)

Standard Deployments

Deploy from Manifest

kubectl_apply(manifest_yaml, namespace)

Deploy with Helm

install_helm_chart(
    name="my-app",
    chart="bitnami/nginx",
    namespace="production",
    values={"replicaCount": 3}
)

Scale Deployment

kubectl_scale(resource_type="deployment", name, namespace, replicas=5)

Rolling Update

kubectl_patch(
    resource_type="deployment", name=name, namespace=namespace,
    patch={"spec": {"template": {"spec": {"containers": [{"name": "app", "image": "myapp:v2"}]}}}},
)

kubectl_rollout(action="status", resource_type="deployment", name=name, namespace=namespace)

Progressive Delivery

Argo Rollouts (Recommended)

For canary and blue-green deployments with analysis.

List Rollouts

get_rollouts_list(namespace)

Canary Promotion

get_rollout_status(name, namespace)

promote_rollout(name, namespace)

Abort Bad Release

abort_rollout(name, namespace)

Retry Failed Rollout

retry_rollout(name, namespace)

See ROLLOUTS.md for detailed Argo Rollouts workflows.

Flagger Canary

For service mesh-integrated canary releases:

get_flagger_canaries(namespace)
get_flagger_canary(name, namespace)

Deployment Strategies

StrategyUse CaseTools
RollingStandard updateskubectl_patch, kubectl_rollout
RecreateStateful appsSet strategy in manifest
CanaryRisk mitigationrollout_* tools
Blue-GreenZero downtimerollout_* with blue-green

See references/STRATEGIES.md for detailed strategy comparisons.

Rollback Operations

Native Kubernetes

kubectl_rollout(action="history", resource_type="deployment", name=name, namespace=namespace)

kubectl_rollout(action="undo", resource_type="deployment", name=name, namespace=namespace)

Helm Rollback

helm_rollback(name, namespace, revision=1)

Argo Rollouts Rollback

abort_rollout(name, namespace)

Health Verification

After deployment, verify health:

kubectl_get(resource_type="pods", namespace, label_selector="app=myapp")

kubectl_top(name, namespace)

kubectl_get(resource_type="endpoints", namespace)

Multi-Cluster Deployments

Deploy to specific clusters using context:

install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-us-east"
)

install_helm_chart(
    name="app",
    chart="./charts/app",
    namespace="prod",
    context="production-eu-west"
)

Example Manifests

See examples/ for ready-to-use deployment manifests:

Prerequisites

  • Argo Rollouts: Required for rollout_* tools
    kubectl create namespace argo-rollouts
    kubectl apply -n argo-rollouts -f https://github.com/argoproj/argo-rollouts/releases/latest/download/install.yaml
    
  • Flagger: Required for flagger_* tools
    kubectl apply -k github.com/fluxcd/flagger/kustomize/kubernetes
    

Related Skills

Top skills in this category