Uma ferramenta CLI para verificar probes do Kubernetes em seus workloads.
- Verifica liveness, readiness e startup probes
- Suporta múltiplos namespaces
- Fornece recomendações de configuração
- Integração com diferentes contextos do Kubernetes
- Go: versão 1.24.5 ou superior
- Kubernetes: versão 1.28+ (cliente v0.31.0)
- Sistema: Linux, macOS, ou Windows
Para uso com Docker, consulte a documentação Docker.
Baixe o binário apropriado para seu sistema da página de releases.
- Clone o repositório:
git clone https://github.com/Tech-Preta/kubeprobes.git
- Entre no diretório do projeto:
cd kubeprobes
- Compile o código fonte:
make build
- (Opcional) Instale o binário no sistema:
make install
- Verifique se a instalação foi bem sucedida:
kubeprobes --help
# Verificar todos os tipos de probes no namespace padrão
kubeprobes scan
# Verificar um tipo específico de probe com recomendações
kubeprobes scan -p liveness -r
# Verificar em um namespace específico
kubeprobes scan -n meu-namespace
# Usar um kubeconfig e contexto específicos
kubeprobes scan -k /path/to/kubeconfig -c meu-contexto
# Exemplo completo:
kubeprobes scan -k <caminho-para-o-kubeconfig> -c <contexto-kubeconfig> -n <namespace> -p <tipo-de-probe> -r
- 0: Nenhum problema de probe encontrado
- 1: Problemas de probe encontrados
scan
: Escaneia workloads do Kubernetes em busca de probes.
-k, --kubeconfig
: Caminho para o arquivo kubeconfig.-c, --kubeContext
: Contexto do Kubernetes.-n, --namespace
: Namespace do Kubernetes.-p, --probe-type
: Tipo de probe para escanear (liveness, readiness, startup).-r, --recommendation
: Mostrar recomendações para sondas ausentes.
Este projeto segue as melhores práticas de segurança do OpenSSF. Para reportar uma vulnerabilidade, por favor consulte nosso SECURITY.md.
Este projeto utiliza um processo automatizado de releases através do GitHub Actions e GoReleaser.
- Criação de Release: Quando uma nova tag com formato
v*
(ex:v1.0.0
) é criada e enviada para o repositório, o workflow de release é automaticamente executado. - Artefatos Gerados: O processo gera binários para múltiplas plataformas (Linux, macOS, Windows) e arquiteturas (amd64, arm64).
- Distribuição: Os binários são automaticamente disponibilizados na página de releases do GitHub.
# Crie e envie uma nova tag
git tag v1.0.0
git push origin v1.0.0
O processo de release será executado automaticamente e estará disponível em alguns minutos.
Contribuições são bem-vindas! Por favor, leia nosso CONTRIBUTING.md para detalhes sobre nosso código de conduta e o processo para enviar pull requests.
Este projeto está licenciado sob a licença MIT - veja o arquivo LICENSE para detalhes.
Veja CHANGELOG.md para uma lista de mudanças.
sequenceDiagram
participant Usuário
participant CLI kubeprobes
participant Kubernetes API
Usuário->>CLI kubeprobes: Executa comando scan (com flags)
CLI kubeprobes->>CLI kubeprobes: Valida flags (kubeconfig, namespace, probe-type)
CLI kubeprobes->>Kubernetes API: Lista pods no namespace
Kubernetes API-->>CLI kubeprobes: Retorna lista de pods
alt Nenhum pod encontrado
CLI kubeprobes->>Usuário: Exibe mensagem "Nenhum pod encontrado"
else Pods encontrados
CLI kubeprobes->>CLI kubeprobes: Para cada pod/container, verifica probes
alt Container sem probe requisitado
CLI kubeprobes->>Usuário: Exibe aviso de ausência de probe e recomendações (se flag ativada)
end
alt Nenhum problema encontrado
CLI kubeprobes->>Usuário: Exibe mensagem "Nenhum problema de probe encontrado"
else Problemas encontrados
CLI kubeprobes->>Usuário: Sai com status 1
end
end