Install
$ agentstack add skill-sagy101-dotskills-eks-pod-ops ✓ scanned · ✓ verified — works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
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
- kubectl: installed and available in PATH
- AWS CLI: installed with SSO profiles configured per environment
- Kubeconfigs: generated per environment at
~/.kube/config_ - 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:
python3 /scripts/eks_preflight.py
To also verify a specific environment (kubeconfig + SSO):
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
# 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
# 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.
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.
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
execandrestartrequire explicit user approval. Show the exact command and wait for confirmation.podsandlogsare read-only. Run them directly without approval.- All output is automatically redacted — secrets, tokens, keys, and credentials are replaced with
[REDACTED]. See [references/REDACTION.md](references/REDACTION.md). - Bare
env,printenv, orsetcommands are blocked insideexec. Useenv | grep -iinstead. - Reading files under
/secrets/,/vault/, or credential paths is blocked insideexec. - If
[REDACTED]appears in output, do not attempt to retrieve the original value. - The script auto-selects the app container in multi-container pods (skips sidecars like statsite, istio-proxy).
- Multiple replicas: when a service has multiple pods,
--servicepicks the first running one. If the user wants a specific replica, runpods --env --servicefirst to list all replicas, ask the user which one, then use--podinstead of--service. - Prefer Grafana or Splunk for production log investigation — use this skill as a complement.
- Developers typically have read-only EKS access —
restartmay 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
- Source: sagy101/DotSkills
- License: MIT
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet — be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.