Skip to content
Agentmart
Submit a tool

deployment-rollout-debug

Diagnose Deployment rollout failures (stuck rollouts, ProgressDeadlineExceeded, replica mismatch).

Skill by scitix

IndexedApache-2.0★ 238
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/scitix-deployment-rollout-debug

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Diagnose Deployment rollout failures (stuck rollouts, ProgressDeadlineExceeded, replica mismatch). Checks rollout status, ReplicaSets, and new pod health to identify why an update is failing.

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/deployment-rollout-debug

What's inside

Skill name
deployment-rollout-debug
Description
Diagnose Deployment rollout failures (stuck rollouts, ProgressDeadlineExceeded, replica mismatch). Checks rollout status, ReplicaSets, and new pod health to identify why an update is failing.
License
Apache-2.0
Instructions
139 lines in SKILL.md · view on GitHub

Files (1)

  • SKILL.md

SKILL.md (first lines)

# Deployment Rollout Failure Diagnosis

When a Deployment rollout is stuck, not progressing, or shows replica mismatches, follow this flow to identify the root cause.

**Scope:** This skill is for **diagnosis only**. Once you identify the root cause, report it to the user and stop. Do NOT attempt to roll back, scale, or modify the Deployment — that should be left to the user.

## Diagnostic Flow

### 1. Check rollout status

```bash
kubectl rollout status deployment/<name> -n <ns> --timeout=5s
```

This shows whether the rollout is progressing, complete, or stuck. A timeout indicates the rollout is not making progress.

### 2. Get Deployment details

```bash
kubectl get deployment <name> -n <ns> -o wide
```

Compare the columns:
- **DESIRED** — target replica count
- **CURRENT** — total pods (old + new)
- **UP-TO-DATE** — pods running the new version
- **AVAILABLE** — pods ready to serve traffic

If `UP-TO-DATE < DESIRED` or `AVAILABLE < DESIRED`, the rollout is incomplete.

### 3. Describe the Deployment

```bash
kubectl describe deployment <name> -n <ns>
```

Focus on:
- **Conditions** — look for `Progressing` (status and reason) and `Available`
- **Events** — look for scaling events, errors, or warnings
- **Strategy** — note `maxSurge` and `maxUnavailable` settings

### 4. Check ReplicaSets

```bash
kubectl get rs -n <ns> -l app=<name>
```

If the label `app=<name>` doesn't match, find ReplicaSets owned by the Deployment:

```bash
kubectl get rs -n <ns> --sort-by='.metadata.creationTimestamp' | grep <name>
```

You should see the old RS (with reduced replicas) and the new RS (scaling up). If the new RS has `0` ready replicas, its pods are failing.

### 5. Check new ReplicaSet's pods

Find pods from the new RS:

```bash
kubectl get pods -n <ns> -l app=<name> --sort-by='.metadata.creationTimestamp'
```

Check the status of the newest pods. Based on their status:
- **Pending** → Use the `pod-pending-debug` skill
- **CrashLoopBackOff / Error** → Use the `pod-crash-debug` skill
- **ImagePullBackOff / ErrImagePull** → Use the `image-pull-debug` skill
- **Running but not Ready** → Check readiness probe below

### 6. Match deployment-level patterns

---

#### `ProgressDeadlineExceeded` — Rollout timed out

The Deployment's `spec.progressDeadlineSeconds` (default 600s) has been exceeded without progress.

This is a symptom, not a cause. The root cause is in the new pods — check step 5 for why new pods are not becoming ready.

---

#### `MinimumReplicasUnavailable` — Not enough replicas available

The Deployment cannot maintain the minimum number of available replicas during the rollout.

Check the new pods' status (step 5). The new version's pods are failing to start or pass readiness probes.

---

#### New pods `Running` but not `Ready` — Readiness probe failing

The new pods started successfully but are failing their readiness probe. The rollout will not progress because the new pods are not considered available.

Check the readiness probe configuration and failures:

```bash
kubectl describe pod <new-pod> -n <ns>
```

Look for `Readiness probe failed` events. Common causes:
- Application not listening on the expected port
- Health endpoint returning errors
- Probe timing too aggressive (`initialDelaySeconds` too low)

---

#### Rollout stuck with `maxSurge: 0` and `maxUnavailable: 0` — Invalid strategy

If both `maxSurge` and `maxUnavailable` are `0`, the rollout cannot proceed because it cannot create extra pods and cannot remove existing pods. At least one must be greater than `0`.

---

#### New RS created but not scaling up — Admission webhook or quota

The new ReplicaSet exists but has 0 replicas or cannot create pods:

```bash
kubectl describe rs <new-rs> -n <ns>
```

From scitix/siclaw, Apache-2.0.

More from scitix/siclaw

Signals

Stars
238
Forks
32
Open issues
16
Last commit (this folder)
Mar 12, 2026 (7 months ago)
Last release
Sep 14, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
Website
siclaw.ai
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from scitix

Cite this page

deployment-rollout-debug skill. Agent Mart. https://agentmart.dev/skills/scitix-deployment-rollout-debug (last updated 2026-10-24)