k8s-rollouts

Progressive Delivery with Argo Rollouts & Flagger

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "k8s-rollouts" with this command: npx skills add rohitg00/kubectl-mcp-server/rohitg00-kubectl-mcp-server-k8s-rollouts

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

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

k8s-troubleshoot

No summary provided by upstream source.

Repository SourceNeeds Review
General

k8s-storage

No summary provided by upstream source.

Repository SourceNeeds Review
General

k8s-core

No summary provided by upstream source.

Repository SourceNeeds Review
General

k8s-helm

No summary provided by upstream source.

Repository SourceNeeds Review