Esse projeto foi criado com o auxilio da ferramenta Cursor. Lembre-se de atualizar o github desse projeto também
Uma CLI simplificada para gerenciar recursos de Kubernetes na AWS e Azure.
- Python 3.8+
- Sistema operacional: Linux (Ubuntu) ou macOS
# Clone o repositório
git clone https://github.com/jera/jera-cli.git
cd jera-cli
# Instale a CLI
./install.sh# Faça login no AWS SSO
jeracli login-aws
# Configure o acesso ao cluster EKS
jeracli init# Faça login no Azure
jeracli login-azure
# Configure o acesso ao cluster AKS
jeracli init-azure# Escolha um namespace para trabalhar
jeracli use production# Liste todos os clusters configurados
jeracli clusters
# Alterne para outro cluster (AWS ou Azure)
jeracli use-cluster
# Alterne explicitamente entre AWS e Azure
jeracli use-cluster -s
# Escolha um cluster AWS específico
jeracli use-cluster meu-cluster-aws
# Escolha um cluster Azure específico
jeracli use-cluster meu-cluster-aks -az -g meu-grupo-recursosA Jera CLi nasceu muito por que toda vez que precisavamos fazer algo entre namespaces tinhamos que toda hora escrever kubectl, o que para mim estava sendo horrivel ja que é um comando "muito" grande, além de ter que escrever '-n meu-namespace' quase toda hora.... Dai a Jera CLI simplifica as operações diárias no Kubernetes, abstraindo a complexidade dos comandos do kubectl. Veja abaixo uma comparação dos comandos mais frequentes:
| Funcionalidade | Jera CLI | kubectl |
|---|---|---|
| Seleção de contexto | jeracli use-cluster |
kubectl config use-context <context> |
| Configuração de cluster AWS | jeracli init |
aws eks update-kubeconfig --name <cluster> |
| Configuração de cluster Azure | jeracli init-azure |
az aks get-credentials --resource-group <rg> --name <cluster> |
| Seleção de namespace | jeracli use <namespace> |
kubectl config set-context --current --namespace=<namespace> |
| Listar pods | jeracli pods |
kubectl get pods |
| Ver logs de um pod | jeracli logs <pod> |
kubectl logs <pod> |
| Executar shell em um pod | jeracli exec <pod> |
kubectl exec -it <pod> -- /bin/sh |
| Ver detalhes de um pod | jeracli describe <pod> |
kubectl describe pod <pod> |
| Listar serviços | jeracli loadbalancer ou lb |
kubectl get svc |
| Listar ingresses | jeracli urls |
kubectl get ingress --all-namespaces |
| Listar nós | jeracli nodes |
kubectl get nodes |
| Ver métricas de nós | jeracli node-metrics |
kubectl top nodes |
| Ver volumes persistentes | jeracli pvs |
kubectl get pv |
| Ver claims de volumes | jeracli pvcs |
kubectl get pvc --all-namespaces |
- Simplicidade: Comandos mais curtos e intuitivos
- Interatividade: Muitos comandos oferecem seleção interativa quando não especificados todos os parâmetros
- Integração com cloud: Gerencia automaticamente a autenticação com AWS e Azure
- Comandos consolidados: Agrega múltiplas operações kubectl em um único comando
- Visualização otimizada: Saída formatada e focada nas informações mais relevantes
# Lista pods no namespace atual
jeracli pods# Ver logs de um pod (interativo)
jeracli logs# Abrir shell em um pod
jeracli execlogin-aws: Faz login no AWS SSO interativamentelogin-azure: Faz login no Azure interativamenteinit: Configura AWS SSO e kubectl para cluster EKSinit-azure: Configura kubectl para cluster AKSuse-cluster: Alterna entre clusters (AWS EKS ou Azure AKS)use: Define namespace atualpods: Lista podslogs: Visualiza logs de podsexec: Abre shell em podsdescribe: Mostra detalhes de podsurls: Lista URLs de Ingressesloadbalancer: Lista URLs dos LoadBalancerslb: Alias para loadbalancerpvs: Mostra Persistent Volumespvcs: Mostra Persistent Volume Claimsstorage: Visão consolidada de armazenamentonodes: Lista nós do clusternode-metrics: Mostra métricas de utilização dos nós
- Clone o repositório
git clone https://github.com/jera/jera-cli.git
cd jera-cli- Crie um ambiente virtual
python -m venv .venv
source .venv/bin/activate- Instale as dependências
pip install -e .feature/: Para novas funcionalidadesfix/: Para correções de bugsimprovement/: Para melhorias em funcionalidades existentes
Use o padrão de commits semânticos:
feat:Nova funcionalidadefix:Correção de bugdocs:Alterações na documentaçãostyle:Formatação de códigorefactor:Refatoraçãotest:Adição/modificação de testeschore:Tarefas de manutenção
git commit -m "feat: adiciona opção de filtro por status nos pods"- Crie uma branch para sua alteração
- Faça suas modificações
- Teste localmente
- Crie um Pull Request com descrição clara
Em caso de dúvidas, entre em contato com a equipe de desenvolvimento.
[Informações sobre a licença]
# Liste todos os pods
jeracli pods
# Veja os logs de um pod específico
jeracli logs meu-pod-nome
# Obtenha detalhes completos do pod
jeracli describe meu-pod-nome# Abra um shell interativo em um pod
jeracli exec meu-pod-nome
# Execute um comando específico em um pod
jeracli exec meu-pod-nome -- ls /app# Liste todos os namespaces disponíveis
jeracli namespaces
# Mude para um namespace específico
jeracli use production
# Veja os pods no namespace atual
jeracli pods# Liste URLs de Ingress em todos os namespaces
jeracli urls
# Liste URLs de Ingress em um namespace específico
jeracli urls -n staging
# Liste URLs dos LoadBalancers
jeracli lb# Veja métricas de todos os pods
jeracli pod-metrics
# Veja métricas de pods em um namespace específico
jeracli pod-metrics production
# Veja métricas dos nós do cluster
jeracli node-metrics
# Veja métricas de um nó específico
jeracli node-metrics nome-do-no# Liste todos os nós do cluster
jeracli nodes
# Veja detalhes de um nó específico
jeracli describe node meu-node-nome# Listar todos os Persistent Volumes do cluster
jeracli pvs
# Ver informações detalhadas dos PVs
jeracli pvs -d
# Listar Persistent Volume Claims em todos os namespaces
jeracli pvcs
# Listar PVCs em um namespace específico
jeracli pvcs -n production
# Selecionar um namespace interativamente
jeracli pvcs -s
# Ver visão consolidada de armazenamento
jeracli storage
# Ver visão detalhada com filtro por namespace
jeracli storage -n production -d# Deleta um pod específico
jeracli delete meu-pod
# Deleta múltiplos pods
jeracli delete pod1 pod2
# Força a deleção de um pod
jeracli delete meu-pod --force
# Deleta todos os pods do namespace atual
jeracli delete --all
# Força a deleção de todos os pods
jeracli delete --all --force# AWS EKS
jeracli login-aws
jeracli init
# Azure AKS
jeracli login-azure
jeracli init-azure
# Alternar entre os clusters configurados
jeracli use-cluster
# Alternar explicitamente entre AWS e Azure
jeracli use-cluster -s
# Forçar o uso de Azure
jeracli use-cluster -az
# Forçar o uso de AWS
jeracli use-cluster --aws
# Especificar um cluster Azure com seu grupo de recursos
jeracli use-cluster meu-cluster-aks -az -g meu-grupo-recursos- Use
jeracli --helppara ver todos os comandos disponíveis - Adicione
-hou--helpapós qualquer comando para ver opções específicasjeracli pods --help jeracli logs --help jeracli use-cluster --help