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-deployKubernetes Deployment Workflows
Comprehensive deployment strategies using kubectl-mcp-server tools, including Argo Rollouts and Flagger for progressive delivery.
Requires the
helm_dev,rolloutstoolsets: start kubectl-mcp-server with--toolsets default,helm_dev,rollouts(orMCP_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
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Preview with template before apply | CRITICAL | helm_template |
| 2 | Check existing state first | CRITICAL | kubectl_get, helm_list |
| 3 | Use progressive delivery for prod | HIGH | rollout_* tools |
| 4 | Verify health after deployment | HIGH | kubectl_top, kubectl_get |
| 5 | Keep rollback revision noted | MEDIUM | helm_history |
| 6 | Scale incrementally | LOW | kubectl_scale |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Deploy from manifest | kubectl_apply | kubectl_apply(yaml, namespace) |
| Deploy with Helm | install_helm_chart | install_helm_chart(name, chart, namespace) |
| Update image | kubectl_patch | kubectl_patch(resource_type="deployment", name, ns, patch) |
| Scale replicas | kubectl_scale | kubectl_scale(resource_type="deployment", name, ns, replicas=5) |
| Rollback | kubectl_rollout | kubectl_rollout(action="undo", resource_type="deployment", name, ns) |
| Canary promote | promote_rollout | promote_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
| Strategy | Use Case | Tools |
|---|---|---|
| Rolling | Standard updates | kubectl_patch, kubectl_rollout |
| Recreate | Stateful apps | Set strategy in manifest |
| Canary | Risk mitigation | rollout_* tools |
| Blue-Green | Zero downtime | rollout_* 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:
- examples/canary-rollout.yaml - Argo Rollouts canary
- examples/blue-green.yaml - Blue-green deployment
- examples/hpa-deployment.yaml - Deployment with HPA
Prerequisites
- Argo Rollouts: Required for
rollout_*toolskubectl 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_*toolskubectl apply -k github.com/fluxcd/flagger/kustomize/kubernetes
Related Skills
- k8s-gitops - GitOps deployments with Flux/ArgoCD
- k8s-autoscaling - Auto-scale deployments
- k8s-rollouts - Advanced progressive delivery
- k8s-helm - Helm chart operations
Top skills in this category
API Gateway
@byungkyuCall third-party APIs through the Maton gateway, which injects the credential for an app the user has already connected. Use this skill when the user names a connected app and a concrete action in it - read a mailbox, query a CRM, file an issue, update a spreadsheet, etc.
Marketing Mode
@thesethroseMarketing Mode combines 23 comprehensive marketing skills covering strategy, psychology, content, SEO, conversion optimization, and paid growth. Use when users need marketing strategy, copywriting, SEO help, conversion optimization, paid advertising, or any marketing tactic.
Blogwatcher
@steipeteMonitor blogs and RSS/Atom feeds for updates using the blogwatcher CLI.
Marketing Skills
@jchopard69Access 23 marketing modules offering checklists, frameworks, and ready-to-use deliverables for CRO, SEO, copywriting, analytics, launches, ads, and social me...
diagram-generator
@matthewyinGenerate and edit diagrams with the mcp-diagram-generator MCP server. Use this skill for new diagrams, existing .drawio/.mmd/.excalidraw edits, network topology, architecture, flowchart, swimlane, sequence, class, ER, and Excalidraw whiteboard work. Always use this skill when the user asks to draw,