Configuração de novos clusters
A configuração inicial de novos clusters é realizada automaticamente por meio do pipeline CI/CD do projeto digitalsys-tecnologia/infra-kubernetes.
cert-manager
Responsável pela emissão e renovação automática de certificados SSL/TLS, garantindo a comunicação segura entre os serviços do cluster.
external-secrets
Permite integrar e sincronizar segredos armazenados em provedores externos (como AWS Secrets Manager ou HashiCorp Vault) diretamente para o Kubernetes, de forma segura e automatizada.
monitoring (Grafana + Prometheus)
Conjunto de ferramentas para observabilidade do ambiente. O Prometheus coleta e armazena métricas de desempenho e disponibilidade, enquanto o Grafana oferece painéis visuais e personalizáveis para análise e monitoramento em tempo real.
pushgateway
Componente auxiliar do Prometheus utilizado para receber e expor métricas de aplicações que não são contínuas (por exemplo, jobs de curta duração), permitindo que esses dados também sejam monitorados.
nginx-ingress
Controlador de entrada (Ingress Controller) baseado no NGINX, responsável por gerenciar o roteamento de tráfego externo para os serviços internos do cluster
Etapas para configurar o Cluster
Após a criação do Cluster você deve baixar o arquivo de configuração do cluster (kubeconfig), abrir este arquivo, copiar o seu conteudo e obter o base64 desse conteudo, conforme exemplo abaixo:
echo -n "<insira o conteudo do kubeconfig>" | base64
Em seguida, copie este conteúdo e cole na variável de ambiente "KUBE_CONFIG" do projeto infra-kubernetes, conforme a imagem abaixo:
Após isso você precisará rodar o Job para configurar o Cluster e aguardar o mesmo finalizar com sucesso. Utilize a rota abaixo para rodar o Job:
Configurações na DigitalOcean
1. Network
Caso exista algum firewall configurado (exemplo: Hashi Vaulticorp está disponível apenas para acesso via VPN ou dentro do cluster do Kubernetes) você deve liberar o acesso desse cluster também. Abaixo segue um exemplo de liberação:

Busque pelo cluster que você quer configurar e permita o acesso.
2. Container Registry
A liberação do novo cluster ao Container Registry é essencial para que você consiga realizar push/pull das imagens dos projetos para a DigitalOcean.
Essa configuração é feita pela rota abaixo:
Busque pelo cluster que você quer configurar e permita o acesso.
3. Banco de Dados
Por fim você deve liberar o acesso do seu(s) banco de dado(s) ao cluster também, do contrário as aplicações dentro desse cluster não irá conseguir se conectar ao banco de dados.
Siga a rota abaixo para liberar o acesso:
Busque pelo cluster que você quer configurar e permita o acesso.
Utilizando o novo cluster
Agora, com o cluster configurado, você já pode realizar o deploy dos seus projetos neste novo cluster.
echo -n "<insira o conteudo do kubeconfig>" | base64
Em seguida você deve alterar a variável de ambiente no Github Actions de acordo com o projeto que você quer incluir no Cluster.
Por exemplo, no projeto abaio a configuração do Kubeconfig está numa variável de ambiente chamada "KUBE_CONFIG_DEV", logo você deve alterar essa variável de ambiente com o conteúdo base64 que você copiou no passo anterior.
Atenção: ao alterar variáveis de ambiente no GitHub Actions, é importante entender a diferença entre os tipos de Secrets**:**
- Organization Secrets: são variáveis globais, acessíveis por todos os repositórios da organização.
- Repository Secrets: são variáveis específicas de um único repositório, utilizadas apenas naquele projeto.
Exemplo:
Imagine que exista um cluster com 10 projetos e que você esteja criando um novo cluster para apenas 1 projeto.
Nesse caso, a configuração ideal seria:
- Criar uma variável de ambiente em Organization Secrets para ser compartilhada entre os 10 projetos do cluster existente.
- Criar uma variável de ambiente em Repository Secrets exclusivamente no repositório do novo projeto, para que apenas ele utilize essa configuração específica.
Assim, você garante o uso correto do escopo das variáveis e evita conflitos entre projetos.







