Configurando acesso a repositório privado e deploy contínuo com Argo CD
- 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);
- Requisitos
- Instalação dos Requisitos
- Configuração do ArgoCD
- Autenticação do ArgoCD
- Criação do Token GitHub
- Configuração dos Repositorios
- Sincronizando o Deployment
- 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 do Chocolatey
- Instalação do Docker
- Instalação do Kubectl(Kubernetes)
- Instalação do Rancher Desktop
- Instalação do ArgoCD Cli
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 --versionCaso tenha algum problema na instalação ou em alguma outra parte consulte o site oficial do Chocolatey Software
Nos sistemas windows basta instalar o docker pelo proprio site da Docker logo abaixo
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-cliPara outras formas de instalação, ou caso utilize ambiente baseado em Linux, consulte a documentação do kubernetes logo abaixo
É até que simples, só basta baixar e instalar a versão msi
Após executar o programa pela primeira vez, basta executar nesta configuração
Caso você tenha selecionado o outro modo de container, basta ir em Troobleshooting, e em Factory Reset
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
Para verificar se o cluster esta online, abra o terminal e execute este comando
kubectl get allO proximo passo agora é criar um Namespace para o ArgoCD
kubectl create namespace argocd --save-configAgora é aonde realmente baixamos e instalamos o ArgoCD
kubectl apply -n argocd -f https://raw.githubusercontent.com/argoproj/argo-cd/stable/manifests/install.yamlAgora vamos verificar se os pods foram criados corretamentes
kubectl get pods -n argocdA 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
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:8080Concorde com os termos, e em username digite admin e em password digite aquele codigo que apareceu para você
Agora se por acaso você quiser colocar um repositorio privado, você tera que ir no GitHub e criar um Fine-grained tokens
Após isso escrola para baixo até achar esta opção "Developer settings"
Após isso clique no botão "Personal acces tokens" e dentro dele, clique na opção "Fine-grained tokens"
Clique no botão ao lado "Generate new token"
Agora é só colocar o nome, e logo abaixo selecionar esta opção e selecionar o repositorio privado que contem os manifestos
Para finalizar, coloque estas configurações apenas para a leitura
Copie o token e anote em um bloco de notas
Agora, voltando para o terminal. Configuraremos o token dentro do ArgoCD
argocd repo add LINK-DO-REPOSITORIO --username SEU-USUARIO-DO-GITHUB --password SEU-TOKENAgora configuraremos o deploy do manifesto
argocd app create botique --repo LINK-DO-REPOSITORIO --path . --dest-server https://kubernetes.default.svc --dest-namespace defaultAlgumas 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
Após isso habilite as 2 opções que apareceu dentro de SYNC POLICY E pronto, projeto deployado e finalizado com argoCD



