k8s-rollouts
Handles canary and blue-green deployments with Argo Rollouts and Flagger.
Install
mkdir -p .claude/skills/k8s-rollouts && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/5541" && unzip -o skill.zip -d .claude/skills/k8s-rollouts && rm skill.zipInstalls to .claude/skills/k8s-rollouts
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Progressive delivery with Argo Rollouts and Flagger. Use when implementing canary deployments, blue-green deployments, or traffic shifting strategies.Key capabilities
- →Implement canary deployments
- →Manage blue-green traffic switches
- →Automate rollout promotions
- →Monitor rollout status
How it works
It uses Argo Rollouts and Flagger tools to manage traffic splitting and automated analysis during application deployments.
Inputs & outputs
When to use k8s-rollouts
- →Implementing canary deployments
- →Managing blue-green traffic switches
- →Automating rollout promotions
About this skill
Progressive Delivery with Argo Rollouts & Flagger
Manage progressive deployments using kubectl-mcp-server's rollout tools (11 tools).
When to Apply
Use this skill when:
- User mentions: "canary", "blue-green", "progressive delivery", "Argo Rollouts", "Flagger"
- Operations: rolling out new versions, traffic splitting, automated rollbacks
- Keywords: "gradual rollout", "traffic shift", "analysis run", "promote", "abort"
Priority Rules
| Priority | Rule | Impact | Tools |
|---|---|---|---|
| 1 | Detect Argo Rollouts installation first | CRITICAL | rollouts_detect_tool |
| 2 | Check rollout status before promoting | HIGH | rollout_status_tool |
| 3 | Monitor analysis runs for failures | HIGH | analysis_runs_list_tool |
| 4 | Abort immediately on critical failures | CRITICAL | rollout_abort_tool |
Quick Reference
| Task | Tool | Example |
|---|---|---|
| Detect Argo Rollouts | rollouts_detect_tool | rollouts_detect_tool() |
| List rollouts | rollouts_list_tool | rollouts_list_tool(namespace) |
| Get rollout status | rollout_status_tool | rollout_status_tool(name, namespace) |
| Promote rollout | rollout_promote_tool | rollout_promote_tool(name, namespace) |
Check Installation
rollouts_detect_tool()
Argo Rollouts
List Rollouts
rollouts_list_tool(namespace="default")
# Shows:
# - Rollout name
# - Strategy (canary/blueGreen)
# - Status
# - Desired/Ready replicas
Get Rollout Details
rollout_get_tool(name="my-rollout", namespace="default")
# Shows:
# - Spec (strategy, steps)
# - Status (phase, conditions)
# - Current step
Check Rollout Status
rollout_status_tool(name="my-rollout", namespace="default")
# Returns detailed status with:
# - Current step index
# - Canary weight
# - Stable/canary replicasets
Promote Rollout
# Promote to next step
rollout_promote_tool(name="my-rollout", namespace="default")
# Full promote (skip remaining steps)
rollout_promote_tool(name="my-rollout", namespace="default", full=True)
Abort Rollout
rollout_abort_tool(name="my-rollout", namespace="default")
# Reverts to stable version
Retry Rollout
rollout_retry_tool(name="my-rollout", namespace="default")
# Retry failed rollout
Restart Rollout
rollout_restart_tool(name="my-rollout", namespace="default")
# Triggers new rollout with same spec
Analysis Runs
# List analysis runs
analysis_runs_list_tool(namespace="default")
# Analysis runs verify rollout health:
# - Prometheus metrics
# - Web hooks
# - Custom jobs
Create Canary Rollout
kubectl_apply(manifest="""
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-rollout
namespace: default
spec:
replicas: 5
strategy:
canary:
steps:
- setWeight: 20
- pause: {duration: 1m}
- setWeight: 40
- pause: {duration: 1m}
- setWeight: 60
- pause: {duration: 1m}
- setWeight: 80
- pause: {duration: 1m}
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: app
image: my-app:v2
ports:
- containerPort: 8080
""")
Create Blue-Green Rollout
kubectl_apply(manifest="""
apiVersion: argoproj.io/v1alpha1
kind: Rollout
metadata:
name: my-rollout
namespace: default
spec:
replicas: 3
strategy:
blueGreen:
activeService: my-app-active
previewService: my-app-preview
autoPromotionEnabled: false
selector:
matchLabels:
app: my-app
template:
metadata:
labels:
app: my-app
spec:
containers:
- name: app
image: my-app:v2
""")
Flagger
List Canaries
flagger_canaries_list_tool(namespace="default")
# Shows:
# - Canary name
# - Status (Initialized, Progressing, Succeeded, Failed)
# - Weight
Get Canary Details
flagger_canary_get_tool(name="my-canary", namespace="default")
Create Flagger Canary
kubectl_apply(manifest="""
apiVersion: flagger.app/v1beta1
kind: Canary
metadata:
name: my-canary
namespace: default
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: my-app
service:
port: 80
analysis:
interval: 30s
threshold: 5
maxWeight: 50
stepWeight: 10
metrics:
- name: request-success-rate
threshold: 99
interval: 1m
- name: request-duration
threshold: 500
interval: 1m
""")
Progressive Delivery Workflows
Canary Deployment
1. rollouts_list_tool(namespace)
2. # Update image in rollout
3. rollout_status_tool(name, namespace) # Monitor progress
4. rollout_promote_tool(name, namespace) # Promote when ready
5. # Or: rollout_abort_tool(name, namespace) if issues
Blue-Green Deployment
1. rollout_get_tool(name, namespace) # Check current state
2. # Update image
3. rollout_status_tool(name, namespace) # Wait for preview ready
4. # Test preview service
5. rollout_promote_tool(name, namespace) # Switch traffic
Troubleshooting
Rollout Stuck
1. rollout_status_tool(name, namespace) # Check current step
2. analysis_runs_list_tool(namespace) # Check analysis
3. get_events(namespace) # Check events
4. # If analysis failing:
rollout_abort_tool(name, namespace)
Canary Failing Analysis
1. analysis_runs_list_tool(namespace)
2. # Check metrics source (Prometheus, etc.)
3. # Verify threshold configuration
4. rollout_retry_tool(name, namespace) # Retry if transient
Related Skills
- k8s-deploy - Standard deployments
- k8s-service-mesh - Traffic management with Istio
When not to use it
- →When standard Kubernetes deployments are sufficient
- →When traffic shifting is not required
Prerequisites
Limitations
- →Requires specific CRDs for Argo Rollouts or Flagger
- →Dependent on cluster metrics for analysis
How it compares
It automates the complex traffic shifting and validation process compared to manual deployment updates.
Compared to similar skills
k8s-rollouts side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| k8s-rollouts (this skill) | 1 | 6mo | No flags | Advanced |
| deployment-engineer | 4 | 4mo | No flags | Advanced |
| k8s-deploy | 1 | 6mo | Review | Advanced |
| malsori-tekton-deployer | 0 | 2mo | Review | Beginner |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by rohitg00
View all by rohitg00 →You might also like
deployment-engineer
sickn33
Expert deployment engineer specializing in modern CI/CD pipelines, GitOps workflows, and advanced deployment automation. Masters GitHub Actions, ArgoCD/Flux, progressive delivery, container security, and platform engineering. Handles zero-downtime deployments, security scanning, and developer experience optimization. Use PROACTIVELY for CI/CD design, GitOps implementation, or deployment automation.
k8s-deploy
rohitg00
Deploy and manage Kubernetes workloads with progressive delivery. Use for deployments, rollouts, blue-green, canary releases, scaling, and release management.
malsori-tekton-deployer
ancom21c
Submit Malsori releases to the live release broker API and wait for the broker to report terminal status. Use when the user wants to deploy the committed revision of this repository to the home k3s cluster through the standard shared-cluster release path.
deployment-pipeline-design
wshobson
Design multi-stage CI/CD pipelines with approval gates, security checks, and deployment orchestration. Use when architecting deployment workflows, setting up continuous delivery, or implementing GitOps practices.
k8s-helm
rohitg00
Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management.
cloudflare-deploy
davila7
Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.