K8

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.zip

Installs 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.
150 chars✓ has a “when” trigger
Advanced

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

You give it
Rollout manifest or deployment parameters
You get back
Progressive delivery status and promotion

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

PriorityRuleImpactTools
1Detect Argo Rollouts installation firstCRITICALrollouts_detect_tool
2Check rollout status before promotingHIGHrollout_status_tool
3Monitor analysis runs for failuresHIGHanalysis_runs_list_tool
4Abort immediately on critical failuresCRITICALrollout_abort_tool

Quick Reference

TaskToolExample
Detect Argo Rolloutsrollouts_detect_toolrollouts_detect_tool()
List rolloutsrollouts_list_toolrollouts_list_tool(namespace)
Get rollout statusrollout_status_toolrollout_status_tool(name, namespace)
Promote rolloutrollout_promote_toolrollout_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

When not to use it

  • When standard Kubernetes deployments are sufficient
  • When traffic shifting is not required

Prerequisites

Argo Rollouts or Flagger installed in the cluster

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.

SkillInstallsUpdatedSafetyDifficulty
k8s-rollouts (this skill)16moNo flagsAdvanced
deployment-engineer44moNo flagsAdvanced
k8s-deploy16moReviewAdvanced
malsori-tekton-deployer02moReviewBeginner

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.

418

k8s-deploy

rohitg00

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

13

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.

00

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.

670

k8s-helm

rohitg00

Manage Helm charts, releases, and repositories. Use for Helm installations, upgrades, rollbacks, chart development, and release management.

857

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.

342

Search skills

Search the agent skills registry