Skip to content

Repositório destinado ao modelo de GitOps, contendo os manifestos Kubernetes utilizados para realizar o deploy de serviços em um cluster local.

License

Notifications You must be signed in to change notification settings

alexsandroocanha/Microservices-GitOps

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

27 Commits
 
 
 
 
 
 

Repository files navigation

GitOps com Argo CD

Configurando acesso a repositório privado e deploy contínuo com Argo CD

Como o ArgoCD se conecta ao seu Repositorio

  • Repositório: aponte o app do Argo CD para a pasta de manifests (ex.: k8s/ ou online-boutique/kubernetes-manifests).
  • Credenciais: repo privado = cadastrar PAT read-only ou SSH Deploy Key no argocd repo add.
  • Acesso: acesso web utilizando o Traefik (http://shop.localtest.me)
  • Fluxo GitOps:
    • Commit/push de manifests no GitHub;
    • Argo CD detecta diffs → sync (auto-sync opcional com --auto-prune --self-heal);

Topicos

Requisitos

  • Docker
  • Chocolatey
  • Kubectl
  • Distribuições leves de Kubernetes (Rancher desktop, minikube, kind, etc...)

Neste repositorio eu utilizei o Rancher desktop, mas nada impede de utilizar outra mini distribuições de kubernetes

  • ArgoCD Cli

Instalação

Chocolatey

Em windows 11, você precisara abrir o terminal em Administrador e executar este comando

Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Para verificar se instalou execute este comando

choco --version

Caso tenha algum problema na instalação ou em alguma outra parte consulte o site oficial do Chocolatey Software

Clique aqui

Docker

Nos sistemas windows basta instalar o docker pelo proprio site da Docker logo abaixo

Clique aqui

Kubectl

Em sistemas windows, uma das formas "mais faceis" de se obter o kubectl, é utilizando o chocolatey.

Para instalar o kubectl no windows, você precisa abrir um terminal em modo de Adminstrador e executar este comando

choco install kubernetes-cli

Para outras formas de instalação, ou caso utilize ambiente baseado em Linux, consulte a documentação do kubernetes logo abaixo

Clique aqui

Rancher Desktop

É até que simples, só basta baixar e instalar a versão msi

Clique aqui

Após executar o programa pela primeira vez, basta executar nesta configuração

image

Caso você tenha selecionado o outro modo de container, basta ir em Troobleshooting, e em Factory Reset

image

image


ArgoCD Cli

Para instalar o ArgoCD eu segui estes passo a passo.

Invoke-WebRequest -Uri "https://github.com/argoproj/argo-cd/releases/latest/download/argocd-windows-amd64.exe" -OutFile "argocd.exe"
Move-Item .\argocd.exe "C:\Windows\System32\argocd.exe"

Caso queira instalar de outra maneira, fique avontade de consultar a documentação de instalação do ArgoCD

Clique aqui


Configuração inicial do ArgoCD

Para verificar se o cluster esta online, abra o terminal e execute este comando

kubectl get all

O proximo passo agora é criar um Namespace para o ArgoCD

kubectl create namespace argocd --save-config

Agora é aonde realmente baixamos e instalamos o ArgoCD

kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yaml

Agora vamos verificar se os pods foram criados corretamentes

kubectl get pods -n argocd

A saida deve ser algo parecido com isto

NAME                                                READY   STATUS    RESTARTS   AGE
argocd-application-controller-0                     1/1     Running   0          115s
argocd-applicationset-controller-5f67f4c987-vdtpr   1/1     Running   0          117s
argocd-dex-server-5859d89dcc-c69fx                  1/1     Running   0          117s
argocd-notifications-controller-75c986587-7jznn     1/1     Running   0          116s
argocd-redis-74c8c9c8c6-mzdlv                       1/1     Running   0          116s
argocd-repo-server-76f77874d7-8qscp                 1/1     Running   0          116s
argocd-server-64d5654c48-tkv65                      1/1     Running   0          116s

Agora vamos autenticar o argoCD

Execute este comando em um terminal, NÃO FECHE ESTE TERMINAL, e abra outro

kubectl port-forward svc/argocd-server -n argocd 8080:443

O argoCD gera sempre uma chave aleatoria a cada instalação, para obter estas chaves no windows você tera que executar estes 2 comandos

$pw = kubectl get secret argocd-initial-admin-secret -n argocd -o jsonpath="{.data.password}"
 [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($pw))

Salve este codigo que apareceu especificamente para você em um bloco de notas, pois precisaremos para fazer o Login do ArgoCD.

Após isso execute o seguinte commando

argocd login localhost:8080

Concorde com os termos, e em username digite admin e em password digite aquele codigo que apareceu para você


Criação do Token

Agora se por acaso você quiser colocar um repositorio privado, você tera que ir no GitHub e criar um Fine-grained tokens

Primeiro você clica na sua foto do github e vai em settings

image

Após isso escrola para baixo até achar esta opção "Developer settings"
image

Após isso clique no botão "Personal acces tokens" e dentro dele, clique na opção "Fine-grained tokens"
image

Clique no botão ao lado "Generate new token"
image

Agora é só colocar o nome, e logo abaixo selecionar esta opção e selecionar o repositorio privado que contem os manifestos


image

Para finalizar, coloque estas configurações apenas para a leitura


image

Copie o token e anote em um bloco de notas


image

Configuração dos repositorios privados

Agora, voltando para o terminal. Configuraremos o token dentro do ArgoCD

argocd repo add LINK-DO-REPOSITORIO --username SEU-USUARIO-DO-GITHUB --password SEU-TOKEN

Agora configuraremos o deploy do manifesto

argocd app create botique --repo LINK-DO-REPOSITORIO --path . --dest-server https://kubernetes.default.svc --dest-namespace default

Algumas observações

--path - É aonde se localiza o manifesto, pense que ele é uma pessoa e ira fazer o deploy. Você precisa se direcionar para o manifesto colocando o caminho da pasta (Exemplo: /repositorio-legal/manifestos/)

--dest-server - É o cluster kubernetes que você vai fazer o deploy. Caso esteja utilizando o Rancher Desktop o cluster dele é este por default, caso tenha utilizando outro metodo você tera que adicionar o cluster no argocd

Agora teremos que acessar a interface grafica em "localhost:8080"

Nesta parte segue a mesma ideia do login por cli, usuario "admin" e a senha é aquele token que o argocd gera


Sincronizando o Deployment

Após logar na interface grafica, aparecera esta tela, clicaremos no seu app, no caso a "botique"


image

Nesta tela, clicaremos em SYNC


image

E em SYNCHRONIZE


image

Agora vamos em details


image

Iremos em SYNC POLICY, ativar e habilitar esta opção


image

Após isso habilite as 2 opções que apareceu dentro de SYNC POLICY E pronto, projeto deployado e finalizado com argoCD

Informações para Contato

Linkedin Instagram Gmail

About

Repositório destinado ao modelo de GitOps, contendo os manifestos Kubernetes utilizados para realizar o deploy de serviços em um cluster local.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published