Projeto | Tecnologias | Arquitetura | Roadmap | Referências
-
Subir uma infraestrutura robusta 100% em Kubernetes, testando algumas tecnologias e a integração entre elas assim como também entender quais problemas resolvem.
-
Visão Geral:
- Kubernetes
- Kind
- Docker
- Jenkins
- Harbor
- Sonarqube
- Helm
- Gitea
- ArgoCD
- Kaniko
- Diagrama arquitetural
- Criar um Setup completo de um ambiente de desenvolvimento com cluster Kubernetes local usando Kind
- Realizar o deploy de todas as ferramentas usando Helm Charts
- Automatizar o deploy de todos os Helm Charts usando Helmfile
- Configuração de repositórios, chaves e service users no Gitea
- Instalação de plugins como código no Jenkins
- Integração entre Gitea e Jenkins usando multibranch pipelines via webhook
- Transpondo testes unitários, lint e segurança para a pipeline
- Migração e utilização de Shared Libraries no Jenkins para modularidade
- Scan de código estático com report no SonarQube e bloqueio com Quality Gate
- Build de imagens Docker usando Kaniko com push para registry interno no Harbor
- Versionamento de artefatos seguindo o Gitflow
- Scan de segurança de imagens Docker usando scan on push do Harbor
- Promoção de artefatos usando o Crane
- Testes de integração com deploy no próprio cluster
Important
OBS: Etapa base da esteira de CI finalizada, porém está sujeita a vários pontos de melhorias, alguns exemplos são: Tirar o nome da aplicação na pipeline e mudar para variável; Remover senhas do charts e trabalhar com cofre de senha; Melhorar a estrutra de charts deixando mais genéricas; Tratar e trabalhar melhor as notificações;
- Deploy utilizando o princípio de GitOps via ArgoCD
- Separação de Deploy em Dev, Staging e Produção via regras de branches
- Notificação da pipeline [Serviço de notificação a definir ainda]
- Status page para as ferramentas
- Monitoramento do Cluster e serviços
- Kubernetes Kind
- Metallb
- Descubra como o MetalLB aprimora o balanceamento de carga em ambientes Kubernetes on-premises
- Ingress Nginx
- Helmfile
- Jenkins
- Plugin Jenkins Multibranch Scan Webhook
- Plugin Jenkins KUbernetes
- Plugin Jenkins Discord Notifier
- Plugin Jenkins Basic Branch Build Strategies
- Gitea
- Harbor
- Unable to load local docker image in kind kubernetes cluster
- Share a standard Pipeline across multiple projects with Shared Libraries
- Extending with Shared Libraries
- SonarScanner CLI
- Trivy
- Harbor Vulnerability Scanning
- Crane
- Argocd - Installation