sagy101/DotSkills

Habilidades reutilizáveis para agentes de IA que achei úteis, seguindo o padrão aberto Agent Skills.

O que é DotSkills?

Este skill, parte da coleção DotSkills, fornece operações abrangentes para gerenciar clusters Amazon EKS (Elastic Kubernetes Service). Ele permite que um agente de IA leia logs de pods, liste e descreva pods, execute comandos dentro de contêineres e realize restart de deployments. O skill é útil para desenvolvedores e operadores que precisam depurar serviços Kubernetes, verificar status de pods ou reiniciar deployments em ambientes de desenvolvimento, staging e produção. Ele suporta plataformas de agentes como Claude Code, Cursor e Codex, desde que os pré-requisitos de `kubectl`, AWS CLI e configuração de kubeconfigs estejam atendidos. O funcionamento do skill é baseado em scripts Python que abstraem comandos kubectl comuns, incluindo detecção automática de problemas como SSO expirado e redação automática de segredos na saída. Operações destrutivas como `exec` e `restart` exigem aprovação explícita do usuário, enquanto operações somente leitura como `pods` e `logs` podem ser executadas diretamente.

Funciona com~Claude Code~Codex CLI~Cursor
npx skills add sagy101/DotSkills

Installed? Explore more Produtividade e Colaboração skills: steipete/gemini, steipete/gh-issues, steipete/skill-creator · View all 6 →

Perguntar na sua IA favorita

Abre um novo chat com esta habilidade de agente já pré-carregada.

Documentação

Operações com Pods EKS

Leia logs, encontre pods, execute comandos em contêineres e reinicie deployments em ambientes EKS.

Quando usar este skill

Use este skill quando o usuário quiser:

  • Visualizar logs de um pod ou serviço
  • Listar ou encontrar pods em um ambiente EKS
  • Executar um comando dentro de um pod em execução
  • Reiniciar (rollout restart) um deployment
  • Depurar um pod (descrever, verificar status, visualizar logs anteriores)
  • Verificar se um serviço está em execução em um ambiente específico

Pré-requisitos

  1. kubectl: instalado e disponível no PATH
  2. AWS CLI: instalado com perfis SSO configurados por ambiente
  3. Kubeconfigs: gerados por ambiente em ~/.kube/config_<env>
  4. Config: ~/.eks-config.json — gerado automaticamente na primeira execução ao escanear kubeconfigs e perfis AWS. Veja CONFIG.md para configuração manual.

Verificações de pré-voo

Execute o script de pré-voo antes da primeira operação em uma conversa:

python3 <skill_dir>/scripts/eks_preflight.py

Para verificar também um ambiente específico (kubeconfig + SSO):

python3 <skill_dir>/scripts/eks_preflight.py --env stg

Se o SSO estiver expirado, informe ao usuário: aws sso login --sso-session <sessão> (o nome da sessão está na saída do pré-voo).

Operações

pods — Listar ou descrever pods

# Encontrar pods de um serviço
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --service my-service

# Listar todos os pods em um ambiente
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --all

# Descrever um pod (eventos, condições, montagens)
python3 <skill_dir>/scripts/eks_ops.py pods --env stg --service my-service --describe

logs — Ler logs de pods

# Últimas 100 linhas (padrão)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service

# Tamanho de cauda personalizado e janela de tempo
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --tail 500 --since 1h

# Contêiner anterior (após falha/reinicialização)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --previous

# Todas as réplicas de uma vez (usa stern se instalado)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --all-pods

# Transmitir logs em tempo real
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --service my-service --follow

# Pod específico por nome (ignora resolução de serviço)
python3 <skill_dir>/scripts/eks_ops.py logs --env stg --pod my-service-abc123-xyz --tail 200

exec — Executar um comando dentro de um pod

Mostre o comando exato ao usuário e obtenha aprovação antes de executar.

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

restart — Reiniciar um deployment (rollout restart)

Mostre o comando de reinicialização ao usuário e obtenha aprovação antes de executar.

python3 <skill_dir>/scripts/eks_ops.py restart --env dev --service my-service
python3 <skill_dir>/scripts/eks_ops.py restart --env dev --service my-service --watch

Regras importantes

  1. exec e restart exigem aprovação explícita do usuário. Mostre o comando exato e aguarde confirmação.
  2. pods e logs são somente leitura. Execute-os diretamente sem aprovação.
  3. Toda a saída é automaticamente redigida — segredos, tokens, chaves e credenciais são substituídos por [REDIGIDO]. Veja references/REDACTION.md.
  4. Comandos env, printenv ou set sem especificação são bloqueados dentro de exec. Use env | grep -i <palavra-chave>.
  5. A leitura de arquivos em /secrets/, /vault/ ou caminhos de credenciais é bloqueada dentro de exec.
  6. Se [REDIGIDO] aparecer na saída, não tente recuperar o valor original.
  7. O script seleciona automaticamente o contêiner da aplicação em pods com múltiplos contêineres (ignora sidecars como statsite, istio-proxy).
  8. Múltiplas réplicas: quando um serviço tem vários pods, --service escolhe o primeiro em execução. Se o usuário quiser uma réplica específica, execute primeiro pods --env <env> --service <nome> para listar todas as réplicas, pergunte ao usuário qual delas, depois use --pod <nome-do-pod> em vez de --service.
  9. Prefira Grafana ou Splunk para investigação de logs em produção — use este skill como complemento.
  10. Desenvolvedores geralmente têm acesso somente leitura ao EKS — restart pode falhar em clusters de produção.

Tratamento de erros

ErroCausaCorreção
SSO session may be expiredToken AWS SSO expiradoaws sso login --sso-session <sessão>
Kubeconfig not foundArquivo kubeconfig ausenteaws eks update-kubeconfig --profile <env> --name <cluster> --kubeconfig ~/.kube/config_<env>
No pods found for serviceNome de serviço incorreto ou nenhum pod em execuçãopods --env <env> --all para ver pods disponíveis
Blocked: Dumps all environment variablesLista de bloqueio do exec acionadaUse env | grep -i <palavra-chave>
connection refused localhost:8080Conflito com kubectl do Rancher DesktopO script detecta isso automaticamente. Se persistir, verifique which kubectl

Solução de problemas

ProblemaCorreção
kubectl: command not foundbrew install kubectl
aws: command not foundbrew install awscli
Config não encontradoCrie ~/.eks-config.json — veja Pré-requisitos
Namespace erradoDefina namespace na configuração do ambiente
Logs vaziosTente --previous para contêineres com falha, ou aumente --since
stern não encontradobrew install stern (opcional — volta para kubectl sequencial)

Habilidades Relacionadas