> ## Content Index
> Fetch the complete content index at: https://www.azurebrasil.cloud/llms.txt
> Use this file to discover other available public pages before exploring further.

# Implementando GitOps com Flux no Azure Kubernetes Service (AKS)
- URL: https://www.azurebrasil.cloud/blog/implementando-gitops-com-flux-no-azure-kubernetes-service-aks/
- Published: 2025-05-29T13:56:26.000Z
- Updated: 2025-05-29T14:14:17.000Z
- Description: Automatizando a entrega contínua com segurança, controle e rastreabilidade
- Author: Ricardo Martins

## **Introdução**

Em ambientes Kubernetes, garantir consistência, auditabilidade e velocidade na entrega de aplicações é um desafio constante.  
O modelo tradicional de CI/CD, baseado em pipelines que “empurram” deploys para o cluster, não é ideal para ambientes com múltiplos times, ambientes ou clusters.

Entra em cena o **GitOps**: uma abordagem declarativa onde o Git é a **única fonte da verdade**, e a reconciliação é feita por agentes como o **Flux**, de dentro do cluster.

Neste artigo, vamos ver como implementar GitOps usando **Flux v2** no **Azure Kubernetes Service (AKS)**, com foco em:

- Segurança
- Autonomia de times
- Controle de mudanças
- Multiambiente
- Observabilidade

---

## O que é GitOps?

**GitOps** é a prática de:

1. Declarar a configuração desejada do ambiente (infra, apps, policies) em um repositório Git
2. Um agente (ex: Flux) roda no cluster e aplica automaticamente as mudanças detectadas
3. Toda mudança passa por **merge request, revisão e auditoria** no Git

### Benefícios:

- Controle de versão nativo
- Rollback fácil via `git revert`
- Rastreamento de autoria
- Integração com segurança e compliance

---

## Arquitetura com Flux e AKS

  
- **Kustomize Controller**: aplica as definições (deployments, services etc)
- **Helm Controller** (opcional): para charts Helm
- **Image Automation Controller**: atualização automática baseada em tags

**Git Source**

![](https://storage.ghost.io/c/00/52/0052dced-0017-4d07-b190-1f5c48e0ab59/content/images/2025/05/Editor-_-Mermaid-Chart-2025-05-29-134804-2-1-1.png)

- **Git Source**: repositório Git monitorado
- **Kustomize Controller**: aplica as definições (deployments, services etc)
- **Helm Controller** (opcional): para charts Helm
- **Image Automation Controller**: atualização automática baseada em tags

---

## Pré-requisitos

- Azure CLI
- AKS ativo com `kubectl` configurado
- GitHub repo público ou privado
- [flux CLI](https://fluxcd.io/flux/installation/?ref=azurebrasil.cloud) instalado
- Permissão para instalar extensões no AKS

---

## Instalando Flux no AKS

```bash
# Conectar-se ao cluster
az aks get-credentials --resource-group rg-aks --name meu-cluster

# Inicializar o Flux no cluster
flux install

```

---

## Estrutura do repositório GitOps

```text
gitops-config/
├── clusters/
│   └── prod/
│       └── kustomization.yaml
├── apps/
│   └── nginx/
│       ├── deployment.yaml
│       ├── service.yaml
│       └── kustomization.yaml

```

---

## Criar Git source e aplicar Kustomization

```bash
# Adicionar o repositório Git
flux create source git gitops-repo \
  --url=https://github.com/suaorg/gitops-config \
  --branch=main \
  --interval=1m

# Criar o recurso Kustomization
flux create kustomization nginx-app \
  --target-namespace=default \
  --source=gitops-repo \
  --path="./apps/nginx" \
  --prune=true \
  --interval=2m

```

O Flux agora vai monitorar o repositório Git e aplicar automaticamente qualquer mudança feita.

---

## Segurança com Secret Store e RBAC

Use **Sealed Secrets**, **External Secrets** ou **Azure Key Vault Provider** com CSI Driver para proteger dados sensíveis.

### Exemplo: usar Key Vault com AKS

```bash
az aks enable-addons \
  --addons azure-keyvault-secrets-provider \
  --name meu-cluster \
  --resource-group rg-aks

```

---

## Observabilidade e auditoria

1. **Habilite logs no AKS com Log Analytics**
2. Use `flux logs` para depurar o comportamento dos controladores
3. Todas as mudanças ficam rastreadas via Git (`git log`, PRs, tags)

---

## Boas práticas com GitOps no Azure

- Um repositório por ambiente (ex: `gitops-prod`, `gitops-dev`)
- Use **Kustomize overlays** para diferenciar configurações
- Trave quem pode alterar `main` via Branch Protection Rules
- Use **Flux Notifications** para alertas via Teams ou Slack
- Integre com pipelines para validar antes do merge (YAML linter, Kubeval etc)

---

## Referências oficiais

- [Flux CD v2](https://fluxcd.io/docs/?ref=azurebrasil.cloud)
- [GitOps com AKS - Docs Microsoft](https://learn.microsoft.com/en-us/azure/azure-arc/kubernetes/tutorial-use-gitops-flux2?ref=azurebrasil.cloud)
- [Azure Key Vault Provider for Secrets Store CSI Driver](https://learn.microsoft.com/en-us/azure/aks/csi-secrets-store-driver?ref=azurebrasil.cloud)

---

## Conclusão

**GitOps com Flux no AKS** oferece uma forma moderna, segura e auditável de entregar aplicações em produção.  
  
A infraestrutura e os apps se tornam versionáveis, previsíveis e consistentes — reduzindo erros manuais e aumentando a governança.

Comece com um pequeno repositório e escale sua automação com confiança!