# Eks Pod Ops

> >

- **Type:** Skill
- **Install:** `agentstack add skill-sagy101-dotskills-eks-pod-ops`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [sagy101](https://agentstack.voostack.com/s/sagy101)
- **Installs:** 0
- **Category:** [Agent Skills](https://agentstack.voostack.com/c/agent-skills)
- **Latest version:** 0.1.0
- **License:** MIT
- **Upstream author:** [sagy101](https://github.com/sagy101)
- **Source:** https://github.com/sagy101/DotSkills/tree/main/eks-pod-ops

## Install

```sh
agentstack add skill-sagy101-dotskills-eks-pod-ops
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# EKS Pod Operations

Read logs, find pods, exec into containers, and restart deployments across EKS environments.

## When to use this skill

Use this skill when the user wants to:
- View logs from a pod or service
- List or find pods in an EKS environment
- Execute a command inside a running pod
- Restart (rollout restart) a deployment
- Debug a pod (describe, check status, view previous logs)
- Check if a service is running in a specific environment

## Prerequisites

1. **kubectl**: installed and available in PATH
2. **AWS CLI**: installed with SSO profiles configured per environment
3. **Kubeconfigs**: generated per environment at `~/.kube/config_`
4. **Config**: `~/.eks-config.json` — auto-generated on first run by scanning kubeconfigs and AWS profiles. See [CONFIG.md](references/CONFIG.md) for manual setup.

## Pre-flight checks

Run the pre-flight script before the first operation in a conversation:

```bash
python3 /scripts/eks_preflight.py
```

To also verify a specific environment (kubeconfig + SSO):

```bash
python3 /scripts/eks_preflight.py --env stg
```

If SSO is expired, tell the user: `aws sso login --sso-session ` (session name is in the preflight output).

## Operations

### pods — List or describe pods

```bash
# Find pods for a service
python3 /scripts/eks_ops.py pods --env stg --service my-service

# List all pods in environment
python3 /scripts/eks_ops.py pods --env stg --all

# Describe a pod (events, conditions, mounts)
python3 /scripts/eks_ops.py pods --env stg --service my-service --describe
```

### logs — Read pod logs

```bash
# Last 100 lines (default)
python3 /scripts/eks_ops.py logs --env stg --service my-service

# Custom tail size and time window
python3 /scripts/eks_ops.py logs --env stg --service my-service --tail 500 --since 1h

# Previous container (after crash/restart)
python3 /scripts/eks_ops.py logs --env stg --service my-service --previous

# All replicas at once (uses stern if installed)
python3 /scripts/eks_ops.py logs --env stg --service my-service --all-pods

# Stream logs in real-time
python3 /scripts/eks_ops.py logs --env stg --service my-service --follow

# Specific pod by name (skip service resolution)
python3 /scripts/eks_ops.py logs --env stg --pod my-service-abc123-xyz --tail 200
```

### exec — Run a command inside a pod

**Show the exact command to the user and get approval before running.**

```bash
python3 /scripts/eks_ops.py exec --env dev --service my-service -- ls /app/conf
python3 /scripts/eks_ops.py exec --env dev --service my-service -- cat /app/conf/application.conf
python3 /scripts/eks_ops.py exec --env stg --service my-service -- env | grep -i heap
python3 /scripts/eks_ops.py exec --env stg --service my-service -- df -h
```

### restart — Rollout restart a deployment

**Show the restart command to the user and get approval before running.**

```bash
python3 /scripts/eks_ops.py restart --env dev --service my-service
python3 /scripts/eks_ops.py restart --env dev --service my-service --watch
```

## Important rules

1. **`exec` and `restart` require explicit user approval.** Show the exact command and wait for confirmation.
2. **`pods` and `logs` are read-only.** Run them directly without approval.
3. All output is automatically redacted — secrets, tokens, keys, and credentials are replaced with `[REDACTED]`. See [references/REDACTION.md](references/REDACTION.md).
4. Bare `env`, `printenv`, or `set` commands are blocked inside `exec`. Use `env | grep -i ` instead.
5. Reading files under `/secrets/`, `/vault/`, or credential paths is blocked inside `exec`.
6. If `[REDACTED]` appears in output, do not attempt to retrieve the original value.
7. The script auto-selects the app container in multi-container pods (skips sidecars like statsite, istio-proxy).
8. **Multiple replicas**: when a service has multiple pods, `--service` picks the first running one. If the user wants a specific replica, run `pods --env  --service ` first to list all replicas, ask the user which one, then use `--pod ` instead of `--service`.
9. Prefer Grafana or Splunk for production log investigation — use this skill as a complement.
10. Developers typically have read-only EKS access — `restart` may fail on production clusters.

## Error handling

| Error | Cause | Fix |
|---|---|---|
| `SSO session may be expired` | AWS SSO token expired | `aws sso login --sso-session ` |
| `Kubeconfig not found` | Missing kubeconfig file | `aws eks update-kubeconfig --profile  --name  --kubeconfig ~/.kube/config_` |
| `No pods found for service` | Wrong service name or no pods running | `pods --env  --all` to see available pods |
| `Blocked: Dumps all environment variables` | Exec blocklist triggered | Use `env \| grep -i ` instead |
| `connection refused localhost:8080` | Rancher Desktop kubectl conflict | Script auto-detects this. If persists, check `which kubectl` |

## Troubleshooting

| Problem | Fix |
|---|---|
| `kubectl: command not found` | `brew install kubectl` |
| `aws: command not found` | `brew install awscli` |
| Config not found | Create `~/.eks-config.json` — see Prerequisites |
| Wrong namespace | Set `namespace` in environment config |
| Logs empty | Try `--previous` for crashed containers, or increase `--since` |
| `stern` not found | `brew install stern` (optional — falls back to sequential kubectl) |

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [sagy101](https://github.com/sagy101)
- **Source:** [sagy101/DotSkills](https://github.com/sagy101/DotSkills)
- **License:** MIT

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-sagy101-dotskills-eks-pod-ops
- Seller: https://agentstack.voostack.com/s/sagy101
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
