Skip to content

leoviana00/lab-pipeline-workflow

Repository files navigation

CI/CD - Kubernetes

Kubernetes License

Projeto   |    Tecnologias   |    Arquitetura   |    Roadmap   |    Referências

CI/CD

Projeto

  • 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:

CI/CD

Tecnologias

  • Kubernetes
  • Kind
  • Docker
  • Jenkins
  • Harbor
  • Sonarqube
  • Helm
  • Gitea
  • ArgoCD
  • Kaniko

Arquitetura

  • Diagrama arquitetural

CI/CD

Roadmap

  • 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

Referências