smithery/rohitg00

k8s-rollouts

Progressive delivery with Argo Rollouts and Flagger. Use when implementing canary deployments, blue-green deployments, or traffic shifting strategies.

Installation

$ npx skills add smithery/rohitg00 --skill k8s-rollouts

Also in this package

Other skills from smithery/rohitg00 · top by installs.

npx skills add smithery/rohitg00

Browse all from smithery/rohitg00

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Version1.0.0
LicenseApache-2.0
More metadata
author
rohitg00
version
1.0.0
tools
11
category
delivery

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 6,183 B
  • docs SUMMARY.md 170 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

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 rolloutsdetecttool
2 Check rollout status before promoting HIGH rolloutstatustool
3 Monitor analysis runs for failures HIGH analysisrunslist_tool
4 Abort immediately on critical failures CRITICAL rolloutaborttool

Quick Reference

Task Tool Example
Detect Argo Rollouts rolloutsdetecttool rolloutsdetecttool()
List rollouts rolloutslisttool rolloutslisttool(namespace)
Get rollout status rolloutstatustool rolloutstatustool(name, namespace)
Promote rollout rolloutpromotetool rolloutpromotetool(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](../k8s-deploy/SKILL.md) - Standard deployments
  • [k8s-service-mesh](../k8s-service-mesh/SKILL.md) - Traffic management with Istio