

 **Ajudar a melhorar esta página** 

Para contribuir com este guia de usuário, escolha o link **Editar esta página no GitHub**, disponível no painel direito de cada página.

# Implantação contínua com o Argo CD
<a name="argocd"></a>

O Argo CD é uma ferramenta de entrega contínua declarativa e baseada em GitOps para Kubernetes. Com o Argo CD, você pode automatizar a implantação e o gerenciamento do ciclo de vida de suas aplicações em vários clusters e ambientes. O Argo CD oferece suporte a vários tipos de origem, incluindo repositórios do Git, registros do Helm (HTTP e OCI) e imagens OCI, proporcionando flexibilidade para organizações com requisitos de segurança e conformidade distintos.

Com as funcionalidades do EKS, o Argo CD é totalmente gerenciado pela AWS, o que elimina a necessidade de instalação, manutenção e escalabilidade dos controladores do Argo CD e de suas dependências nos clusters.

## Funcionamento do Argo CD
<a name="_how_argo_cd_works"></a>

O Argo CD segue o padrão de GitOps, no qual a origem da sua aplicação (por exemplo, repositório do Git, registro do Helm ou imagem OCI) é a fonte da verdade para definir o estado desejado da aplicação. Ao criar um recurso `Application` do Argo CD, você especifica a origem que contém os manifestos da aplicação e o cluster e o namespace do Kubernetes de destino. O Argo CD monitora continuamente tanto a origem quanto o estado em execução no cluster, sincronizando automaticamente quaisquer alterações para garantir que o estado do cluster corresponda ao estado desejado.

**nota**  
Com a funcionalidade do EKS para o Argo CD, o software do Argo CD é executado no ambiente de gerenciamento da AWS, e não em seus nós de processamento. Isso significa que os nós de processamento não precisam de acesso direto a repositórios do Git ou a registros do Helm, pois a funcionalidade gerencia o acesso à origem a partir da conta da AWS.

O Argo CD fornece três tipos de recursos primários:
+  **Application**: define uma implantação proveniente de um repositório do Git para um cluster de destino
+  **ApplicationSet**: gera diversas Applications usando modelos para implantações em vários clusters
+  **AppProject**: fornece agrupamento lógico e controle de acesso para as Applications

 **Exemplo: criação de uma Application do Argo CD** 

O exemplo a seguir mostra como criar um recurso `Application` do Argo CD:

```
apiVersion: argoproj.io/v1alpha1
kind: Application
metadata:
  name: guestbook
  namespace: argocd
spec:
  project: default
  source:
    repoURL: https://github.com/argoproj/argocd-example-apps.git
    targetRevision: HEAD
    path: guestbook
  destination:
    name: in-cluster
    namespace: guestbook
  syncPolicy:
    automated:
      prune: true
      selfHeal: true
```

**nota**  
Use `destination.name` com o nome do cluster utilizado ao registrar o cluster (como `in-cluster` para o cluster local). O campo `destination.server` também funciona com ARNs de cluster de EKS, mas o uso de nomes de cluster é recomendado para melhor legibilidade.

## Benefícios do Argo CD
<a name="_benefits_of_argo_cd"></a>

O Argo CD implementa um fluxo de trabalho de GitOps no qual você define as configurações da aplicação em repositórios do Git e o Argo CD sincroniza automaticamente as aplicações para corresponderem ao estado desejado. Essa abordagem centrada no Git fornece uma trilha de auditoria completa de todas as alterações, permite reversões fáceis e integra-se naturalmente aos seus processos existentes de revisão e aprovação de código. O Argo CD detecta e reconcilia automaticamente o desvio entre o estado desejado no Git e o estado real nos clusters, garantindo que as implantações permaneçam consistentes com a configuração declarada.

Com o Argo CD, é possível implantar e gerenciar aplicações em vários clusters usando uma única instância do Argo CD, simplificando as operações em ambientes com vários clusters e diversas regiões. A interface do usuário do Argo CD fornece funcionalidades de visualização e monitoramento, permitindo que você visualize o status da implantação, a integridade e o histórico das aplicações. A interface do usuário se integra ao Centro de Identidade da AWS (anteriormente AWS SSO) para autenticação e autorização simplificadas, permitindo que você controle o acesso com a infraestrutura de gerenciamento de identidades existente.

Como parte das funcionalidades gerenciadas do EKS, o Argo CD é totalmente gerenciado pela AWS, eliminando a necessidade de instalar, configurar e manter a infraestrutura do Argo CD. A AWS cuida da escalabilidade, da aplicação de patches e do gerenciamento operacional, permitindo que as equipes se concentrem na entrega de aplicações em vez da manutenção de ferramentas.

## Integração com o Centro de Identidade da AWS
<a name="integration_with_shared_aws_identity_center"></a>

As funcionalidades gerenciadas do EKS fornecem integração direta entre o Argo CD e o Centro de Identidade da AWS, permitindo autenticação e autorização simplificadas para os usuários. Ao habilitar a funcionalidade do Argo CD, é possível configurar a integração com o Centro de Identidade da AWS para mapear grupos e usuários do Centro de Identidade para perfis de RBAC do Argo CD, permitindo controlar quem pode acessar e gerenciar aplicações no Argo CD.

## Integração com outras funcionalidades gerenciadas do EKS
<a name="_integration_with_other_eks_managed_capabilities"></a>

O Argo CD pode ser integrado a outras funcionalidades gerenciadas do EKS.
+  **AWS Controllers for Kubernetes (ACK)**: use o Argo CD para gerenciar a implantação de recursos do ACK em diversos clusters, possibilitando fluxos de trabalho de GitOps para a infraestrutura da AWS.
+  **kro (Kube Resource Orchestrator)**: use o Argo CD para implantar composições do kro em vários clusters, possibilitando uma composição de recursos consistente em todo o seu ambiente do Kubernetes.

## Conceitos básicos do Argo CD
<a name="_getting_started_with_argo_cd"></a>

Para começar a usar a funcionalidade do EKS para o Argo CD:

1. Crie e configure um perfil da funcionalidade do IAM com as permissões necessárias para que o Argo CD acesse suas fontes e gerencie aplicações

1.  [Crie um recurso da funcionalidade do Argo CD](create-argocd-capability.md) em seu cluster de EKS por meio do Console da AWS, da AWS CLI ou da ferramenta de infraestrutura como código de sua preferência.

1. Configure o acesso ao repositório e registre os clusters para a implantação de aplicações.

1. Crie recursos de Application para implantar suas aplicações usando fontes declarativas.