Skip to content

cl0uD-C1SC0/argocd-rollouts-lab

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

207 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation



ArgoCD and Argo Rollouts - SandBox Environment

Bem-vindo ao ArgoCD & Argo Rollouts Lab!

Um laboratório que trará documentações completas a respeito do uso do ArgoCD e principalmente, o carro chefe, o Argo Rollouts!

Está 100% automatizado e roda dentro do ambiente da AWS! É importante ressaltar que, o repositório inteiro conta com documentações em PT-BR feitas para que você aprenda de uma vez por todas o uso dessas duas ferramentas extremamente úteis para um ambiente totalmente DevOps.

Conta com recursos e tecnologias bem interessantes, vale dar uma olhada nessa documentação depois: ArgoCD - Introdução, mas só depois em!

Qualquer problema ou dúvidas na execução do laboratório, fico a disposição via LinkedIn (Link no final do README.md)!

Bons estudos!

O Laboratório foi feito utilizando o AWS Sandbox da:

INDEX

PARTE 01: Introdução

Tecnologias utilizadas

Por que o ArgoCD?

O ArgoCD é uma ferramenta amplamente utilizada por diversas equipes de DevOps ao redor do mundo, e é claro, é uma ferramenta aprovada pela CNCF (Graduated) e mantida pela The Linux Foundation.

É uma ferramenta que permite a entrega contínua (CD), declarativa e open-source, baseada totalmente no GitOps para o Kubernetes. Permite automatizar a implementação de aplicações, sincronizando o estado desejado e definido em um repositório Git. Em outras palavras, o que estiver no repositório Git, o ArgoCD faz questão de garantir que ele seja aplicado dentro do Kubernetes (na questão de manifestos k8s).

Alguns pontos interessantes:

  • Estado desejado: O Estado desejado de sua aplicação é definido em arquivos de config (Yaml, Kustomize, Helm ou outros) e são armazeandos em Git
  • Monitoramento Contínuo: O ArgoCD monitora continuamente o seu cluster Kubernetes e o repositório Git
  • Comparação e Sincronização: Compara o estado atual do seu cluster com o estado desejado do Git e identifica desvios
  • Reconciliação: Se houver desvios, o ArgoCD pode automaticamente reconciliar (sincronizar) o estado do seu cluster com o estado desejado ou, opcionalmente, permitir que um operador faça isso manualmente
  • Git como fonte de verdade: O Git se torna a única fonte confiável para o estado da sua aplicação, facilitando o versionamento, auditoria e rollback de implantações.

Abaixo uma imagem que descreve, em resumo, o funcionamento do ArgoCD:



Mais adiante eu o convido a explorar mais a respeito do repositorio e por fim iniciar esse laboratório.

Qualquer problema na execução ou falha do script, peço que me contate nas redes que deixarei no fim deste README.md, desejo um bom resto de dia e bons estudos à você! 👍

Organização do repositório

DIRETÓRIO OBJETIVO DOCUMENTAÇÃO
📁 Ansible Scripts, localizado dentro do diretório playbooks/. São utilizados para instalar e configurar o laboratório Documentação Ansible
📁 App Código em Flask utilizado como base Documentação do APP
📁 ArgoCD Documentações do ArgoCD como: Canary e Blue/Green deployments, usuários e roles Documentação ArgoCD
📁 Kubernetes Contém todos os manifestos utilizados e uma breve documentação sobre Documentação k8s
📁 Terraform Contém módulos do Terraform e toda infraestrutura baseada em IaC Documentação do Terraform
📁🐍 Common Contém todos os códigos/scripts em Python utilizado para providênciar de forma automática o Laboratório Documentação dos scripts Python
📁🔑 security Permissões que você precisa ter na sua conta AWS Documentação das permissões
📁 images Imagens utilizadas pelo repositório

Como iniciar o Lab?

⌚️ Tempo de execução para criar: 13 minutos

⚠️ O Repositório é totalmente inicializado dentro da sua conta AWS. Portanto, tome cuidado. Utilize as permissões definidas logo mais abaixo para a prática Least Privilege

⚠️ Não é recomendado utilizar contas da AWS produtivas neste ambiente.

REQUISITOS MÍNIMOS

Utilize a permissão: security/fully_compressed-policy.json em seu ambiente para construir algo mais Least Privilege e controlado no quesito segurança

01 - Configure o usuárino no arquivo terraform

Troque o valor de YOUR_AWS_USER pelo o seu Usuario AWS utilizado durante o laboratorio

module "codecommit" {
    source = "./modules/CodeCommit"

    codecommit-credentials-user = "YOUR_AWS_USER" # Default: argocd_user

}

CLIQUE AQUI - ARQUIVO PARA MODIFICAR

02 - Instale as dependências

python -m pip install -r requirements.txt
ansible-galaxy collection install -r requirements.yml

03 - INICIALIZE O SCRIPT

python init.py

04 - ESCOLHA A OPÇÃO 01

Opção 1: Configure Environment
Opção 0: Delete Environment

SELECT AN OPTION: 1
  • Aguarde até a execução total do script, atente-se aos outputs (saídas).

05 - Após a criação do ambiente ser finalizada, automaticamente o context do kubectl é configurado

kubectl config get-contexts

06 - Após a execução do script, os seguintes outputs serão gerados

  • OUTPUT 1: argocd_credentials.txt

    • Contém as credenciais de acesso ao ArgoCD + URL
  • OUTPUT 2: terraform_outputs

    • Contém as credenciais do AWS CodeCommit

🚨🚨🚨

████████████████████████████████████████████████████████ ██ ██ ██ 🚨

  • Atente-se as permissões utilizadas para a realização do laboratório
  • Atente-se na etapa manual do script, requisitará acesso elevado no Linux!
  • Script verboso, significa que qualquer erro será mostrado no terminal, portanto, não o interrompa

  • 🚨 ██ ██ ██ ████████████████████████████████████████████████████████



    Laboratório produzido por: José Silva 🚀

    About

    ArgoCD Complete and Fully automated laboratory

    Topics

    Resources

    Stars

    7 stars

    Watchers

    1 watching

    Forks

    Contributors